instar 1.3.518 → 1.3.520
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/dashboard/index.html +40 -10
- package/dashboard/mandates.js +115 -34
- package/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +26 -2
- package/dist/commands/server.js.map +1 -1
- package/dist/config/ConfigDefaults.d.ts.map +1 -1
- package/dist/config/ConfigDefaults.js +29 -0
- package/dist/config/ConfigDefaults.js.map +1 -1
- package/dist/core/BackupManager.d.ts.map +1 -1
- package/dist/core/BackupManager.js +4 -0
- package/dist/core/BackupManager.js.map +1 -1
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +29 -0
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/devGatedFeatures.d.ts.map +1 -1
- package/dist/core/devGatedFeatures.js +6 -0
- package/dist/core/devGatedFeatures.js.map +1 -1
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +7 -0
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/server/AgentServer.d.ts +3 -0
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +2 -0
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/server/routes.d.ts +7 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +310 -7
- package/dist/server/routes.js.map +1 -1
- package/dist/threadline/ConversationStore.d.ts +90 -0
- package/dist/threadline/ConversationStore.d.ts.map +1 -1
- package/dist/threadline/ConversationStore.js +133 -0
- package/dist/threadline/ConversationStore.js.map +1 -1
- package/dist/threadline/ThreadLog.d.ts +200 -0
- package/dist/threadline/ThreadLog.d.ts.map +1 -0
- package/dist/threadline/ThreadLog.js +434 -0
- package/dist/threadline/ThreadLog.js.map +1 -0
- package/dist/threadline/ThreadlineEndpoints.d.ts +10 -1
- package/dist/threadline/ThreadlineEndpoints.d.ts.map +1 -1
- package/dist/threadline/ThreadlineEndpoints.js +63 -12
- package/dist/threadline/ThreadlineEndpoints.js.map +1 -1
- package/dist/threadline/canonicalHistoryRead.d.ts +63 -0
- package/dist/threadline/canonicalHistoryRead.d.ts.map +1 -0
- package/dist/threadline/canonicalHistoryRead.js +123 -0
- package/dist/threadline/canonicalHistoryRead.js.map +1 -0
- package/dist/threadline/recordThreadMessage.d.ts +143 -0
- package/dist/threadline/recordThreadMessage.d.ts.map +1 -0
- package/dist/threadline/recordThreadMessage.js +222 -0
- package/dist/threadline/recordThreadMessage.js.map +1 -0
- package/dist/threadline/threadDigest.d.ts +90 -0
- package/dist/threadline/threadDigest.d.ts.map +1 -0
- package/dist/threadline/threadDigest.js +130 -0
- package/dist/threadline/threadDigest.js.map +1 -0
- package/dist/threadline/threadSymmetry.d.ts +108 -0
- package/dist/threadline/threadSymmetry.d.ts.map +1 -0
- package/dist/threadline/threadSymmetry.js +225 -0
- package/dist/threadline/threadSymmetry.js.map +1 -0
- package/package.json +1 -1
- package/scripts/instar-dev-precommit.js +46 -0
- package/scripts/lib/operator-surface.mjs +54 -0
- package/skills/instar-dev/templates/side-effects-artifact.md +15 -0
- package/src/data/builtin-manifest.json +65 -65
- package/src/scaffold/templates.ts +7 -0
- package/upgrades/1.3.519.md +92 -0
- package/upgrades/1.3.520.md +50 -0
- package/upgrades/side-effects/operator-surface-quality-and-mandates-redesign.md +200 -0
- package/upgrades/side-effects/threadline-canonical-history.md +122 -0
|
@@ -97,12 +97,42 @@ export interface Conversation {
|
|
|
97
97
|
lastHoldingNoticeEpoch?: number;
|
|
98
98
|
/** Durable global min-interval floor for holding notices (FD-3). */
|
|
99
99
|
lastHoldingNoticeAt?: string;
|
|
100
|
+
/** Cached count of NON-backfilled canonical-log entries (symmetry `count`). */
|
|
101
|
+
historyCount?: number;
|
|
102
|
+
/** Cached canonical-log chain head hash. */
|
|
103
|
+
historyHeadHash?: string;
|
|
104
|
+
/** Cached order-independent symmetry accumulator (64-hex). */
|
|
105
|
+
historySetAccum?: string;
|
|
106
|
+
/** Saturating count of same-id-different-content collisions (FD-2, anti-amplify). */
|
|
107
|
+
collisionCount?: number;
|
|
108
|
+
canonicalBinding?: {
|
|
109
|
+
peerPrincipal: string;
|
|
110
|
+
workstreamKey: string;
|
|
111
|
+
};
|
|
112
|
+
/** Last symmetry health computed for this thread (closed set; advisory). */
|
|
113
|
+
symmetryState?: string;
|
|
114
|
+
/** Last peer-reported threadSync (verified-participant, monotonic). */
|
|
115
|
+
peerThreadSync?: {
|
|
116
|
+
digestVersion: number;
|
|
117
|
+
count: number;
|
|
118
|
+
setAccum: string;
|
|
119
|
+
at: string;
|
|
120
|
+
};
|
|
121
|
+
/** True once a one-time bounded backfill has run for this thread (memoized). */
|
|
122
|
+
backfilled?: boolean;
|
|
100
123
|
}
|
|
101
124
|
/** Mutation function: receives a draft clone, returns the next record. */
|
|
102
125
|
export type ConversationMutateFn = (draft: Conversation) => Conversation | Promise<Conversation>;
|
|
103
126
|
export declare class ConversationStore {
|
|
104
127
|
/** P3 §3.1 — injected coherence-journal emitter (undefined = dark). */
|
|
105
128
|
private journalSeam?;
|
|
129
|
+
/**
|
|
130
|
+
* Robustness Phase 2 (SA5/E1) — injected post-commit canonical-log retention
|
|
131
|
+
* seam (undefined = dark). Fired ONLY when a NON-pinned conversation transitions
|
|
132
|
+
* INTO a genuine terminal close (resolved/failed) — NOT on cold archive/LRU
|
|
133
|
+
* eviction. The server wires this to `ThreadLog.deleteThread` (SafeFsExecutor).
|
|
134
|
+
*/
|
|
135
|
+
private logRetentionSeam?;
|
|
106
136
|
private filePath;
|
|
107
137
|
/** Per-threadId FIFO mutate queues — serialize same-process concurrent writers. */
|
|
108
138
|
private mutateQueues;
|
|
@@ -176,6 +206,19 @@ export declare class ConversationStore {
|
|
|
176
206
|
peerFingerprint: string;
|
|
177
207
|
topicId?: number;
|
|
178
208
|
}) => void): void;
|
|
209
|
+
/**
|
|
210
|
+
* Robustness Phase 2 (SA5/E1) — inject the post-commit canonical-log retention
|
|
211
|
+
* seam (server wires it to `ThreadLog.deleteThread`). Fires ONLY on a non-pinned
|
|
212
|
+
* conversation's transition INTO resolved/failed — NOT on cold archive/LRU.
|
|
213
|
+
*/
|
|
214
|
+
setLogRetentionSeam(seam: (threadId: string) => void): void;
|
|
215
|
+
/**
|
|
216
|
+
* Robustness Phase 2 — fire the canonical-log retention seam when a non-pinned
|
|
217
|
+
* conversation transitions INTO a genuine terminal close (resolved/failed). A
|
|
218
|
+
* POST-COMMIT action (the write has already landed), never mid-mutate, so a CAS
|
|
219
|
+
* rollback can't strand a record without its log. Never throws into the write.
|
|
220
|
+
*/
|
|
221
|
+
private fireLogRetention;
|
|
179
222
|
/**
|
|
180
223
|
* Direct upsert of a full record. Used by migration / bulk import. Now does a
|
|
181
224
|
* read-merge-write so it is safe even if the file changed since construction.
|
|
@@ -227,6 +270,53 @@ export declare class ConversationStore {
|
|
|
227
270
|
recordAffinity(peerFingerprint: string, threadId: string): void;
|
|
228
271
|
/** Look up a fresh affinity hint, honoring the sliding + absolute windows. */
|
|
229
272
|
getAffinity(peerFingerprint: string): string | null;
|
|
273
|
+
/**
|
|
274
|
+
* Stamp the COALESCED canonical-log head cache (count/headHash/setAccum). The
|
|
275
|
+
* JSONL log is the source of truth; this is a best-effort cache the funnel
|
|
276
|
+
* refreshes on a debounced cadence — NEVER a synchronous per-message CAS. A
|
|
277
|
+
* READ never calls this (read-never-writes, SI1).
|
|
278
|
+
*/
|
|
279
|
+
stampHistoryHead(threadId: string, head: {
|
|
280
|
+
count: number;
|
|
281
|
+
headHash: string;
|
|
282
|
+
setAccum: string;
|
|
283
|
+
}): Promise<void>;
|
|
284
|
+
/** Record the memoized one-time backfill marker for a thread (D-C). */
|
|
285
|
+
stampBackfilled(threadId: string, value: boolean): Promise<void>;
|
|
286
|
+
/** Stamp the last computed symmetry state + (optionally) the peer threadSync (D-D). */
|
|
287
|
+
stampSymmetry(threadId: string, symmetryState: string, peerThreadSync?: {
|
|
288
|
+
digestVersion: number;
|
|
289
|
+
count: number;
|
|
290
|
+
setAccum: string;
|
|
291
|
+
at: string;
|
|
292
|
+
}): Promise<void>;
|
|
293
|
+
/**
|
|
294
|
+
* Bump the SATURATING collision counter (FD-2). Saturates at a ceiling so an
|
|
295
|
+
* endless same-id-different-content replay cannot write-amplify conversations.json.
|
|
296
|
+
*/
|
|
297
|
+
recordCollision(threadId: string): Promise<void>;
|
|
298
|
+
/**
|
|
299
|
+
* Resolve the canonical thread for a verified `(peerPrincipal, workstreamKey)`
|
|
300
|
+
* group, or null if none is bound yet. Returns `{ kind:'found', threadId }`,
|
|
301
|
+
* `{ kind:'none' }`, or `{ kind:'lookup-failed' }` (a transient read error). The
|
|
302
|
+
* caller MUST distinguish lookup-failed from none — a lookup failure observes/
|
|
303
|
+
* retries; it does NOT mint a fresh canonical (avoids an under-load F5
|
|
304
|
+
* regression). `peerPrincipal` MUST be the VERIFIED peer fingerprint.
|
|
305
|
+
*/
|
|
306
|
+
resolveCanonicalThread(peerPrincipal: string, workstreamKey: string): {
|
|
307
|
+
kind: 'found';
|
|
308
|
+
threadId: string;
|
|
309
|
+
} | {
|
|
310
|
+
kind: 'none';
|
|
311
|
+
} | {
|
|
312
|
+
kind: 'lookup-failed';
|
|
313
|
+
};
|
|
314
|
+
/**
|
|
315
|
+
* Bind a thread as the canonical thread for a verified `(peerPrincipal,
|
|
316
|
+
* workstreamKey)` group. First-write-wins: if a DIFFERENT thread already holds
|
|
317
|
+
* the binding for that key, this is a no-op (the existing canonical stands).
|
|
318
|
+
*/
|
|
319
|
+
bindCanonicalThread(threadId: string, peerPrincipal: string, workstreamKey: string): Promise<void>;
|
|
230
320
|
/** Prune expired + resolved-past-grace + LRU-overflow (non-pinned). */
|
|
231
321
|
prune(): void;
|
|
232
322
|
private skeleton;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationStore.d.ts","sourceRoot":"","sources":["../../src/threadline/ConversationStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIrF;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,QAAQ,GACR,MAAM,GACN,gBAAgB,GAChB,UAAU,GACV,QAAQ,GACR,UAAU,CAAC;AAEf;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAEhB,8DAA8D;IAC9D,YAAY,EAAE;QACZ,mDAAmD;QACnD,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,kCAAkC;QAClC,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IACF,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,uBAAuB;IACvB,KAAK,EAAE,iBAAiB,CAAC;IACzB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2DAA2D;IAC3D,SAAS,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC;IACnC,sBAAsB;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IAGrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAG1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IAKjB,+EAA+E;IAC/E,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,0DAA0D;IAC1D,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,oEAAoE;IACpE,mBAAmB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ConversationStore.d.ts","sourceRoot":"","sources":["../../src/threadline/ConversationStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,6 +42,8 @@ const MUTATE_QUEUE_MAX_DEPTH = 256;
|
|
|
42
42
|
const MUTATE_CAS_MAX_RETRIES = 8;
|
|
43
43
|
/** Read-snapshot cache TTL — keeps the gate's hot path off per-call disk reads. */
|
|
44
44
|
const READ_CACHE_TTL_MS = 250;
|
|
45
|
+
/** Saturating ceiling for the per-thread collision counter (FD-2, anti-amplify). */
|
|
46
|
+
const COLLISION_COUNTER_CEILING = 1000;
|
|
45
47
|
// ── Ephemeral verified-only peer-affinity (NOT persisted) ────────
|
|
46
48
|
//
|
|
47
49
|
// The legacy peer-affinity map is a SHORT (10-min sliding / 2-hr absolute),
|
|
@@ -53,9 +55,27 @@ const AFFINITY_ABSOLUTE_MS = 2 * 60 * 60 * 1000;
|
|
|
53
55
|
// ── Implementation ──────────────────────────────────────────────
|
|
54
56
|
/** P3 §3.1 — states whose entry counts as 'closed' for the lifecycle diff. */
|
|
55
57
|
const TERMINAL_CONVERSATION_STATES = new Set(['resolved', 'failed', 'archived']);
|
|
58
|
+
/**
|
|
59
|
+
* Robustness Phase 2 (SA5/FD-10) — the states whose ENTRY drives canonical-log
|
|
60
|
+
* DELETION. Deliberately a STRICT SUBSET of TERMINAL_CONVERSATION_STATES: it
|
|
61
|
+
* EXCLUDES 'archived' because `archived` is the COLD/inactivity-retired state
|
|
62
|
+
* (retireInactive uses it, and a later peer reply can reactivate the thread) —
|
|
63
|
+
* deleting its log would destroy a live relationship's history and re-create an
|
|
64
|
+
* empty log on the next message, a fresh F3 regression. Only a genuine terminal
|
|
65
|
+
* close (resolved/failed) deletes the log. A cold LRU/prune eviction never fires
|
|
66
|
+
* this seam at all (pruneMapInPlace deletes the map key with no lifecycle diff).
|
|
67
|
+
*/
|
|
68
|
+
const LOG_DELETION_STATES = new Set(['resolved', 'failed']);
|
|
56
69
|
export class ConversationStore {
|
|
57
70
|
/** P3 §3.1 — injected coherence-journal emitter (undefined = dark). */
|
|
58
71
|
journalSeam;
|
|
72
|
+
/**
|
|
73
|
+
* Robustness Phase 2 (SA5/E1) — injected post-commit canonical-log retention
|
|
74
|
+
* seam (undefined = dark). Fired ONLY when a NON-pinned conversation transitions
|
|
75
|
+
* INTO a genuine terminal close (resolved/failed) — NOT on cold archive/LRU
|
|
76
|
+
* eviction. The server wires this to `ThreadLog.deleteThread` (SafeFsExecutor).
|
|
77
|
+
*/
|
|
78
|
+
logRetentionSeam;
|
|
59
79
|
filePath;
|
|
60
80
|
/** Per-threadId FIFO mutate queues — serialize same-process concurrent writers. */
|
|
61
81
|
mutateQueues = new Map();
|
|
@@ -280,6 +300,7 @@ export class ConversationStore {
|
|
|
280
300
|
this.writeFileAtomic(file);
|
|
281
301
|
this.invalidateCache();
|
|
282
302
|
this.emitLifecycleDiff(prev, committed);
|
|
303
|
+
this.fireLogRetention(prev, committed);
|
|
283
304
|
return committed;
|
|
284
305
|
}
|
|
285
306
|
/**
|
|
@@ -324,6 +345,33 @@ export class ConversationStore {
|
|
|
324
345
|
setCoherenceJournalSeam(seam) {
|
|
325
346
|
this.journalSeam = seam;
|
|
326
347
|
}
|
|
348
|
+
/**
|
|
349
|
+
* Robustness Phase 2 (SA5/E1) — inject the post-commit canonical-log retention
|
|
350
|
+
* seam (server wires it to `ThreadLog.deleteThread`). Fires ONLY on a non-pinned
|
|
351
|
+
* conversation's transition INTO resolved/failed — NOT on cold archive/LRU.
|
|
352
|
+
*/
|
|
353
|
+
setLogRetentionSeam(seam) {
|
|
354
|
+
this.logRetentionSeam = seam;
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Robustness Phase 2 — fire the canonical-log retention seam when a non-pinned
|
|
358
|
+
* conversation transitions INTO a genuine terminal close (resolved/failed). A
|
|
359
|
+
* POST-COMMIT action (the write has already landed), never mid-mutate, so a CAS
|
|
360
|
+
* rollback can't strand a record without its log. Never throws into the write.
|
|
361
|
+
*/
|
|
362
|
+
fireLogRetention(prev, next) {
|
|
363
|
+
if (!this.logRetentionSeam)
|
|
364
|
+
return;
|
|
365
|
+
try {
|
|
366
|
+
if (next.pinned)
|
|
367
|
+
return; // pinned conversations keep their log
|
|
368
|
+
const wasDeletable = prev ? LOG_DELETION_STATES.has(prev.state) : false;
|
|
369
|
+
const isDeletable = LOG_DELETION_STATES.has(next.state);
|
|
370
|
+
if (!wasDeletable && isDeletable)
|
|
371
|
+
this.logRetentionSeam(next.threadId);
|
|
372
|
+
}
|
|
373
|
+
catch { /* @silent-fallback-ok: retention is post-commit best-effort; a residual log is reclaimed by the orphan sweep */ }
|
|
374
|
+
}
|
|
327
375
|
/**
|
|
328
376
|
* Direct upsert of a full record. Used by migration / bulk import. Now does a
|
|
329
377
|
* read-merge-write so it is safe even if the file changed since construction.
|
|
@@ -497,6 +545,91 @@ export class ConversationStore {
|
|
|
497
545
|
}
|
|
498
546
|
return hint.threadId;
|
|
499
547
|
}
|
|
548
|
+
// ── Canonical-history head cache + collisions (Robustness Phase 2, D-A/FD-2) ──
|
|
549
|
+
/**
|
|
550
|
+
* Stamp the COALESCED canonical-log head cache (count/headHash/setAccum). The
|
|
551
|
+
* JSONL log is the source of truth; this is a best-effort cache the funnel
|
|
552
|
+
* refreshes on a debounced cadence — NEVER a synchronous per-message CAS. A
|
|
553
|
+
* READ never calls this (read-never-writes, SI1).
|
|
554
|
+
*/
|
|
555
|
+
async stampHistoryHead(threadId, head) {
|
|
556
|
+
await this.mutate(threadId, (draft) => {
|
|
557
|
+
draft.historyCount = head.count;
|
|
558
|
+
draft.historyHeadHash = head.headHash;
|
|
559
|
+
draft.historySetAccum = head.setAccum;
|
|
560
|
+
return draft;
|
|
561
|
+
});
|
|
562
|
+
}
|
|
563
|
+
/** Record the memoized one-time backfill marker for a thread (D-C). */
|
|
564
|
+
async stampBackfilled(threadId, value) {
|
|
565
|
+
await this.mutate(threadId, (draft) => { draft.backfilled = value; return draft; });
|
|
566
|
+
}
|
|
567
|
+
/** Stamp the last computed symmetry state + (optionally) the peer threadSync (D-D). */
|
|
568
|
+
async stampSymmetry(threadId, symmetryState, peerThreadSync) {
|
|
569
|
+
await this.mutate(threadId, (draft) => {
|
|
570
|
+
draft.symmetryState = symmetryState;
|
|
571
|
+
if (peerThreadSync)
|
|
572
|
+
draft.peerThreadSync = peerThreadSync;
|
|
573
|
+
return draft;
|
|
574
|
+
});
|
|
575
|
+
}
|
|
576
|
+
/**
|
|
577
|
+
* Bump the SATURATING collision counter (FD-2). Saturates at a ceiling so an
|
|
578
|
+
* endless same-id-different-content replay cannot write-amplify conversations.json.
|
|
579
|
+
*/
|
|
580
|
+
async recordCollision(threadId) {
|
|
581
|
+
await this.mutate(threadId, (draft) => {
|
|
582
|
+
const cur = draft.collisionCount ?? 0;
|
|
583
|
+
if (cur < COLLISION_COUNTER_CEILING)
|
|
584
|
+
draft.collisionCount = cur + 1;
|
|
585
|
+
return draft;
|
|
586
|
+
});
|
|
587
|
+
}
|
|
588
|
+
// ── Conversation-discipline resolver binding (D-E — verified-only, durable) ──
|
|
589
|
+
/**
|
|
590
|
+
* Resolve the canonical thread for a verified `(peerPrincipal, workstreamKey)`
|
|
591
|
+
* group, or null if none is bound yet. Returns `{ kind:'found', threadId }`,
|
|
592
|
+
* `{ kind:'none' }`, or `{ kind:'lookup-failed' }` (a transient read error). The
|
|
593
|
+
* caller MUST distinguish lookup-failed from none — a lookup failure observes/
|
|
594
|
+
* retries; it does NOT mint a fresh canonical (avoids an under-load F5
|
|
595
|
+
* regression). `peerPrincipal` MUST be the VERIFIED peer fingerprint.
|
|
596
|
+
*/
|
|
597
|
+
resolveCanonicalThread(peerPrincipal, workstreamKey) {
|
|
598
|
+
let convs;
|
|
599
|
+
try {
|
|
600
|
+
convs = Object.values(this.snapshot().conversations);
|
|
601
|
+
}
|
|
602
|
+
catch {
|
|
603
|
+
return { kind: 'lookup-failed' };
|
|
604
|
+
}
|
|
605
|
+
// The FIRST (oldest by createdAt) matching binding is canonical (deterministic).
|
|
606
|
+
let best = null;
|
|
607
|
+
for (const c of convs) {
|
|
608
|
+
const b = c.canonicalBinding;
|
|
609
|
+
if (!b || b.peerPrincipal !== peerPrincipal || b.workstreamKey !== workstreamKey)
|
|
610
|
+
continue;
|
|
611
|
+
if (!c.pinned && this.isExpired(c))
|
|
612
|
+
continue;
|
|
613
|
+
if (!best || new Date(c.createdAt).getTime() < new Date(best.createdAt).getTime())
|
|
614
|
+
best = c;
|
|
615
|
+
}
|
|
616
|
+
return best ? { kind: 'found', threadId: best.threadId } : { kind: 'none' };
|
|
617
|
+
}
|
|
618
|
+
/**
|
|
619
|
+
* Bind a thread as the canonical thread for a verified `(peerPrincipal,
|
|
620
|
+
* workstreamKey)` group. First-write-wins: if a DIFFERENT thread already holds
|
|
621
|
+
* the binding for that key, this is a no-op (the existing canonical stands).
|
|
622
|
+
*/
|
|
623
|
+
async bindCanonicalThread(threadId, peerPrincipal, workstreamKey) {
|
|
624
|
+
const existing = this.resolveCanonicalThread(peerPrincipal, workstreamKey);
|
|
625
|
+
if (existing.kind === 'found' && existing.threadId !== threadId)
|
|
626
|
+
return; // first-write-wins
|
|
627
|
+
await this.mutate(threadId, (draft) => {
|
|
628
|
+
if (!draft.canonicalBinding)
|
|
629
|
+
draft.canonicalBinding = { peerPrincipal, workstreamKey };
|
|
630
|
+
return draft;
|
|
631
|
+
});
|
|
632
|
+
}
|
|
500
633
|
// ── Maintenance ────────────────────────────────────────────────
|
|
501
634
|
/** Prune expired + resolved-past-grace + LRU-overflow (non-pinned). */
|
|
502
635
|
prune() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationStore.js","sourceRoot":"","sources":["../../src/threadline/ConversationStore.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConversationStore.js","sourceRoot":"","sources":["../../src/threadline/ConversationStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ThreadLog — the canonical, append-only, hash-chained log, ONE file per thread
|
|
3
|
+
* (Threadline Robustness Phase 2, D-A). The structural fix for F3 (an agent
|
|
4
|
+
* reading "0 messages" on a thread it had just sent 4 messages on).
|
|
5
|
+
*
|
|
6
|
+
* Reuses the `MandateAudit`/`TrustAuditLog` pattern VERBATIM (no new crypto, no
|
|
7
|
+
* new format): each entry embeds the hash of the previous one
|
|
8
|
+
* (`hash = sha256(prevHash + canonical(entry-without-hash))`), append-only JSONL,
|
|
9
|
+
* `verify() → {ok, brokenAt}`. One log file per thread at
|
|
10
|
+
* `{stateDir}/threadline/threads/{threadId}.log.jsonl`.
|
|
11
|
+
*
|
|
12
|
+
* Design points (all from the converged spec):
|
|
13
|
+
* - Append is IDEMPOTENT on `(threadId, messageId, direction)` via a persisted
|
|
14
|
+
* per-thread seen-set whose authority is the LIVE LOG itself (rebuilt from the
|
|
15
|
+
* log on a cold/evicted thread) — NOT a best-effort tail scan (FD-2). A second
|
|
16
|
+
* append on an existing key whose `contentDigest` DIFFERS is a `collision`
|
|
17
|
+
* (recorded, never overwritten — a same-id-different-content replay is a
|
|
18
|
+
* poisoning signal).
|
|
19
|
+
* - The JSONL append (O(1) `appendFileSync`) is the SOURCE OF TRUTH. `head()`
|
|
20
|
+
* returns `{count, headHash, setAccum}` from an in-memory running cache that is
|
|
21
|
+
* REBUILT FROM THE LOG whenever cold — the log always wins.
|
|
22
|
+
* - `count`/`setAccum` are RETENTION-INDEPENDENT running totals (SI2): rotating
|
|
23
|
+
* old entries to `archive/` folds them into a base sidecar so the observable
|
|
24
|
+
* total never changes — asymmetric local rotation between two ends can never
|
|
25
|
+
* manufacture a false `diverged`.
|
|
26
|
+
* - `verify()` walks the LIVE segment, anchored at the first live entry's
|
|
27
|
+
* `prevHash` as the documented chain root (the archived prefix is not walked).
|
|
28
|
+
* It detects a torn/edited line but not a wholesale self-consistent re-chain —
|
|
29
|
+
* that residual is caught (partially) by the ConversationStore head stamp and
|
|
30
|
+
* is named honestly in the spec (the local-FS attacker is already out of scope).
|
|
31
|
+
*
|
|
32
|
+
* Machine-local BY DESIGN under the single-holder model; the per-entry `author`
|
|
33
|
+
* field is the Phase-3 cross-machine-merge seam (recorded, not yet trusted).
|
|
34
|
+
*/
|
|
35
|
+
export type ThreadDirection = 'outbound' | 'inbound';
|
|
36
|
+
/** Who authored THIS leg — the Phase-3 cross-machine-merge seam (recorded, not trusted). */
|
|
37
|
+
export interface ThreadLogAuthor {
|
|
38
|
+
agentFingerprint?: string;
|
|
39
|
+
sessionName?: string;
|
|
40
|
+
machineId?: string;
|
|
41
|
+
}
|
|
42
|
+
export type ThreadTextRef = {
|
|
43
|
+
kind: 'inline';
|
|
44
|
+
text: string;
|
|
45
|
+
} | {
|
|
46
|
+
kind: 'store';
|
|
47
|
+
messageStoreId: string;
|
|
48
|
+
};
|
|
49
|
+
/** A persisted log entry (the full hash-chained shape). */
|
|
50
|
+
export interface ThreadLogEntry {
|
|
51
|
+
seq: number;
|
|
52
|
+
threadId: string;
|
|
53
|
+
messageId: string;
|
|
54
|
+
direction: ThreadDirection;
|
|
55
|
+
digestVersion: number;
|
|
56
|
+
contentDigest: string;
|
|
57
|
+
/** Reconstructed from outbox/aggregate; EXCLUDED from the symmetry head (FD-5). */
|
|
58
|
+
backfilled?: true;
|
|
59
|
+
author: ThreadLogAuthor;
|
|
60
|
+
/** The verified peer on the other end of this leg (participant key). */
|
|
61
|
+
peerFingerprint?: string;
|
|
62
|
+
/** Snapshot at append (display only). */
|
|
63
|
+
subject?: string;
|
|
64
|
+
textRef: ThreadTextRef;
|
|
65
|
+
/** The sender-stamped message `createdAt` (the digest input — distinct from `at`). */
|
|
66
|
+
createdAt: string;
|
|
67
|
+
/** ISO APPEND time (when this end logged it) — distinct from the message createdAt. */
|
|
68
|
+
at: string;
|
|
69
|
+
prevHash: string;
|
|
70
|
+
hash: string;
|
|
71
|
+
}
|
|
72
|
+
/** Caller-supplied fields for an append (seq/at/prevHash/hash are computed here). */
|
|
73
|
+
export interface ThreadLogAppendInput {
|
|
74
|
+
threadId: string;
|
|
75
|
+
messageId: string;
|
|
76
|
+
direction: ThreadDirection;
|
|
77
|
+
contentDigest: string;
|
|
78
|
+
digestVersion?: number;
|
|
79
|
+
backfilled?: true;
|
|
80
|
+
author?: ThreadLogAuthor;
|
|
81
|
+
peerFingerprint?: string;
|
|
82
|
+
subject?: string;
|
|
83
|
+
textRef: ThreadTextRef;
|
|
84
|
+
/** The sender-stamped message `createdAt` (the digest input). */
|
|
85
|
+
createdAt: string;
|
|
86
|
+
/** Test/seam injection for the ISO append time. */
|
|
87
|
+
at?: string;
|
|
88
|
+
}
|
|
89
|
+
export type ThreadLogAppendStatus = 'appended' | 'duplicate' | 'collision';
|
|
90
|
+
export interface ThreadLogAppendResult {
|
|
91
|
+
status: ThreadLogAppendStatus;
|
|
92
|
+
entry: ThreadLogEntry | null;
|
|
93
|
+
}
|
|
94
|
+
export interface ThreadLogHead {
|
|
95
|
+
count: number;
|
|
96
|
+
headHash: string;
|
|
97
|
+
setAccum: string;
|
|
98
|
+
}
|
|
99
|
+
export interface ThreadLogOptions {
|
|
100
|
+
/** Live-segment size before oldest entries rotate to archive/. */
|
|
101
|
+
maxEntriesPerThread?: number;
|
|
102
|
+
/** Per-thread in-memory seen-set ceiling (memory bound; live log is the authority). */
|
|
103
|
+
seenSetMaxPerThread?: number;
|
|
104
|
+
/** Global LRU ceiling on how many threads' state is held in memory. */
|
|
105
|
+
seenSetMaxThreads?: number;
|
|
106
|
+
now?: () => number;
|
|
107
|
+
}
|
|
108
|
+
/** The anchored allowlist for a thread id — the real minted shapes only (FD-7). */
|
|
109
|
+
export declare const THREAD_ID_RE: RegExp;
|
|
110
|
+
export declare class ThreadLog {
|
|
111
|
+
private readonly dir;
|
|
112
|
+
private readonly archiveDir;
|
|
113
|
+
private readonly maxEntriesPerThread;
|
|
114
|
+
private readonly seenSetMaxPerThread;
|
|
115
|
+
private readonly seenSetMaxThreads;
|
|
116
|
+
private readonly now;
|
|
117
|
+
/** Bounded LRU of per-thread in-memory state. The log on disk is the authority. */
|
|
118
|
+
private readonly states;
|
|
119
|
+
constructor(stateDir: string, opts?: ThreadLogOptions);
|
|
120
|
+
private logPath;
|
|
121
|
+
private metaPath;
|
|
122
|
+
private archivePath;
|
|
123
|
+
/** Confirm a resolved log path is inside the threads dir (traversal defense, FD-7). */
|
|
124
|
+
isPathConfined(threadId: string): boolean;
|
|
125
|
+
/**
|
|
126
|
+
* Append one message to the thread's canonical log. Idempotent on
|
|
127
|
+
* `(threadId, messageId, direction)`; first-write-wins. A differing
|
|
128
|
+
* `contentDigest` on an existing key returns `collision` (NOT overwritten). The
|
|
129
|
+
* append is SYNCHRONOUS so two appends in this process cannot interleave the
|
|
130
|
+
* read-head→write window (Node is single-threaded; `appendFileSync` of one
|
|
131
|
+
* sub-PIPE_BUF line is atomic).
|
|
132
|
+
*/
|
|
133
|
+
append(input: ThreadLogAppendInput): ThreadLogAppendResult;
|
|
134
|
+
/** True if `(messageId, direction)` is already logged (live-log authority). */
|
|
135
|
+
has(threadId: string, messageId: string, direction: ThreadDirection): boolean;
|
|
136
|
+
/**
|
|
137
|
+
* The authoritative dedup lookup: the in-memory seen cache first, falling back
|
|
138
|
+
* to a LIVE-LOG scan when the cache is incomplete (trimmed). Returns the stored
|
|
139
|
+
* `contentDigest` for the key, or undefined when genuinely unseen. This is what
|
|
140
|
+
* makes idempotency the full-live-log authority rather than a tail window — a
|
|
141
|
+
* duplicate is caught however many entries intervened.
|
|
142
|
+
*/
|
|
143
|
+
private lookupSeen;
|
|
144
|
+
private findInLiveLog;
|
|
145
|
+
/**
|
|
146
|
+
* Read the LIVE segment paginated by `seq` cursor. `afterSeq` returns entries
|
|
147
|
+
* with `seq > afterSeq`; O(limit) per page over the bounded live segment.
|
|
148
|
+
*/
|
|
149
|
+
read(threadId: string, opts?: {
|
|
150
|
+
limit?: number;
|
|
151
|
+
afterSeq?: number;
|
|
152
|
+
}): {
|
|
153
|
+
entries: ThreadLogEntry[];
|
|
154
|
+
hasMore: boolean;
|
|
155
|
+
};
|
|
156
|
+
/** Head `{count, headHash, setAccum}` — from the in-memory cache, log-rebuilt if cold. */
|
|
157
|
+
head(threadId: string): ThreadLogHead;
|
|
158
|
+
/** The verified peer fingerprints recorded across this thread's live legs. */
|
|
159
|
+
participants(threadId: string): Set<string>;
|
|
160
|
+
/** True if any live leg is `backfilled` (drives the `unverified-backfill` state). */
|
|
161
|
+
hasBackfilledLegs(threadId: string): boolean;
|
|
162
|
+
/**
|
|
163
|
+
* Verify the LIVE segment of the chain, anchored at the first live entry's
|
|
164
|
+
* `prevHash` as the documented chain root (FD-10). Returns `{ok:false, brokenAt}`
|
|
165
|
+
* at the first entry whose recomputed hash or prevHash linkage breaks.
|
|
166
|
+
*/
|
|
167
|
+
verify(threadId: string): {
|
|
168
|
+
ok: true;
|
|
169
|
+
} | {
|
|
170
|
+
ok: false;
|
|
171
|
+
brokenAt: number;
|
|
172
|
+
};
|
|
173
|
+
/** All live thread ids that have a log file on disk (for the orphan sweep). */
|
|
174
|
+
listThreadIds(): string[];
|
|
175
|
+
/**
|
|
176
|
+
* Delete a thread's log + archive segments + meta sidecar (close-only
|
|
177
|
+
* retention, driven by the ConversationStore `closed` lifecycle — NEVER on cold
|
|
178
|
+
* LRU eviction; SA5). All deletes route through SafeFsExecutor.
|
|
179
|
+
*/
|
|
180
|
+
deleteThread(threadId: string): void;
|
|
181
|
+
/** Read every entry in the live segment (tolerant of a torn trailing line). */
|
|
182
|
+
private readLiveEntries;
|
|
183
|
+
private readBase;
|
|
184
|
+
private writeBase;
|
|
185
|
+
/** Load (or rebuild from the log) the in-memory running state for a thread. */
|
|
186
|
+
private loadState;
|
|
187
|
+
/** Cap the in-memory seen cache; once it evicts a key it is no longer complete. */
|
|
188
|
+
private trimSeen;
|
|
189
|
+
private evictStatesIfNeeded;
|
|
190
|
+
/**
|
|
191
|
+
* Rotate the oldest entries to archive/ when the live segment exceeds the cap.
|
|
192
|
+
* Rotation NEVER changes the observable total `count`/`setAccum` (SI2): the
|
|
193
|
+
* rotated entries are folded into the base sidecar so base + live is invariant.
|
|
194
|
+
*/
|
|
195
|
+
private rotateIfNeeded;
|
|
196
|
+
private nextArchiveSegment;
|
|
197
|
+
/** Keep the archive file-count bounded (oldest rotated segment reclaimed). */
|
|
198
|
+
private reclaimOldArchive;
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=ThreadLog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThreadLog.d.ts","sourceRoot":"","sources":["../../src/threadline/ThreadLog.ts"],"names":[],"mappings":"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"}
|