instar 1.3.651 → 1.3.652

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.
Files changed (33) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +120 -1
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/core/ReapGuard.d.ts +13 -1
  5. package/dist/core/ReapGuard.d.ts.map +1 -1
  6. package/dist/core/ReapGuard.js +86 -30
  7. package/dist/core/ReapGuard.js.map +1 -1
  8. package/dist/core/SessionManager.d.ts +11 -0
  9. package/dist/core/SessionManager.d.ts.map +1 -1
  10. package/dist/core/SessionManager.js +30 -4
  11. package/dist/core/SessionManager.js.map +1 -1
  12. package/dist/core/devGatedFeatures.d.ts.map +1 -1
  13. package/dist/core/devGatedFeatures.js +6 -0
  14. package/dist/core/devGatedFeatures.js.map +1 -1
  15. package/dist/core/gapBCommitmentEvidence.d.ts +9 -0
  16. package/dist/core/gapBCommitmentEvidence.d.ts.map +1 -1
  17. package/dist/core/gapBCommitmentEvidence.js +20 -0
  18. package/dist/core/gapBCommitmentEvidence.js.map +1 -1
  19. package/dist/core/types.d.ts +11 -0
  20. package/dist/core/types.d.ts.map +1 -1
  21. package/dist/core/types.js.map +1 -1
  22. package/dist/monitoring/SessionReaper.d.ts +118 -7
  23. package/dist/monitoring/SessionReaper.d.ts.map +1 -1
  24. package/dist/monitoring/SessionReaper.js +302 -101
  25. package/dist/monitoring/SessionReaper.js.map +1 -1
  26. package/dist/monitoring/closeoutLivenessSnapshot.d.ts +143 -0
  27. package/dist/monitoring/closeoutLivenessSnapshot.d.ts.map +1 -0
  28. package/dist/monitoring/closeoutLivenessSnapshot.js +207 -0
  29. package/dist/monitoring/closeoutLivenessSnapshot.js.map +1 -0
  30. package/package.json +1 -1
  31. package/src/data/builtin-manifest.json +3 -3
  32. package/upgrades/1.3.652.md +18 -0
  33. package/upgrades/side-effects/post-transfer-closeout-correctness.md +43 -0
