instar 1.3.1005 → 1.3.1006

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -131,6 +131,29 @@ export declare class ThreadlineClient extends EventEmitter {
131
131
  * Returns null if not found. Throws if name is ambiguous and no fingerprint prefix given.
132
132
  */
133
133
  resolveAgent(nameOrId: string): Promise<AgentFingerprint | null>;
134
+ /**
135
+ * Match a BARE fingerprint prefix (no "name:" syntax) against known agents.
136
+ *
137
+ * `threadline_discover` emits each agent's fingerprint TRUNCATED to 8 hex chars,
138
+ * and the send tool's own parameter docs advertise exactly that form
139
+ * ("fd9268c2..."), so a bare prefix is the address callers actually hold. Before
140
+ * this branch existed such an input fell through to name matching, matched no agent
141
+ * NAMED "7970149e", and resolved to null — so the documented discover-then-send
142
+ * workflow could not work at all. Two healthy, correctly-configured agents would
143
+ * simply never connect, because the address one tool returns was an address the
144
+ * other tool refused.
145
+ *
146
+ * Requires a UNIQUE match. This is an addressing function: silently picking one of
147
+ * several candidates would deliver the message to the WRONG agent, which is worse
148
+ * than not delivering it. Ambiguity is an explicit error naming the candidates,
149
+ * matching the convention in findAgentByName.
150
+ *
151
+ * Returns undefined — never throws — when the input is not a bare hex string or
152
+ * matches nothing, so ordinary name resolution still runs unchanged. An agent whose
153
+ * NAME happens to be hex-like is therefore unaffected: with no fingerprint match
154
+ * this falls through and the name path resolves it as before.
155
+ */
156
+ private findAgentByFingerprintPrefix;
134
157
  /**
135
158
  * Parse "name:fingerprintPrefix" addressing syntax.
136
159
  * If no colon or input looks like a plain name, returns the whole input as name.
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadlineClient.d.ts","sourceRoot":"","sources":["../../../src/threadline/client/ThreadlineClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ThreadlineClient.d.ts","sourceRoot":"","sources":["../../../src/threadline/client/ThreadlineClient.ts"],"names":[],"mappings":"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"}
@@ -311,6 +311,11 @@ export class ThreadlineClient extends EventEmitter {
311
311
  if (this.knownAgents.has(nameOrId)) {
312
312
  return nameOrId;
313
313
  }
314
+ // 1b. Bare fingerprint-prefix match — see findAgentByFingerprintPrefix. This is
315
+ // the address `threadline_discover` actually hands callers, so it must resolve.
316
+ const byPrefix = this.findAgentByFingerprintPrefix(nameOrId);
317
+ if (byPrefix)
318
+ return byPrefix.agentId;
314
319
  // 2. Parse disambiguation syntax: "name:fingerprintPrefix"
315
320
  const { name, fingerprintPrefix } = this.parseAgentAddress(nameOrId);
316
321
  // 3. Name match in cache (case-insensitive)
@@ -331,15 +336,65 @@ export class ThreadlineClient extends EventEmitter {
331
336
  }
332
337
  return byName.agentId;
333
338
  }
334
- // 4. Cache miss — re-discover and try again
339
+ // 4. Cache miss — re-discover and try again. The prefix retry matters as much as
340
+ // the name retry: on a cold cache the first prefix attempt has nothing to match.
335
341
  if (this.relayClient) {
336
342
  await this.autoDiscover();
343
+ const byPrefixRetry = this.findAgentByFingerprintPrefix(nameOrId);
344
+ if (byPrefixRetry)
345
+ return byPrefixRetry.agentId;
337
346
  const byNameRetry = this.findAgentByName(name, fingerprintPrefix);
338
347
  if (byNameRetry)
339
348
  return byNameRetry.agentId;
340
349
  }
341
350
  return null;
342
351
  }
352
+ /**
353
+ * Match a BARE fingerprint prefix (no "name:" syntax) against known agents.
354
+ *
355
+ * `threadline_discover` emits each agent's fingerprint TRUNCATED to 8 hex chars,
356
+ * and the send tool's own parameter docs advertise exactly that form
357
+ * ("fd9268c2..."), so a bare prefix is the address callers actually hold. Before
358
+ * this branch existed such an input fell through to name matching, matched no agent
359
+ * NAMED "7970149e", and resolved to null — so the documented discover-then-send
360
+ * workflow could not work at all. Two healthy, correctly-configured agents would
361
+ * simply never connect, because the address one tool returns was an address the
362
+ * other tool refused.
363
+ *
364
+ * Requires a UNIQUE match. This is an addressing function: silently picking one of
365
+ * several candidates would deliver the message to the WRONG agent, which is worse
366
+ * than not delivering it. Ambiguity is an explicit error naming the candidates,
367
+ * matching the convention in findAgentByName.
368
+ *
369
+ * Returns undefined — never throws — when the input is not a bare hex string or
370
+ * matches nothing, so ordinary name resolution still runs unchanged. An agent whose
371
+ * NAME happens to be hex-like is therefore unaffected: with no fingerprint match
372
+ * this falls through and the name path resolves it as before.
373
+ */
374
+ findAgentByFingerprintPrefix(input) {
375
+ // 4 hex chars is the same floor parseAgentAddress already accepts for the
376
+ // "name:prefix" form — enough entropy to read as a deliberate address.
377
+ if (!/^[0-9a-f]{4,64}$/i.test(input))
378
+ return undefined;
379
+ const prefix = input.toLowerCase();
380
+ const matches = [];
381
+ for (const agent of this.knownAgents.values()) {
382
+ if (agent.agentId.toLowerCase().startsWith(prefix))
383
+ matches.push(agent);
384
+ }
385
+ if (matches.length === 0)
386
+ return undefined;
387
+ if (matches.length === 1)
388
+ return matches[0];
389
+ // Same live-vs-dead twin allowance as name resolution: if exactly one matching
390
+ // row is live, the stale duplicate does not make the address ambiguous.
391
+ const onlinePick = this.pickSingleOnline(matches);
392
+ if (onlinePick)
393
+ return onlinePick;
394
+ const options = matches.map(a => ` ${a.name} (${a.agentId})`).join('\n');
395
+ throw new Error(`Ambiguous fingerprint prefix "${input}" — ${matches.length} agents match. ` +
396
+ `Use the full fingerprint to disambiguate:\n${options}`);
397
+ }
343
398
  /**
344
399
  * Parse "name:fingerprintPrefix" addressing syntax.
345
400
  * If no colon or input looks like a plain name, returns the whole input as name.
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadlineClient.js","sourceRoot":"","sources":["../../../src/threadline/client/ThreadlineClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ThreadlineClient.js","sourceRoot":"","sources":["../../../src/threadline/client/ThreadlineClient.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instar",
3
- "version": "1.3.1005",
3
+ "version": "1.3.1006",
4
4
  "description": "Coherence infrastructure for self-evolving AI agents — on the Claude Code or Codex subscription you already have.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "./builtin-manifest.schema.json",
3
3
  "schemaVersion": 1,
4
- "generatedAt": "2026-07-27T15:52:35.456Z",
5
- "instarVersion": "1.3.1005",
4
+ "generatedAt": "2026-07-27T17:08:28.815Z",
5
+ "instarVersion": "1.3.1006",
6
6
  "entryCount": 202,
7
7
  "entries": {
8
8
  "hook:session-start": {
@@ -0,0 +1,69 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- assembled-by: assemble-next-md -->
4
+ <!-- bump: patch -->
5
+
6
+ ## What Changed
7
+
8
+ Fixed an addressing bug that could prevent two healthy agents from ever exchanging a
9
+ Threadline message.
10
+
11
+ `threadline_discover` returns each agent's fingerprint truncated to 8 hex characters, and
12
+ `threadline_send`'s own parameter documentation advertises that short form
13
+ (`"fd9268c2..."`). But `ThreadlineClient.resolveAgent` had no branch for a bare prefix: it
14
+ fell through to name matching, found no agent *named* `7970149e`, and returned null. The
15
+ send then failed with `Agent not found: "7970149e"`. The documented discover-then-send
16
+ workflow could not complete.
17
+
18
+ `resolveAgent` now accepts a bare fingerprint prefix, and **requires a unique match**. This
19
+ matters: `resolveAgent` decides which peer receives a message, and discovery can legitimately
20
+ return two rows for the same agent (a live registration and a stale one). Resolving a prefix
21
+ to "whichever matched first" would have silently delivered to the wrong agent while reporting
22
+ success — worse than not delivering at all. When several agents share a prefix and exactly
23
+ one is online, the live one wins (the same allowance name resolution already makes for
24
+ live-vs-stale twins). Otherwise the send is refused with every candidate and its full
25
+ fingerprint listed, so the caller can say precisely which they meant.
26
+
27
+ Non-hex input, and any prefix matching no known fingerprint, fall through untouched — name
28
+ resolution, including for agents with hex-like names, behaves exactly as before.
29
+
30
+ ## What to Tell Your User
31
+
32
+ If you have ever tried to connect two of your agents over Threadline and been told the other
33
+ agent could not be found — while both were plainly running and correctly configured — this is
34
+ very likely why, and it is fixed.
35
+
36
+ The short agent ID your agent sees when it looks up its peers is now an address it can
37
+ actually send to. Nothing changes about how you ask for it; "message my other agent" simply
38
+ works where it may previously have failed with a confusing not-found error.
39
+
40
+ One deliberate behaviour worth knowing: if a short ID is ambiguous because two agents share
41
+ those opening characters, your agent will now stop and list them rather than pick one. That
42
+ is intentional. A message delivered to the wrong agent looks like success and is much harder
43
+ to notice than a message that refuses to send.
44
+
45
+ ## Summary of New Capabilities
46
+
47
+ - Agent-to-agent messaging accepts the short (8-character) agent fingerprint that agent
48
+ discovery returns, closing a gap where the discover-then-send workflow could not complete.
49
+ - Ambiguous short IDs are reported with the full candidate list instead of resolving to an
50
+ arbitrary agent, so a message can never be silently delivered to the wrong peer.
51
+ - A stale duplicate registration no longer makes a working address ambiguous when exactly one
52
+ matching agent is online.
53
+
54
+ ## Evidence
55
+
56
+ The tests were run against unmodified source *before* the fix was applied, to prove they
57
+ exercise the bug rather than merely accompany it:
58
+
59
+ - Fix reverted: **5 failed / 21 passed** — the 5 failures are precisely the new behaviours
60
+ (8-char prefix resolves, case-insensitivity, ambiguity throws, candidates named in the
61
+ error, live-row preference). The 21 that pass are the deliberate regression guards.
62
+ - Fix applied: **26 passed**.
63
+ - Regression surface: `tests/unit/threadline/` — **65 files, 1581 tests, all passing**.
64
+ - `tsc --noEmit` clean.
65
+
66
+ Observed live on 2026-07-27 between two running, relay-connected agents on the same machine.
67
+ Both ends failed symmetrically — each reported the other as "not found" while holding the
68
+ other's address — which is what identified the seam between the two tools, rather than either
69
+ agent, as the defect.
@@ -0,0 +1,136 @@
1
+ # Side-effects review — bare fingerprint-prefix addressing in `resolveAgent`
2
+
3
+ **Change:** `ThreadlineClient.resolveAgent` gains a bare fingerprint-prefix branch
4
+ (`findAgentByFingerprintPrefix`), so the 8-char fingerprint `threadline_discover`
5
+ emits is an address `threadline_send` will actually accept.
6
+
7
+ **Discovered:** live, 2026-07-27. Echo → instar-codey. Both agents healthy, both
8
+ relay-connected, correct chat, correct topic. Every send answered
9
+ `Agent not found: "7970149e"`. Codey's own reply to Echo failed with the mirror-image
10
+ error `Agent not found: "63b1dbb2"`. Neither agent was misconfigured — the address one
11
+ tool handed out was an address the other tool refused.
12
+
13
+ ## 1. Over-block — what legitimate input does this reject that it shouldn't?
14
+
15
+ None. The new branch only ever *adds* resolutions; it returns `undefined` for any input
16
+ that is not a bare hex string of 4–64 chars, and for any hex string that matches no
17
+ known fingerprint. In both cases control falls through to the pre-existing name path
18
+ unchanged.
19
+
20
+ The one input class that now behaves differently in a *rejecting* direction is an
21
+ **ambiguous** prefix — two known agents sharing it. That previously resolved to `null`
22
+ ("not found"); it now throws a named-candidates error. This is strictly more informative
23
+ than the old outcome, and the alternative (silently picking) is the failure this review
24
+ most wants to prevent. See §4.
25
+
26
+ ## 2. Under-block — what does this still miss?
27
+
28
+ - **Discover still emits 8 chars while its neighbouring comment says 32.**
29
+ `ThreadlineMCPServer.ts` sets `entry.fingerprint = a.publicKey.substring(0, 8)` at two
30
+ sites (lines 510, 870 on main) beside a comment reading "fingerprint = first 32 hex
31
+ chars". This change makes the 8-char form *work* rather than making the two halves
32
+ agree. Deliberate: changing discover's output is a contract change to every existing
33
+ consumer, whereas widening the resolver is backward-compatible and fixes all current
34
+ callers at once. The inconsistency is recorded here rather than silently fixed.
35
+ <!-- tracked: ACT-1380 -->
36
+ - **A 4-char prefix is permitted.** With a large enough agent population, 4 hex chars
37
+ will collide. Collisions surface as the ambiguity error rather than a wrong delivery,
38
+ so the failure mode is safe, but it is a usability cliff at scale rather than a
39
+ correctness one.
40
+ - This does not address unreachability caused by anything other than addressing — a dark
41
+ relay, an unpaired peer, or a trust refusal are all untouched.
42
+
43
+ ## 3. Level-of-abstraction fit
44
+
45
+ Correct layer. `resolveAgent` is the single funnel every send path already goes through
46
+ (`routes.ts:12841` calls `relayClient.resolveAgent(targetAgent)` and 404s on null). Fixing
47
+ it here fixes the MCP tool, the HTTP route, and any future caller at once. Fixing it in
48
+ the MCP tool would have left the HTTP route broken; fixing it in discover would have
49
+ changed a published output shape without helping callers who already hold a short
50
+ fingerprint from an older message or a log line.
51
+
52
+ ## 4. Signal vs authority compliance
53
+
54
+ `resolveAgent` is an *authority* — its return value directly determines which peer
55
+ receives a message. That is precisely why the new branch **requires a unique match**.
56
+
57
+ The tempting implementation is "match the prefix, take the first hit." That would have
58
+ made my own send succeed today, because discover returned **two** `instar-codey` rows
59
+ (`092c1cac…` and `7970149e…`) and only one is live. Taking the first would have delivered
60
+ to whichever the map happened to yield first — a silent wrong-recipient delivery, which is
61
+ categorically worse than a failed send, because the sender believes it succeeded.
62
+
63
+ So the branch reuses the existing convention exactly:
64
+ - exactly one match → resolve
65
+ - several matches, exactly one online → resolve to the live one (`pickSingleOnline`, the
66
+ same live-vs-dead twin allowance `findAgentByName` already makes)
67
+ - otherwise → throw, naming every candidate and its full fingerprint
68
+
69
+ Ambiguity is surfaced to the caller as a decision, never absorbed as a guess.
70
+
71
+ ## 5. Interactions
72
+
73
+ - **Ordering.** The prefix branch runs after exact-match (1) and before name parsing (2).
74
+ It cannot shadow name resolution, because a zero-match prefix returns `undefined` and
75
+ falls through. An agent whose *name* is hex-like resolves as before — covered by an
76
+ explicit regression test.
77
+ - **`name:prefix` syntax.** Untouched. `parseAgentAddress` only engages on a colon, and a
78
+ bare prefix has none. The 4-char floor is deliberately the same one `parseAgentAddress`
79
+ already uses for its suffix, so the two addressing forms agree on what counts as a
80
+ prefix.
81
+ - **Cold cache.** The retry after `autoDiscover()` in step 4 now re-tries the prefix as
82
+ well as the name. Without this the fix would work only when the cache was already warm —
83
+ which is the very condition that is false on a first send after boot.
84
+ - **Rediscovery cooldown.** Unchanged; the prefix branch performs no discovery of its own.
85
+
86
+ ## 6. External surfaces
87
+
88
+ No wire-format, protocol, or persisted-state change. No new config, route, or dependency.
89
+ The observable difference is that an address which previously 404'd now resolves, plus one
90
+ new error message string on the ambiguous path. Nothing depends on timing or conversation
91
+ state.
92
+
93
+ ## 7. Multi-machine posture (Cross-Machine Coherence)
94
+
95
+ **Machine-local by design, and correctly so — no justification marker needed because no
96
+ durable state is introduced.** `knownAgents` is a process-local in-memory cache rebuilt
97
+ from relay discovery on every connect. Two machines running this agent each resolve
98
+ against their own live view of the relay, which is the correct behaviour: reachability is
99
+ a property of *this* process's relay connection, not a fact to replicate. Replicating a
100
+ resolution cache would actively harm — a peer that machine A can reach may be unreachable
101
+ from machine B, and a shared cache would assert otherwise.
102
+
103
+ No user-facing notice, no generated URL, no state that could strand on topic transfer.
104
+
105
+ ## 8. Rollback cost
106
+
107
+ Near zero. Revert the commit; the added method becomes unreferenced and the resolver
108
+ returns to exact-match-plus-name. No migration, no persisted state, no agent-state repair.
109
+ Any address that worked before still works after a revert — the change is purely additive
110
+ to the set of inputs that resolve.
111
+
112
+ ## Evidence
113
+
114
+ Tests were verified to fail against unmodified source before the fix was applied, so they
115
+ demonstrably exercise the bug rather than merely accompanying it:
116
+
117
+ ```
118
+ # fix reverted, tests only
119
+ Tests 5 failed | 21 passed (26)
120
+ ✗ resolves the 8-char prefix that discover emits (the reported bug) → null
121
+ ✗ is case-insensitive on the prefix → null
122
+ ✗ THROWS on an ambiguous prefix rather than delivering to the wrong agent → resolved null
123
+ ✗ names every candidate in the ambiguity error → resolved null
124
+ ✗ prefers the single LIVE row when a stale twin shares the prefix → null
125
+
126
+ # fix applied
127
+ Tests 26 passed (26)
128
+
129
+ # regression surface
130
+ tests/unit/threadline/ — 65 files, 1581 passed
131
+ tsc --noEmit — clean
132
+ ```
133
+
134
+ The 21 that pass in both runs are the deliberate regression guards (full fingerprint,
135
+ ordinary name, hex-like name, unknown prefix → null); they *should* pass either way, and
136
+ their passing on unfixed source is what makes them meaningful as guards.