instar 1.3.69 → 1.3.70

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.
@@ -41,6 +41,17 @@ export interface CollaborationRedriveConfig {
41
41
  maxRedrivesPerTick: number;
42
42
  trustFloor: string;
43
43
  dedupeJaccard: number;
44
+ /**
45
+ * Dogfood fix (2026-05-28): an unresolvable peer name is a STABLE condition
46
+ * (the name is missing from known-agents.json — it doesn't fix itself on
47
+ * the next sweep). Without a cooldown, the engine escalated to the
48
+ * Attention queue every few sweeps for every such peer → notification
49
+ * flood on Echo, observed live. After this many ms since the last
50
+ * unreachable-peer escalation for a given peer, the engine may escalate
51
+ * again. Default 24h. Cooldown is durable (persisted to disk), so it
52
+ * survives restart.
53
+ */
54
+ unreachableEscalationCooldownMs: number;
44
55
  }
45
56
  export declare const DEFAULT_REDRIVE_CONFIG: CollaborationRedriveConfig;
46
57
  export interface CollaborationRedriveDeps {
@@ -55,6 +66,11 @@ export interface CollaborationRedriveDeps {
55
66
  source?: string;
56
67
  }) => Promise<unknown>;
57
68
  knownAgentsPath: string;
69
+ /**
70
+ * Where to persist the per-peer "last unreachable escalation" timestamp
71
+ * log (dogfood fix). Defaults next to `knownAgentsPath` if not set.
72
+ */
73
+ escalationLogPath?: string;
58
74
  now?: () => number;