@@ -1 +1 @@
1
- {"version":3,"file":"SessionReaper.js","sourceRoot":"","sources":["../../src/monitoring/SessionReaper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SessionReaper.js","sourceRoot":"","sources":["../../src/monitoring/SessionReaper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * closeoutLivenessSnapshot.ts — the machine-local liveness snapshot that backs
3
+ * the post-transfer closeout's liveness gate (Part C of
4
+ * docs/specs/post-transfer-closeout-correctness.md).
5
+ *
6
+ * THE problem it solves: SessionReaper's post-transfer closeout could terminate
7
+ * the LIVE local session for a topic when the local ownership record was STALE —
8
+ * because nothing verified the remote owner ACTUALLY has a live session for the
9
+ * topic. This module is the verification: a periodically-refreshed local snapshot
10
+ * of "which topics have a live session on each peer", built FROM the SAME per-peer
11
+ * `GET /sessions` fan-out the pool route already performs (no new endpoint), fed
12
+ * to the reaper as a synchronous `remoteOwnerHasLiveSession(topicId, machineId)`
13
+ * dep that returns `true | false | 'unknown'`.
14
+ *
15
+ * Fail-closed everywhere: a missing/stale snapshot, an unreachable peer, or any
16
+ * error → `'unknown'` → the reaper WITHHOLDS the closeout (never kills the live
17
+ * worker). An EMPTY topics-set on a FRESH, successfully-reached peer is a
18
+ * definitive `false` (the stale-owner signal), NOT `'unknown'` — freshness means
19
+ * "reached at reachableAt ≤ bound", never "non-empty".
20
+ *
21
+ * Machine-local by design: every machine runs its OWN closeout against its OWN
22
+ * locally-built snapshot. It is NOT replicated and NOT proxied (the closeout
23
+ * decision is inherently local: "should *I* shed *my* leftover?").
24
+ *
25
+ * No Unbounded Loops: the refresher is LEVEL-triggered on a fixed (jittered)
26
+ * cadence with a per-attempt 5s timeout, per-pass eviction of departed peers, and
27
+ * an OBSERVABILITY breaker (a consecutive-all-failed counter that SURFACES the
28
+ * degraded condition rather than STOPPING the loop — stopping would freeze the
29
+ * snapshot at `'unknown'` forever, the wrong direction for a safe-failure loop).
30
+ */
31
+ /** A session object as returned by a peer's `GET /sessions` (the plain array). */
32
+ export interface PeerSessionLike {
33
+ /** Bound Telegram topic id, when the session is telegram-bound. The pool
34
+ * `/sessions` route surfaces it as `platformId` with `platform === 'telegram'`. */
35
+ platform?: string;
36
+ platformId?: number | string;
37
+ /** Session lifecycle status — used to exclude clearly-terminal entries. */
38
+ status?: string;
39
+ }
40
+ /** One peer's snapshot entry: the set of topic ids that have a live session on
41
+ * that peer, and the local wall-clock at which the peer was last REACHED. */
42
+ export interface PeerLivenessEntry {
43
+ topics: Set<number>;
44
+ /** Local-clock ms when the fan-out fetch for this peer last RESOLVED OK.
45
+ * A failed/timed-out fetch does NOT update it, so the entry ages into stale. */
46
+ reachableAt: number;
47
+ }
48
+ /** The result of a single `remoteOwnerHasLiveSession` lookup — the structured
49
+ * return the dwell-advancement logic needs (state + the snapshot freshness
50
+ * timestamp, atomic from ONE read). `reachableAt` present on true/false, absent
51
+ * on 'unknown'. */
52
+ export interface LivenessResult {
53
+ state: boolean | 'unknown';
54
+ reachableAt?: number;
55
+ }
56
+ /** A registered peer to fetch `/sessions` from. */
57
+ export interface PeerRef {
58
+ machineId: string;
59
+ url: string;
60
+ }
61
+ export interface SnapshotConfig {
62
+ /** Reaper tick cadence (seconds) — the refresh cadence. */
63
+ tickIntervalSec: number;
64
+ /** Consecutive all-peers-failed passes before the observability breaker
65
+ * raises ONE deduped attention item. Default 5 (~10 min at 120s cadence). */
66
+ snapshotBreakerThreshold: number;
67
+ }
68
+ export declare const DEFAULT_SNAPSHOT_CONFIG: SnapshotConfig;
69
+ export interface SnapshotDeps {
70
+ /** All registered ONLINE peers (machineId + url) — `resolvePeerUrls()`.
71
+ * The refresher INTERSECTS the owner set with this so only registered online
72
+ * owners are fetched, and EVICTS snapshot entries for departed peers. */
73
+ resolvePeerUrls: () => PeerRef[];
74
+ /** Fetch a SINGLE peer's plain `GET /sessions` list. Bounded by a 5s timeout
75
+ * inside the impl. Resolves to the session array, or REJECTS/throws on any
76
+ * failure (timeout, non-2xx, network) so the refresher records NO fresh entry
77
+ * for that peer (it ages to stale → 'unknown'). */
78
+ fetchPeerSessions: (peer: PeerRef) => Promise<PeerSessionLike[]>;
79
+ /** The owner machineIds this machine could act on THIS pass — the distinct
80
+ * `.machineId` of every owned-elsewhere topic that has a live local leftover.
81
+ * Empty ⇒ the refresher does NO http that pass (cost tracks leftovers, not
82
+ * pool size). */
83
+ ownerSet: () => string[];
84
+ /** Local wall-clock ms. */
85
+ now: () => number;
86
+ /** ONE deduped attention item when the observability breaker trips. */
87
+ raiseAttention?: (item: {
88
+ id: string;
89
+ title: string;
90
+ summary: string;
91
+ description?: string;
92
+ }) => void;
93
+ /** Structured audit sink (best-effort). */
94
+ audit?: (event: Record<string, unknown>) => void;
95
+ }
96
+ /**
97
+ * Extract the bound topic id from a peer session object, or null. Mirrors the
98
+ * pool `/sessions` route: a telegram-bound session carries `platform:'telegram'`
99
+ * + `platformId:<topic>`.
100
+ */
101
+ export declare function topicOfPeerSession(s: PeerSessionLike): number | null;
102
+ export declare function isTerminalPeerSession(s: PeerSessionLike): boolean;
103
+ /**
104
+ * The machine-local liveness snapshot + its bounded refresher.
105
+ *
106
+ * Construct/start ONLY when `closeoutLivenessGate` resolves true — when the gate
107
+ * is off this is never built and the reaper's `remoteOwnerHasLiveSession` dep is
108
+ * left absent (the closeout keeps today's behavior).
109
+ */
110
+ export declare class CloseoutLivenessSnapshot {
111
+ private readonly cfg;
112
+ private readonly deps;
113
+ /** machineId → { topics, reachableAt }. Bounded O(pool machines): evicted of
114
+ * departed peers each pass; the topics set is bounded by a peer's session count. */
115
+ private readonly snapshot;
116
+ /** Owners discovered mid-tick (closeout saw an owner not yet covered) — fed to
117
+ * the NEXT refresh, never the current read. */
118
+ private readonly pendingOwners;
119
+ /** Consecutive refresh passes where EVERY attempted peer fetch failed. */
120
+ private consecutiveAllFailed;
121
+ /** Whether the breaker attention item has already been raised this episode. */
122
+ private breakerRaised;
123
+ constructor(deps: SnapshotDeps, cfg?: Partial<SnapshotConfig>);
124
+ /** The staleness bound: 2× the refresh cadence (ms). */
125
+ private get stalenessBoundMs();
126
+ /**
127
+ * The reaper's synchronous liveness dep. Reads ONLY the already-populated
128
+ * snapshot (never a fetch it triggers). On the FIRST tick a topic's owner is
129
+ * not yet covered, this returns `'unknown'` (→ WITHHOLD) AND enqueues the owner
130
+ * for the next refresh pass.
131
+ */
132
+ remoteOwnerHasLiveSession: (topicId: number, ownerMachineId: string) => LivenessResult;
133
+ /**
134
+ * One refresh pass — owner-scoped, bounded fan-out. Called on the reaper
135
+ * cadence. Returns the count of peers fetched (for observability/tests).
136
+ */
137
+ refresh(): Promise<void>;
138
+ /** Test/observability accessor — the current snapshot entry for a peer. */
139
+ peek(machineId: string): PeerLivenessEntry | undefined;
140
+ /** Test/observability — whether the breaker has fired this episode. */
141
+ get breakerFired(): boolean;
142
+ }
143
+ //# sourceMappingURL=closeoutLivenessSnapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"closeoutLivenessSnapshot.d.ts","sourceRoot":"","sources":["../../src/monitoring/closeoutLivenessSnapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,kFAAkF;AAClF,MAAM,WAAW,eAAe;IAC9B;wFACoF;IACpF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;8EAC8E;AAC9E,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB;qFACiF;IACjF,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;oBAGoB;AACpB,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,mDAAmD;AACnD,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,2DAA2D;IAC3D,eAAe,EAAE,MAAM,CAAC;IACxB;kFAC8E;IAC9E,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED,eAAO,MAAM,uBAAuB,EAAE,cAGrC,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B;;8EAE0E;IAC1E,eAAe,EAAE,MAAM,OAAO,EAAE,CAAC;IACjC;;;wDAGoD;IACpD,iBAAiB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IACjE;;;sBAGkB;IAClB,QAAQ,EAAE,MAAM,MAAM,EAAE,CAAC;IACzB,2BAA2B;IAC3B,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,uEAAuE;IACvE,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACtG,2CAA2C;IAC3C,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAClD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAMpE;AAWD,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,eAAe,GAAG,OAAO,CAEjE;AAED;;;;;;GAMG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAiB;IACrC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;IACpC;yFACqF;IACrF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwC;IACjE;oDACgD;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,0EAA0E;IAC1E,OAAO,CAAC,oBAAoB,CAAK;IACjC,+EAA+E;IAC/E,OAAO,CAAC,aAAa,CAAS;gBAElB,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAK7D,wDAAwD;IACxD,OAAO,KAAK,gBAAgB,GAE3B;IAED;;;;;OAKG;IACH,yBAAyB,GAAI,SAAS,MAAM,EAAE,gBAAgB,MAAM,KAAG,cAAc,CAmBnF;IAEF;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAyE9B,2EAA2E;IAC3E,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAItD,uEAAuE;IACvE,IAAI,YAAY,IAAI,OAAO,CAE1B;CACF"}
@@ -0,0 +1,207 @@
1
+ /**
2
+ * closeoutLivenessSnapshot.ts — the machine-local liveness snapshot that backs
3
+ * the post-transfer closeout's liveness gate (Part C of
4
+ * docs/specs/post-transfer-closeout-correctness.md).
5
+ *
6
+ * THE problem it solves: SessionReaper's post-transfer closeout could terminate
7
+ * the LIVE local session for a topic when the local ownership record was STALE —
8
+ * because nothing verified the remote owner ACTUALLY has a live session for the
9
+ * topic. This module is the verification: a periodically-refreshed local snapshot
10
+ * of "which topics have a live session on each peer", built FROM the SAME per-peer
11
+ * `GET /sessions` fan-out the pool route already performs (no new endpoint), fed
12
+ * to the reaper as a synchronous `remoteOwnerHasLiveSession(topicId, machineId)`
13
+ * dep that returns `true | false | 'unknown'`.
14
+ *
15
+ * Fail-closed everywhere: a missing/stale snapshot, an unreachable peer, or any
16
+ * error → `'unknown'` → the reaper WITHHOLDS the closeout (never kills the live
17
+ * worker). An EMPTY topics-set on a FRESH, successfully-reached peer is a
18
+ * definitive `false` (the stale-owner signal), NOT `'unknown'` — freshness means
19
+ * "reached at reachableAt ≤ bound", never "non-empty".
20
+ *
21
+ * Machine-local by design: every machine runs its OWN closeout against its OWN
22
+ * locally-built snapshot. It is NOT replicated and NOT proxied (the closeout
23
+ * decision is inherently local: "should *I* shed *my* leftover?").
24
+ *
25
+ * No Unbounded Loops: the refresher is LEVEL-triggered on a fixed (jittered)
26
+ * cadence with a per-attempt 5s timeout, per-pass eviction of departed peers, and
27
+ * an OBSERVABILITY breaker (a consecutive-all-failed counter that SURFACES the
28
+ * degraded condition rather than STOPPING the loop — stopping would freeze the
29
+ * snapshot at `'unknown'` forever, the wrong direction for a safe-failure loop).
30
+ */
31
+ export const DEFAULT_SNAPSHOT_CONFIG = {
32
+ tickIntervalSec: 120,
33
+ snapshotBreakerThreshold: 5,
34
+ };
35
+ /**
36
+ * Extract the bound topic id from a peer session object, or null. Mirrors the
37
+ * pool `/sessions` route: a telegram-bound session carries `platform:'telegram'`
38
+ * + `platformId:<topic>`.
39
+ */
40
+ export function topicOfPeerSession(s) {
41
+ if (s.platform !== 'telegram')
42
+ return null;
43
+ const raw = s.platformId;
44
+ if (typeof raw === 'number' && Number.isFinite(raw))
45
+ return raw;
46
+ if (typeof raw === 'string' && /^\d+$/.test(raw))
47
+ return Number(raw);
48
+ return null;
49
+ }
50
+ /**
51
+ * THE ONE NORMATIVE liveness predicate (spec "Peer `/sessions` liveness
52
+ * contract"): a topic counts as live-on-a-peer when that peer's `/sessions` lists
53
+ * a session bound to the topic that is NOT explicitly terminal/shutting-down. An
54
+ * entry whose state cannot be classified counts as LISTED (opaque is NOT dead) —
55
+ * so we EXCLUDE only the clearly-terminal states.
56
+ */
57
+ const TERMINAL_STATUSES = new Set(['completed', 'failed', 'killed']);
58
+ export function isTerminalPeerSession(s) {
59
+ return typeof s.status === 'string' && TERMINAL_STATUSES.has(s.status);
60
+ }
61
+ /**
62
+ * The machine-local liveness snapshot + its bounded refresher.
63
+ *
64
+ * Construct/start ONLY when `closeoutLivenessGate` resolves true — when the gate
65
+ * is off this is never built and the reaper's `remoteOwnerHasLiveSession` dep is
66
+ * left absent (the closeout keeps today's behavior).
67
+ */
68
+ export class CloseoutLivenessSnapshot {
69
+ cfg;
70
+ deps;
71
+ /** machineId → { topics, reachableAt }. Bounded O(pool machines): evicted of
72
+ * departed peers each pass; the topics set is bounded by a peer's session count. */
73
+ snapshot = new Map();
74
+ /** Owners discovered mid-tick (closeout saw an owner not yet covered) — fed to
75
+ * the NEXT refresh, never the current read. */
76
+ pendingOwners = new Set();
77
+ /** Consecutive refresh passes where EVERY attempted peer fetch failed. */
78
+ consecutiveAllFailed = 0;
79
+ /** Whether the breaker attention item has already been raised this episode. */
80
+ breakerRaised = false;
81
+ constructor(deps, cfg) {
82
+ this.deps = deps;
83
+ this.cfg = { ...DEFAULT_SNAPSHOT_CONFIG, ...(cfg ?? {}) };
84
+ }
85
+ /** The staleness bound: 2× the refresh cadence (ms). */
86
+ get stalenessBoundMs() {
87
+ return 2 * this.cfg.tickIntervalSec * 1000;
88
+ }
89
+ /**
90
+ * The reaper's synchronous liveness dep. Reads ONLY the already-populated
91
+ * snapshot (never a fetch it triggers). On the FIRST tick a topic's owner is
92
+ * not yet covered, this returns `'unknown'` (→ WITHHOLD) AND enqueues the owner
93
+ * for the next refresh pass.
94
+ */
95
+ remoteOwnerHasLiveSession = (topicId, ownerMachineId) => {
96
+ try {
97
+ const entry = this.snapshot.get(ownerMachineId);
98
+ if (!entry) {
99
+ // Owner not yet covered — discover it for the NEXT pass, withhold now.
100
+ this.pendingOwners.add(ownerMachineId);
101
+ return { state: 'unknown' };
102
+ }
103
+ const age = this.deps.now() - entry.reachableAt;
104
+ if (!(age <= this.stalenessBoundMs)) {
105
+ // Stale — the peer was unreachable / timed out at the last refresh.
106
+ return { state: 'unknown' };
107
+ }
108
+ // FRESH: an empty topics set is a definitive `false` (reached, zero
109
+ // sessions = the stale-owner signal), never 'unknown'.
110
+ return { state: entry.topics.has(topicId), reachableAt: entry.reachableAt };
111
+ }
112
+ catch {
113
+ return { state: 'unknown' };
114
+ }
115
+ };
116
+ /**
117
+ * One refresh pass — owner-scoped, bounded fan-out. Called on the reaper
118
+ * cadence. Returns the count of peers fetched (for observability/tests).
119
+ */
120
+ async refresh() {
121
+ let owners;
122
+ try {
123
+ owners = new Set([...this.deps.ownerSet(), ...this.pendingOwners]);
124
+ }
125
+ catch {
126
+ owners = new Set(this.pendingOwners);
127
+ }
128
+ this.pendingOwners.clear();
129
+ // Intersect with registered online peers (only fetch owners we can reach),
130
+ // and evict snapshot entries for peers no longer in the pool.
131
+ let registered = [];
132
+ try {
133
+ registered = this.deps.resolvePeerUrls();
134
+ }
135
+ catch {
136
+ registered = [];
137
+ }
138
+ const registeredById = new Map(registered.map(p => [p.machineId, p]));
139
+ // Eviction (bounded map growth): drop entries for departed peers.
140
+ for (const mid of [...this.snapshot.keys()]) {
141
+ if (!registeredById.has(mid))
142
+ this.snapshot.delete(mid);
143
+ }
144
+ const toFetch = [];
145
+ for (const mid of owners) {
146
+ const peer = registeredById.get(mid);
147
+ if (peer)
148
+ toFetch.push(peer);
149
+ }
150
+ if (toFetch.length === 0) {
151
+ // No owned-elsewhere leftovers reachable this pass → no HTTP, no breaker move.
152
+ return;
153
+ }
154
+ let anyOk = false;
155
+ await Promise.all(toFetch.map(async (peer) => {
156
+ try {
157
+ const list = await this.deps.fetchPeerSessions(peer);
158
+ const topics = new Set();
159
+ for (const s of list) {
160
+ if (isTerminalPeerSession(s))
161
+ continue; // exclude only clearly-terminal
162
+ const t = topicOfPeerSession(s);
163
+ if (t != null)
164
+ topics.add(t);
165
+ }
166
+ // A FRESH reached peer with an EMPTY set is recorded (empty ≠ unknown).
167
+ this.snapshot.set(peer.machineId, { topics, reachableAt: this.deps.now() });
168
+ anyOk = true;
169
+ }
170
+ catch {
171
+ // Failed fetch: do NOT update reachableAt — the entry ages into stale →
172
+ // 'unknown' → WITHHOLD (the safe direction). @silent-fallback-ok
173
+ }
174
+ }));
175
+ // Observability breaker — SURFACE the degraded condition, never STOP the loop.
176
+ if (anyOk) {
177
+ this.consecutiveAllFailed = 0;
178
+ this.breakerRaised = false;
179
+ }
180
+ else {
181
+ this.consecutiveAllFailed += 1;
182
+ if (this.consecutiveAllFailed >= this.cfg.snapshotBreakerThreshold && !this.breakerRaised) {
183
+ this.breakerRaised = true;
184
+ this.deps.audit?.({
185
+ kind: 'session-reaper',
186
+ event: 'closeout-snapshot-breaker',
187
+ consecutiveFailures: this.consecutiveAllFailed,
188
+ });
189
+ this.deps.raiseAttention?.({
190
+ id: 'closeout-snapshot-breaker',
191
+ title: 'Post-transfer liveness snapshot cannot reach any peer',
192
+ summary: `The liveness snapshot has failed to reach any peer for ${this.consecutiveAllFailed} passes — closeout is safely withholding all leftovers.`,
193
+ description: `The post-transfer closeout liveness snapshot could not reach ANY peer for ${this.consecutiveAllFailed} consecutive refresh passes. Closeout is safely WITHHOLDING every owned-elsewhere leftover (the fail-closed direction — no live worker is killed), but stale duplicate sessions will not be reclaimed until mesh connectivity recovers. Check mesh/peer connectivity.`,
194
+ });
195
+ }
196
+ }
197
+ }
198
+ /** Test/observability accessor — the current snapshot entry for a peer. */
199
+ peek(machineId) {
200
+ return this.snapshot.get(machineId);
201
+ }
202
+ /** Test/observability — whether the breaker has fired this episode. */
203
+ get breakerFired() {
204
+ return this.breakerRaised;
205
+ }
206
+ }
207
+ //# sourceMappingURL=closeoutLivenessSnapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"closeoutLivenessSnapshot.js","sourceRoot":"","sources":["../../src/monitoring/closeoutLivenessSnapshot.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.651",
3
+ "version": "1.3.652",
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-06-24T08:27:53.399Z",
5
- "instarVersion": "1.3.651",
4
+ "generatedAt": "2026-06-24T10:35:34.552Z",
5
+ "instarVersion": "1.3.652",
6
6
  "entryCount": 202,
7
7
  "entries": {
8
8
  "hook:session-start": {
@@ -1538,7 +1538,7 @@
1538
1538
  "type": "subsystem",
1539
1539
  "domain": "sessions",
1540
1540
  "sourcePath": "src/core/SessionManager.ts",
1541
- "contentHash": "2bcbf83f755cad24f909d1102bee3c6d187aebcb56c66b2f9b6afda4810e6950",
1541
+ "contentHash": "1e975218f0ef7377bf709128150e65af094afcb3ff524c6822f2af136548f12b",
1542
1542
  "since": "2025-01-01"
1543
1543
  },
1544
1544
  "subsystem:auto-updater": {
@@ -0,0 +1,18 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- assembled-by: assemble-next-md -->
4
+ <!-- bump: patch -->
5
+
6
+ ## What Changed
7
+
8
+ On a multi-machine setup, the SessionReaper's post-transfer closeout could terminate the LIVE local session for a topic when the local ownership record was STALE — it acted on "the registry says another machine owns this topic" without ever verifying that the other machine ACTUALLY has a live session for it, so a stale label could get the only live worker killed (and the operator-visible symptom was a `closeout-breaker` "the old session won't close" alert, escalating the wrong thing). This change (dev-gated dark behind `monitoring.sessionReaper.closeoutLivenessGate`, LIVE on a development agent) makes the closeout verify remote liveness first via a machine-local snapshot of each peer's `GET /sessions`: it proceeds ONLY when the owning machine genuinely has a live session (a real duplicate), and WITHHOLDS — never killing the sole live worker — on a no-live-remote-session reading, an unknown/unreachable peer, or any uncertainty (fail-closed everywhere). It also re-keys the closeout breaker counters on the stable topic id so a session-id churn across respawn no longer resets the veto count, and adds a narrow audited keep-reason bypass so a genuine move's leftover with a stale pre-move "recent" message can actually shed. Ships dark on the fleet (the dark stage of the maturation ladder, with explicit fleet-promotion criteria); when off, the closeout's behavior is byte-identical to today.
9
+
10
+ ## What to Tell Your User
11
+
12
+ If you run me across more than one machine, I will never close the one session still doing real work just because a stale "who owns this conversation" record points at another machine. Before this, a record that went stale (the other machine already finished) could make my cleanup robot keep trying to kill the live worker in a loop. Now I first confirm the other machine actually has a live session before closing the leftover; if I can't confirm it, I hold off rather than risk killing live work. This is off everywhere except this development agent while it soaks.
13
+
14
+ ## Summary of New Capabilities
15
+
16
+ - The post-transfer closeout now liveness-gates the kill: it terminates a topic's leftover session ONLY when the owning machine is confirmed to have a live session, and WITHHOLDS (fail-closed) when the owner has no live session, is unreachable, or liveness is unknown — so a stale ownership record can never get the sole live local worker killed.
17
+ - A narrow, audited `recent-user-message` bypass lets a genuinely-moved leftover finally shed, but only after re-checking every OTHER keep-guard (active-subagent, open-commitment, …), so a live-working session is never killed by the bypass.
18
+ - The closeout veto breaker is re-keyed on the stable topic id (not the churning session id), and the whole behavior ships dark behind `monitoring.sessionReaper.closeoutLivenessGate` (default OFF; dev-gated live-on-dev / dark-on-fleet) — flag off is byte-identical to today.
@@ -0,0 +1,43 @@
1
+ # Side-Effects Review — Post-Transfer Closeout Correctness (liveness-gate the stale-ownership kill)
2
+
3
+ **Slug:** `post-transfer-closeout-correctness`
4
+ **Spec:** `docs/specs/post-transfer-closeout-correctness.md` (converged 4 rounds, approved)
5
+ **Author:** Echo (autonomous 24h mesh-robustness mission, topic 27515)
6
+ **Branch:** `echo/ownership-follows-live-work`
7
+ **Risk class:** safety-critical (the changed decision can terminate a LIVE local session) — mitigated by fail-closed-everywhere + a default-OFF dev-gated flag.
8
+
9
+ ## What changed (in-scope files)
10
+
11
+ - `src/monitoring/closeoutLivenessSnapshot.ts` (NEW) — `CloseoutLivenessSnapshot`: the machine-local, periodically-refreshed snapshot of "which topics have a live session on each peer", built FROM the existing per-peer `GET /sessions` fan-out (no new endpoint). Exposes the synchronous `remoteOwnerHasLiveSession(topicId, machineId) → { state: true|false|'unknown'; reachableAt? }` dep and a bounded, owner-scoped `refresh()` (5s per-fetch timeout, per-pass eviction of departed peers, observability breaker that SURFACES — never STOPS — a persistent all-peers-failed condition). Fail-closed: missing/stale/unreachable → `'unknown'`; a fresh reached peer with an EMPTY topics set is a definitive `false` (the stale-owner signal).
12
+ - `src/monitoring/SessionReaper.ts` (+~220) — Part C decision (`runCloseoutGated`): consults `remoteOwnerHasLiveSession` inside the `else if (otherOwner)` arm, AFTER the pin-conflict hold; `true` → dwell→terminate; `false`/`'unknown'`/dep-absent → WITHHOLD + neutral once-per-episode `possibleStaleOwner` audit. Dwell advances only across DISTINCT snapshot generations (`reachableAt` advancement). Part E: passes `bypassRecentUserMessageForConfirmedMove` ONLY on a confirmed move whose freshest LOCAL user message predates the snapshot (freshest-interaction veto). Secondary: breaker maps (`topicMovedStreak`/`topicMovedVetoes`) re-keyed on the stable TOPIC id with a GC grace window. The legacy path (`runCloseoutLegacy`) is the byte-identical OFF behavior. New config field `closeoutLivenessGate` (default false in the in-code `DEFAULT_SESSION_REAPER_CONFIG`).
13
+ - `src/core/SessionManager.ts` (+~15) — new narrow `terminateSession` option `bypassRecentUserMessageForConfirmedMove`, mirroring `bypassActiveProcessKeep`: extends the `bypassThis` computation to lift ONLY the `recent-user-message` keep-reason; every other KEEP-guard re-checked and still vetoes.
14
+ - `src/core/gapBCommitmentEvidence.ts` (+~20) — `recentUserMessageAtFromHistory(history) → number | null`: the LOCAL-receipt timestamp of the newest user message, SAME source the `recent-user-message` KEEP-guard reads (shared basis for the Part E veto).
15
+ - `src/core/types.ts` (+~12) — `monitoring.sessionReaper.closeoutLivenessGate?: boolean` (OMITTED-from-default dev-gated flag).
16
+ - `src/core/devGatedFeatures.ts` (+1 entry) — registers `monitoring.sessionReaper.closeoutLivenessGate` in `DEV_GATED_FEATURES` (live-on-dev / dark-fleet via `resolveDevAgentGate`).
17
+ - `src/commands/server.ts` (+~90) — wiring: resolves `closeoutLivenessGate` via `resolveDevAgentGate`; constructs the `CloseoutLivenessSnapshot` + its jittered (±10%) reaper-cadence refresh timer ONLY when the gate resolves on; injects `topicOwnerElsewhereInfo` (atomic machineId+display), `remoteOwnerHasLiveSession`, `recentUserMessageAt`; forwards the new bypass through the `terminate` dep; sets `closeoutLivenessGate` on the reaper config.
18
+
19
+ ## Review
20
+
21
+ 1. **Over-block (a wrong WITHHOLD).** The withhold is the SAFE direction — it only ever KEEPS a live local session the closeout would otherwise have attempted to kill. A genuine duplicate leftover that gets withheld under `'unknown'`/partition is NOT stranded: it still falls through to the normal idle pipeline every tick (the closeout block precedes it), so a sustained partition delays closeout-driven cleanup but never leaks zombies. Worst case is a bounded cleanup delay, never a wrong kill.
22
+
23
+ 2. **Under-block (a wrong kill — the bug class this fixes).** With the gate ON, the ONLY path that reaches the closeout terminate is an explicit `true` from `remoteOwnerHasLiveSession` (owner genuinely has a live session = a real duplicate). Every uncertainty — `false`, `'unknown'`, dep throws, dep absent under the gate, stale/absent snapshot, unreachable peer, null topic binding — fails CLOSED to WITHHOLD. The one residual `true`-side race (remote completes between the snapshot and the terminate) is strictly milder than the original bug (a transient no-worker gap on a topic that DID move, self-healing on the next inbound message) and is bounded by the staleness bound + the dwell-advancement requirement; it is named/accepted in the spec's "Fail-closed everywhere".
24
+
25
+ 3. **Signal vs authority compliance.** COMPLIANT. The change alters only the DECISION to ATTEMPT the closeout terminate; the terminate still routes through the guarded `terminateSession` authority (protected-set, lease-holder, KEEP-guards intact). `remoteOwnerHasLiveSession` is a SIGNAL that informs the decision, never an authority that kills. The Part E bypass is a NARROW, named keep-reason bypass of EXACTLY ONE reason (`recent-user-message`), in the EXACT shape of the existing `bypassActiveProcessKeep` precedent, used ONLY on a liveness-confirmed move — every other KEEP-guard is re-checked and still vetoes.
26
+
27
+ 4. **Level-of-abstraction fit.** Correct layer. Remote liveness is per-peer `/sessions` data; the snapshot reads it (reusing the proven fan-out primitive), the reaper consults it synchronously, the terminate authority is untouched. No new reachability/ownership authority is invented — the closeout simply gains a verification step before acting on the ownership record that already drove it.
28
+
29
+ 5. **Interactions.** The pin-conflict hold (WS1.3) still WINS ahead of the liveness gate (unchanged). The P19 veto-breaker is preserved; re-keying it on the topic id makes it count correctly across a same-topic respawn (the secondary fix — was ~32 min, now ~10). A WITHHELD episode never accrues breaker vetoes (it never attempted a terminate). Episode-hygiene clears (terminate-success / topic-home / pin-conflict) are preserved under the topic key, so a new episode for the same topic starts clean. The refresher's owner-scoped fan-out (only machineIds that back an owned-elsewhere local leftover) bounds per-tick HTTP to O(distinct remote owners with a leftover here), not O(pool size), and does zero HTTP when there are no leftovers.
30
+
31
+ 6. **External surfaces.** No new route, no new unauthenticated input. The snapshot reuses the existing authenticated `GET /sessions` fetch (Bearer-auth, 5s timeout). The observability breaker raises ONE deduped attention item (P17-coalesced, `sourceContext: 'session-reaper:closeout-snapshot-breaker'`) only after a threshold of consecutive all-peers-failed passes. Audit rows land in this machine's existing `logs/sentinel-events.jsonl`. Nothing new is visible to other users/agents.
32
+
33
+ 7. **Multi-machine posture (Cross-Machine Coherence).** The new `liveRemoteTopics` snapshot is **MACHINE-LOCAL BY DESIGN** — each machine runs its OWN closeout against its OWN locally-built snapshot (the closeout decision is inherently local: "should *I* shed *my* leftover?"). It is NOT replicated and NOT proxied; rebuilt from scratch each refresh (no migration/backup). The `closeoutLivenessGate` flag's per-machine dev-gate resolution is CORRECT here (unlike a transfer/placement feature): the closeout is a per-machine janitor, and each machine making its OWN strictly-more-conservative decision is independently safe — the gate changes only a LOCAL decision, never a replicated record, so a mixed (some-on/some-off) fleet produces only diagnostic asymmetry, never state corruption. A gate-OFF machine retains today's behavior until promoted (the dark stage of the maturation ladder; fleet-promotion criteria are in the spec's `## Verification`).
34
+
35
+ 8. **Rollback cost.** Cheap and immediate. Flip `monitoring.sessionReaper.closeoutLivenessGate: false` in `.instar/config.json` (an explicit false force-darks even a dev agent; restart sessions/server to apply) → the snapshot refresher is never constructed, the new deps are left absent, the maps stay session-id-keyed, and the closeout's observable behavior is exactly canonical `main`. No data migration: the only new persisted artifacts are audit rows in `sentinel-events.jsonl` (additive). The in-memory snapshot evaporates on the next boot.
36
+
37
+ ## Migration parity
38
+
39
+ `closeoutLivenessGate` is a DEV-GATED flag: it is OMITTED from `src/config/ConfigDefaults.ts` (NOT hardcoded `false`) so `resolveDevAgentGate` resolves it LIVE on a dev agent / DARK on the fleet, exactly like `topicProfiles` / `credentialRepointing` / the multi-machine seamlessness flags. Because it is omitted, `applyDefaults` never writes it to a deployed agent's config and the runtime gate handles it — so existing agents pick up the (dev-gated-off-on-fleet) behavior on update with no config write needed. An explicit config value always wins (false force-darks, true is the fleet-flip). The in-code constructor default (`DEFAULT_SESSION_REAPER_CONFIG.closeoutLivenessGate = false`) is the safe fallback when the field is absent.
40
+
41
+ ## No-deferrals
42
+
43
+ This spec's scope is exactly "stop the dangerous kill" — Parts A (ownership release-on-complete), B (claim-on-spawn), and D (double-dispatch recovery gate) of the broader audit are an EXPLICIT separate follow-up PR, never in this scope. They are tracked via a durable one-time-action commitment opened on merge (the constitution's "Close the Loop" mechanism), which also carries the gate's retirement plan (when A/B land and make the ownership record self-correcting, the snapshot/refresher/dep retire; the Part E bypass + the topic-keyed breaker counters REMAIN — they fix orthogonal problems A/B don't address). No orphan deferral language; the false-case audit is deliberately observational-only (NO ownership-CAS write — that is Part A/B's job).