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.
- package/dist/monitoring/CollaborationRedriveEngine.d.ts +36 -1
- package/dist/monitoring/CollaborationRedriveEngine.d.ts.map +1 -1
- package/dist/monitoring/CollaborationRedriveEngine.js +85 -8
- package/dist/monitoring/CollaborationRedriveEngine.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +2 -2
- package/upgrades/1.3.70.md +30 -0
- package/upgrades/side-effects/collab-redrive-fp-as-relatedAgent-and-flood-fix.md +26 -0
|
@@ -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
|
-
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;
|
|
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
|
-
|
|
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
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
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
|
|
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.
|
|
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,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./builtin-manifest.schema.json",
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"generatedAt": "2026-05-
|
|
5
|
-
"instarVersion": "1.3.
|
|
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.
|