59
75
  log?: {
60
76
  log: (m: string) => void;
@@ -73,8 +89,20 @@ export declare class CollaborationRedriveEngine {
73
89
  private readonly now;
74
90
  private readonly log;
75
91
  private sweepTimer;
76
- private unresolvedNameStrikes;
92
+ /** Resolved path to the durable per-peer unreachable-escalation log. */
93
+ private readonly escalationLogPath;
94
+ /** In-memory cache of the on-disk escalation log; lazy-loaded. */
95
+ private escalationLogCache;
77
96
  constructor(deps: CollaborationRedriveDeps, cfg?: Partial<CollaborationRedriveConfig>);
97
+ /**
98
+ * Has it been at least `unreachableEscalationCooldownMs` since we last
99
+ * escalated "can't reach <peer>" for this peer? Reads from the durable
100
+ * log; if the cooldown has elapsed (or there's no record), the engine
101
+ * may escalate again. Persistent across restart by design.
102
+ */
103
+ private shouldEscalateUnreachable;
104
+ private recordUnreachableEscalation;
105
+ private loadEscalationLog;
78
106
  start(): void;
79
107
  stop(): void;
80
108
  tick(): Promise<TickResult>;
@@ -86,6 +114,13 @@ export declare class CollaborationRedriveEngine {
86
114
  };
87
115
  private checkCompletion;
88
116
  private resolveFingerprint;
117
+ /**
118
+ * `relatedAgent` looks like a Threadline fingerprint if it is exactly 32
119
+ * hex characters (the format `computeFingerprint` produces — first 16
120
+ * bytes of the Ed25519 public key, hex-encoded). Matched
121
+ * case-insensitively; the resolver normalises to lowercase before use.
122
+ */
123
+ static looksLikeFingerprint(s: string): boolean;
89
124
  private buildNudge;
90
125
  private escalateCapHit;
91
126
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CollaborationRedriveEngine.d.ts","sourceRoot":"","sources":["../../src/monitoring/CollaborationRedriveEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CollaborationRedriveEngine.d.ts","sourceRoot":"","sources":["../../src/monitoring/CollaborationRedriveEngine.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@
28
28
  * Ships OFF by default (`monitoring.collaborationRedrive.enabled: false`).
29
29
  */
30
30
  import fs from 'node:fs';
31
+ import path from 'node:path';
31
32
  export const DEFAULT_REDRIVE_CONFIG = {
32
33
  enabled: false,
33
34
  sweepIntervalMs: 5 * 60 * 1000,
@@ -38,6 +39,7 @@ export const DEFAULT_REDRIVE_CONFIG = {
38
39
  maxRedrivesPerTick: 1,
39
40
  trustFloor: 'verified',
40
41
  dedupeJaccard: 0.7,
42
+ unreachableEscalationCooldownMs: 24 * 60 * 60 * 1000,
41
43
  };
42
44
  // ── Implementation ────────────────────────────────────────────
43
45
  const TERMINAL_STATUSES = new Set(['delivered', 'expired', 'withdrawn']);
@@ -48,7 +50,10 @@ export class CollaborationRedriveEngine {
48
50
  now;
49
51
  log;
50
52
  sweepTimer = null;
51
- unresolvedNameStrikes = new Map();
53
+ /** Resolved path to the durable per-peer unreachable-escalation log. */
54
+ escalationLogPath;
55
+ /** In-memory cache of the on-disk escalation log; lazy-loaded. */
56
+ escalationLogCache = null;
52
57
  constructor(deps, cfg = {}) {
53
58
  this.cfg = { ...DEFAULT_REDRIVE_CONFIG, ...cfg };
54
59
  this.deps = deps;
@@ -57,6 +62,52 @@ export class CollaborationRedriveEngine {
57
62
  log: (m) => console.log(`[CollabRedrive] ${m}`),
58
63
  warn: (m) => console.warn(`[CollabRedrive] ${m}`),
59
64
  };
65
+ // Default the escalation log next to known-agents.json (already a
66
+ // per-agent path under .instar/threadline) unless the caller overrides.
67
+ this.escalationLogPath = deps.escalationLogPath
68
+ ?? path.join(path.dirname(deps.knownAgentsPath), 'collab-redrive-escalation-log.json');
69
+ }
70
+ /**
71
+ * Has it been at least `unreachableEscalationCooldownMs` since we last
72
+ * escalated "can't reach <peer>" for this peer? Reads from the durable
73
+ * log; if the cooldown has elapsed (or there's no record), the engine
74
+ * may escalate again. Persistent across restart by design.
75
+ */
76
+ shouldEscalateUnreachable(peer, nowMs) {
77
+ const log = this.loadEscalationLog();
78
+ const lastIso = log[peer];
79
+ if (!lastIso)
80
+ return true;
81
+ const lastMs = Date.parse(lastIso);
82
+ if (!Number.isFinite(lastMs))
83
+ return true;
84
+ return (nowMs - lastMs) >= this.cfg.unreachableEscalationCooldownMs;
85
+ }
86
+ recordUnreachableEscalation(peer, nowMs) {
87
+ const log = this.loadEscalationLog();
88
+ log[peer] = new Date(nowMs).toISOString();
89
+ try {
90
+ fs.mkdirSync(path.dirname(this.escalationLogPath), { recursive: true });
91
+ fs.writeFileSync(this.escalationLogPath, JSON.stringify(log, null, 2));
92
+ }
93
+ catch (err) {
94
+ this.log.warn(`failed to persist escalation log: ${err instanceof Error ? err.message : String(err)}`);
95
+ }
96
+ }
97
+ loadEscalationLog() {
98
+ if (this.escalationLogCache !== null)
99
+ return this.escalationLogCache;
100
+ try {
101
+ const raw = fs.readFileSync(this.escalationLogPath, 'utf-8');
102
+ const parsed = JSON.parse(raw);
103
+ this.escalationLogCache = (parsed && typeof parsed === 'object' && !Array.isArray(parsed))
104
+ ? parsed
105
+ : {};
106
+ }
107
+ catch {
108
+ this.escalationLogCache = {};
109
+ }
110
+ return this.escalationLogCache;
60
111
  }
61
112
  start() {
62
113
  if (this.sweepTimer)
@@ -141,18 +192,24 @@ export class CollaborationRedriveEngine {
141
192
  }
142
193
  const fingerprint = this.resolveFingerprint(peer);
143
194
  if (!fingerprint) {
144
- const strikes = (this.unresolvedNameStrikes.get(peer) ?? 0) + 1;
145
- this.unresolvedNameStrikes.set(peer, strikes);
146
- result.skipped[c.id] = `unresolved-name (strike ${strikes})`;
147
- if (strikes >= 3 && this.deps.raiseAttention) {
195
+ // Dogfood fix (2026-05-28): unresolvable peer names are STABLE
196
+ // conditions (the name is missing from known-agents.json — it won't
197
+ // resolve itself on the next sweep). The original strike-counter
198
+ // escalated every few sweeps and reset, producing a notification
199
+ // flood. The cooldown is durable per-peer: at most one
200
+ // "can't reach <peer> — unknown routing" item per peer per
201
+ // `unreachableEscalationCooldownMs` (default 24h), persisted to
202
+ // disk so it survives restart.
203
+ result.skipped[c.id] = 'unresolved-name';
204
+ if (this.shouldEscalateUnreachable(peer, nowMs) && this.deps.raiseAttention) {
148
205
  try {
149
206
  await this.deps.raiseAttention({
150
207
  title: `can't reach ${peer} — unknown routing`,
151
- body: `Tried to nudge ${peer} on commitment ${c.id} ("${c.userRequest.slice(0, 120)}") but no fingerprint resolved from known-agents.json after ${strikes} attempts. Add ${peer} to known-agents.json or close the commitment.`,
208
+ body: `Tried to nudge ${peer} on commitment ${c.id} ("${c.userRequest.slice(0, 120)}") but no fingerprint resolved from known-agents.json. Add ${peer} to known-agents.json or close the commitment. (I will not raise this again for this peer for ${Math.round(this.cfg.unreachableEscalationCooldownMs / 3600000)}h.)`,
152
209
  priority: 'medium',
153
210
  source: 'collaboration-redrive',
154
211
  });
155
- this.unresolvedNameStrikes.set(peer, 0);
212
+ this.recordUnreachableEscalation(peer, nowMs);
156
213
  }
157
214
  catch {
158
215
  // non-fatal
@@ -160,7 +217,6 @@ export class CollaborationRedriveEngine {
160
217
  }
161
218
  continue;
162
219
  }
163
- this.unresolvedNameStrikes.delete(peer);
164
220
  const currentCount = (c.redriveCount ?? 0) + 1;
165
221
  const nudgeText = this.buildNudge(c, currentCount);
166
222
  const lastNudge = c.lastRedriveText;
@@ -257,6 +313,18 @@ export class CollaborationRedriveEngine {
257
313
  }
258
314
  }
259
315
  resolveFingerprint(peerName) {
316
+ // Dogfood gap (2026-05-28): `relatedAgent` on a real threadline-reply
317
+ // commitment is sometimes ALREADY a 32-char hex fingerprint, not a
318
+ // display name (e.g. when the commitment was opened from an inbound
319
+ // whose sender we only knew by fingerprint). The original v3 resolver
320
+ // assumed display-name-only, so the lookup missed and every such
321
+ // commitment skipped with `unresolved-name`. Verified live: ~10/15
322
+ // open threadline-reply commitments on Echo used the fingerprint as
323
+ // the peer field. Detect the fingerprint case structurally and use
324
+ // it directly; otherwise fall back to the name lookup.
325
+ if (CollaborationRedriveEngine.looksLikeFingerprint(peerName)) {
326
+ return peerName.toLowerCase();
327
+ }
260
328
  try {
261
329
  const raw = fs.readFileSync(this.deps.knownAgentsPath, 'utf-8');
262
330
  const data = JSON.parse(raw);
@@ -272,6 +340,15 @@ export class CollaborationRedriveEngine {
272
340
  return null;
273
341
  }
274
342
  }
343
+ /**
344
+ * `relatedAgent` looks like a Threadline fingerprint if it is exactly 32
345
+ * hex characters (the format `computeFingerprint` produces — first 16
346
+ * bytes of the Ed25519 public key, hex-encoded). Matched
347
+ * case-insensitively; the resolver normalises to lowercase before use.
348
+ */
349
+ static looksLikeFingerprint(s) {
350
+ return typeof s === 'string' && /^[0-9a-f]{32}$/i.test(s);
351
+ }
275
352
  buildNudge(c, attemptNumber) {
276
353
  const peer = c.relatedAgent ?? 'there';
277
354
  const ask = c.userRequest.length > 240 ? `${c.userRequest.slice(0, 240)}…` : c.userRequest;
@@ -1 +1 @@
1
- {"version":3,"file":"CollaborationRedriveEngine.js","sourceRoot":"","sources":["../../src/monitoring/CollaborationRedriveEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CollaborationRedriveEngine.js","sourceRoot":"","sources":["../../src/monitoring/CollaborationRedriveEngine.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.69",
3
+ "version": "1.3.70",
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-05-28T21:55:25.655Z",
5
- "instarVersion": "1.3.69",
4
+ "generatedAt": "2026-05-28T22:59:01.360Z",
5
+ "instarVersion": "1.3.70",
6
6
  "entryCount": 193,
7
7
  "entries": {
8
8
  "hook:session-start": {
@@ -0,0 +1,30 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- bump: patch -->
4
+
5
+ ## What Changed
6
+
7
+ Two dogfood-surfaced fixes for `CollaborationRedriveEngine` (shipped in v1.3.66 via #490, dogfood-enabled on Echo today):
8
+
9
+ 1. **Fingerprint-as-relatedAgent.** Many real `threadline-reply` commitments store the peer's 32-character hex fingerprint directly in `relatedAgent` (not a display name). The resolver now detects that case (`/^[0-9a-f]{32}$/i`) and uses the value directly as the routing address, normalising to lowercase. Falls through to the name lookup only for non-fingerprint strings. Without this fix, ~10 of 15 active commitments on Echo would skip with `unresolved-name` instead of nudging.
10
+
11
+ 2. **Escalation flood.** The original `unresolved-name` path raised an Attention-queue item after 3 in-memory strikes per peer and reset the counter — producing a fresh "can't reach <peer>" item every few sweeps for every unresolvable peer (35+ items in <30 min observed on Echo). Replaced with a **durable per-peer 24h cooldown** persisted to `<knownAgentsDir>/collab-redrive-escalation-log.json`. At most one escalation per peer per `unreachableEscalationCooldownMs` (new config knob, default 24h). The log survives restart, so a server bounce does not re-flood.
12
+
13
+ ## What to Tell Your User
14
+
15
+ - If you turned on collaboration-redrive and saw a flood of "can't reach X" attention items, that's fixed: at most one per peer per day, and a log file remembers across restarts so it doesn't reset.
16
+ - If I had open "I'm waiting on agent X" commitments where X was a raw fingerprint instead of a name, those will now resolve and nudge instead of skipping silently.
17
+
18
+ ## Summary of New Capabilities
19
+
20
+ | Capability | How to Use |
21
+ |-----------|-----------|
22
+ | Fingerprint-hex as routing address | Automatic — no config required. Any `relatedAgent` matching `/^[0-9a-f]{32}$/i` is treated as a fingerprint. |
23
+ | Unreachable-escalation cooldown | Optional override: `monitoring.collaborationRedrive.unreachableEscalationCooldownMs` (default 86400000 ms = 24h) |
24
+
25
+ ## Evidence
26
+
27
+ - Three new unit tests for the fingerprint case (`looksLikeFingerprint` accepts/rejects boundary cases; engine sends directly with empty `known-agents.json`).
28
+ - Three new unit tests for the cooldown (single escalation per peer; multiple same-peer commitments in one tick collapse to one; restart-survival via on-disk log).
29
+ - Combined Tier-1 test count: 19 → 27, all passing.
30
+ - Side-effects review: `upgrades/side-effects/collab-redrive-fp-as-relatedAgent-and-flood-fix.md`.
@@ -0,0 +1,26 @@
1
+ # Side-Effects Review — CollaborationRedrive: fingerprint-as-relatedAgent + escalation-flood fix
2
+
3
+ **Context:** Dogfood-armed PR #490 on Echo's live node, 2026-05-28. Within minutes of the engine going `armed`, Justin caught a notification flood on his Telegram Attention queue (35+ items in <30 min, screenshot). Two distinct bugs.
4
+
5
+ ## Bug 1 — fingerprint-as-relatedAgent
6
+ **Symptom.** ~10 of 15 active `threadline-reply` commitments on Echo store the peer's 32-character hex fingerprint directly in `relatedAgent` (when the commitment was opened from an inbound whose sender we only knew by fingerprint). The original `resolveFingerprint` always ran a name lookup against `known-agents.json` — a hex string is not a name → lookup misses → engine skips with `unresolved-name` → in the original code, escalates as "can't reach <fingerprint>".
7
+
8
+ **Fix.** Detect the fingerprint case structurally (`/^[0-9a-f]{32}$/i`) and use the value directly as the routing address; normalise to lowercase. Fall through to the name lookup only for non-fingerprint strings.
9
+
10
+ **Tests added.** `looksLikeFingerprint` accepts lowercase/uppercase 32-hex, rejects non-hex and wrong-length strings; a commitment with a fingerprint `relatedAgent` resolves directly with an empty `known-agents.json` and the engine sends.
11
+
12
+ ## Bug 2 — escalation flood
13
+ **Symptom.** The original `unresolved-name` path used an in-memory strike counter that escalated to the Attention queue after 3 strikes per peer AND reset the counter to 0 — so the next sweep started accumulating strikes again, and the queue received a new `can't reach <peer>` item every few sweeps for every unresolvable peer. Verified live: 35 stacked items in ~30 min covering `dawn`, `ai-guy`, `codey`, `instar-codey`, `8c7928aa…`.
14
+
15
+ **Fix.** Replace the strike counter with a **durable per-peer cooldown**: a peer's `lastEscalatedAt` ISO is persisted to `<knownAgentsDir>/collab-redrive-escalation-log.json`; the engine escalates only if `(now - lastEscalatedAt) >= unreachableEscalationCooldownMs` (default 24h). New config knob `unreachableEscalationCooldownMs`. Within a single tick, multiple commitments to the same unresolvable peer collapse to exactly one escalation. The log survives restart so a server bounce does not re-flood.
16
+
17
+ **Tests added.** First sweep escalates once; sweeps within 12h produce zero new escalations; sweep past 24h produces one renewed escalation. Five commitments to the same peer in one tick → exactly one escalation. A fresh engine instance reading the same log respects the cooldown (restart-survival).
18
+
19
+ ## 1-7 Side-effects review
20
+ 1. **Over/under-block** — Strictly less escalation than before. The cooldown can be lowered if rare repeats are wanted; the cap is a knob, not a hard rule.
21
+ 2. **Level-of-abstraction** — Reuses the existing `raiseAttention` injected dep + a tiny on-disk JSON sibling to `known-agents.json`. No new transport.
22
+ 3. **Signal vs Authority** — The cooldown is purely a *delivery throttle* on a signal; the underlying engine behaviour (skip-don't-increment on unresolved) is unchanged. The operator still receives the signal — just once per peer per day.
23
+ 4. **Interactions** — Touches only the resolveFingerprint code path and the per-peer escalation path in `tick()`. No effect on the durable redrive cap, the per-peer 24h send cap, the engine-wide daily fuse, the per-tick fuse, or the completion gate.
24
+ 5. **Rollback** — Both fixes are confined to `CollaborationRedriveEngine.ts`. Reverting restores the original behaviour with no data implications. The escalation log file is a stateless cache (deleting it just allows one more escalation per peer).
25
+ 6. **Data integrity** — No commitment-record mutations beyond what shipped in #490. The new on-disk log is a write-only-rotate map of `{peerKey: iso}` — corrupt JSON parses to empty (fail-open into a renewed escalation, not a stuck silent state).
26
+ 7. **Failure modes** — (a) Log file write fails → warn + continue without persisting (engine state degrades to in-memory, not to flood). (b) Clock skew makes `lastEscalatedAt` parse to NaN → cooldown treats as elapsed → re-escalates once (then records a sane timestamp). (c) Multi-machine scenario where two engines escalate the same peer near-simultaneously → at most one extra item due to write race; acceptable, the file is per-agent-home.