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.
- package/dist/threadline/client/ThreadlineClient.d.ts +23 -0
- package/dist/threadline/client/ThreadlineClient.d.ts.map +1 -1
- package/dist/threadline/client/ThreadlineClient.js +56 -1
- package/dist/threadline/client/ThreadlineClient.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +2 -2
- package/upgrades/1.3.1006.md +69 -0
- package/upgrades/side-effects/threadline-prefix-resolve.md +136 -0
|
@@ -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":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAqB,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAyB,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;;GAIG;AACH,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAwCtC;;;;;;;;;GASG;AACH,MAAM,8BAA8B,GAAG,OAAO,CAAC,CAAC,aAAa;AAC7D,MAAM,+BAA+B,GAAG,SAAS,CAAC,CAAC,UAAU;AAC7D,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAQjC,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAC/B,MAAM,CAAyB;IAC/B,eAAe,CAAkB;IAC1C,SAAS,GAA4B,IAAI,CAAC;IAC1C,WAAW,GAAuB,IAAI,CAAC;IACvC,QAAQ,GAAwB,IAAI,CAAC;IAC5B,WAAW,GAAG,IAAI,GAAG,EAAgC,CAAC;IAEvE;;;;;;;;OAQG;IACc,gBAAgB,GAAG,IAAI,GAAG,EAAyC,CAAC;IACrF;;;OAGG;IACc,oBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClE,oEAAoE;IACnD,KAAK,CAAe;IAErC,YAAY,MAA8B,EAAE,KAAoB;QAC9D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC;QACnE,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,yEAAyE;IACjE,kBAAkB,CAAC,WAA6B;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,GAAG,GAAG,KAAK,CAAC,WAAW,GAAG,+BAA+B,EAAE,CAAC;YAC9D,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,GAAG,GAAG,KAAK,CAAC,UAAU,GAAG,8BAA8B,EAAE,CAAC;YAC5D,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC,QAAQ,CAAC;IACxB,CAAC;IAED,oEAAoE;IAC5D,oBAAoB,CAAC,WAA6B,EAAE,QAAgB;QAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACxD,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC/C,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE;gBACrC,QAAQ;gBACR,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,UAAU,EAAE,GAAG;aAChB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE;gBACrC,QAAQ;gBACR,WAAW,EAAE,GAAG;gBAChB,UAAU,EAAE,GAAG;aAChB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,mBAAmB,EAAE,CAAC;YACxD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAC5D,IAAI,SAAS,KAAK,SAAS;gBAAE,MAAM;YACnC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,iCAAiC;QAC/B,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,4BAA4B;QAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;QACnD,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEzF,yBAAyB;QACzB,MAAM,WAAW,GAAsB;YACrC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,iBAAiB;YACnD,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAChC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;YACtC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAClC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;SAC/B,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE/D,iBAAiB;QACjB,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,QAAyB,EAAE,EAAE;YAC3D,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,SAAiB,EAAE,EAAE;YACrD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,MAAc,EAAE,EAAE;YACrD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,MAAc,EAAE,EAAE;YAClD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAY,EAAE,EAAE;YAC5C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,MAAyE,EAAE,EAAE;YACnH,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,MAA2C,EAAE,EAAE;YACrF,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,aAAa;QACb,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QAEnD,sDAAsD;QACtD,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;YAC7B,yDAAyD;QAC3D,CAAC,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,YAAY;QACxB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,mBAAmB;gBACnB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,CACF,WAA6B,EAC7B,OAAkC,EAClC,QAAiB;QAEjB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QAED,2BAA2B;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE,eAAe,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,kBAAkB,WAAW,yBAAyB,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,OAAO,GAAqB,OAAO,OAAO,KAAK,QAAQ;YAC3D,CAAC,CAAC,EAAE,OAAO,EAAE;YACb,CAAC,CAAC,OAAO,CAAC;QAEZ,kFAAkF;QAClF,MAAM,GAAG,GAAG,QAAQ;eACf,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC;eACpC,UAAU,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,eAAe,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9F,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAE5C,OAAO,QAAQ,CAAC,SAAS,CAAC;IAC5B,CAAC;IAED;;;;;;OAMG;IACH,aAAa,CACX,WAA6B,EAC7B,OAAe,EACf,QAAiB;QAEjB,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,GAAG,GAAG,QAAQ,IAAI,UAAU,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACzF,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAEhF,iFAAiF;QACjF,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YACzC,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,MAAM;SACb,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEvB,2CAA2C;QAC3C,MAAM,QAAQ,GAAG;YACf,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW;YAC/B,EAAE,EAAE,WAAW;YACf,QAAQ,EAAE,GAAG;YACb,SAAS;YACT,OAAO;YACP,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAe,CAAC,CAAC;QAC9C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,QAAQ,CACN,WAA6B,EAC7B,OAAe,EACf,QAAiB;QAEjB,kDAAkD;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,KAAK,EAAE,SAAS,IAAI,KAAK,EAAE,eAAe,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QACnD,CAAC;QAED,sCAAsC;QACtC,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;;;OAQG;IACH,oBAAoB,CAAC,WAA6B;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAChD,OAAO,OAAO,CAAC,KAAK,EAAE,SAAS,IAAI,KAAK,EAAE,eAAe,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,MAId;QACC,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QAExD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,KAAoC,CAAC;YACzC,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;gBAC9D,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACnD,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC,CAAC;YACF,MAAM,QAAQ,GAAG,CAAC,MAAgC,EAAE,EAAE;gBACpD,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC,CAAC;YACF,+EAA+E;YAC/E,kFAAkF;YAClF,+EAA+E;YAC/E,kFAAkF;YAClF,MAAM,OAAO,GAAG,CAAC,KAAwB,EAAE,EAAE;gBAC3C,IAAI,KAAK,EAAE,IAAI,KAAK,iBAAiB,CAAC,YAAY;oBAAE,OAAO;gBAC3D,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,EAAE,CAAC,CAAC;YACd,CAAC,CAAC;YACF,IAAI,CAAC,WAAY,CAAC,EAAE,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;YAClD,IAAI,CAAC,WAAY,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACvC,IAAI,CAAC,WAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAEnC,2BAA2B;YAC3B,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBACtB,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,EAAE,CAAC,CAAC;YACd,CAAC,EAAE,MAAM,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,8DAA8D;QAC9D,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAA4B,CAAC,EAAE,CAAC;YACvD,OAAO,QAA4B,CAAC;QACtC,CAAC;QAED,gFAAgF;QAChF,gFAAgF;QAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC,OAAO,CAAC;QAEtC,2DAA2D;QAC3D,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAErE,4CAA4C;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAC7D,IAAI,MAAM,EAAE,CAAC;YACX,8EAA8E;YAC9E,kFAAkF;YAClF,kFAAkF;YAClF,8EAA8E;YAC9E,+EAA+E;YAC/E,8EAA8E;YAC9E,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5E,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAC1B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;gBAC5D,IAAI,KAAK;oBAAE,OAAO,KAAK,CAAC,OAAO,CAAC;YAClC,CAAC;YACD,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,CAAC;QAED,iFAAiF;QACjF,iFAAiF;QACjF,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;YAClE,IAAI,aAAa;gBAAE,OAAO,aAAa,CAAC,OAAO,CAAC;YAChD,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;YAClE,IAAI,WAAW;gBAAE,OAAO,WAAW,CAAC,OAAO,CAAC;QAC9C,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACK,4BAA4B,CAAC,KAAa;QAChD,0EAA0E;QAC1E,uEAAuE;QACvE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACvD,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAEnC,MAAM,OAAO,GAAiB,EAAE,CAAC;QACjC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC3C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;QAE5C,+EAA+E;QAC/E,wEAAwE;QACxE,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,UAAU;YAAE,OAAO,UAAU,CAAC;QAElC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1E,MAAM,IAAI,KAAK,CACb,iCAAiC,KAAK,OAAO,OAAO,CAAC,MAAM,iBAAiB;YAC5E,8CAA8C,OAAO,EAAE,CACxD,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,iBAAiB,CAAC,KAAa;QACrC,4EAA4E;QAC5E,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YAC7C,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrC,OAAO;oBACL,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC;oBAClC,iBAAiB,EAAE,MAAM,CAAC,WAAW,EAAE;iBACxC,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACK,eAAe,CAAC,IAAY,EAAE,iBAA0B;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEjC,iCAAiC;QACjC,MAAM,YAAY,GAAiB,EAAE,CAAC;QACtC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK;gBAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;QAEtD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,qCAAqC;YACrC,IAAI,iBAAiB,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBAC9E,IAAI,KAAK;oBAAE,OAAO,KAAK,CAAC;gBACxB,gCAAgC;gBAChC,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,8EAA8E;YAC9E,6EAA6E;YAC7E,8EAA8E;YAC9E,iFAAiF;YACjF,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YACvD,IAAI,UAAU;gBAAE,OAAO,UAAU,CAAC;YAClC,sCAAsC;YACtC,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACnC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,MAAM,IAAI,KAAK,CACb,yBAAyB,IAAI,OAAO,YAAY,CAAC,MAAM,2BAA2B;gBAClF,yEAAyE,OAAO,EAAE,CACnF,CAAC;QACJ,CAAC;QAED,qCAAqC;QACrC,MAAM,cAAc,GAAiB,EAAE,CAAC;QACxC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;QAE1D,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,iBAAiB,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBAChF,IAAI,KAAK;oBAAE,OAAO,KAAK,CAAC;gBACxB,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,qEAAqE;YACrE,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;YACzD,IAAI,UAAU;gBAAE,OAAO,UAAU,CAAC;YAClC,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACrC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,MAAM,IAAI,KAAK,CACb,yBAAyB,IAAI,OAAO,cAAc,CAAC,MAAM,iBAAiB;gBAC1E,yEAAyE,OAAO,EAAE,CACnF,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACK,gBAAgB,CAAC,OAAqB;QAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;QACtD,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrD,CAAC;IAED;;;;;;;OAOG;IACK,sBAAsB,CAAC,MAA6D;QAC1F,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACrD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE;gBAClC,GAAG,QAAQ;gBACX,GAAG,KAAK;gBACR,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,QAAQ,EAAE,SAAS;gBACjD,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,QAAQ,EAAE,eAAe;gBACnE,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,QAAQ;aACpB,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,mEAAmE;IAC3D,aAAa,CAAC,IAAY;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/D,OAAO,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,sBAAsB,CAAC;IAC/E,CAAC;IAED,gDAAgD;IACxC,cAAc,CAAC,IAAY;QACjC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,KAAiB;QAC7B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,QAAQ,EAAE,WAAW,IAAI,IAAI,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,QAAQ,EAAE,SAAS,IAAI,IAAI,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,WAAW,EAAE,eAAe,IAAI,cAAc,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,mEAAmE;IAE3D,qBAAqB,CAAC,QAAyB;QACrD,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAE5B,8BAA8B;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC;YACnD,uDAAuD;YACvD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;YAE7F,MAAM,QAAQ,GAAoB;gBAChC,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,QAAQ,EAAE,MAAM,CAAC,IAAI;gBACrB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,OAAO,EAAE,SAAS;gBAClB,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,QAAQ;aACT,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAE/B,oBAAoB;YACpB,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./builtin-manifest.schema.json",
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"generatedAt": "2026-07-
|
|
5
|
-
"instarVersion": "1.3.
|
|
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.
|