opensquid 0.5.401 → 0.5.405

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.
@@ -1 +1 @@
1
- {"version":3,"file":"handoff_session_start.d.ts","sourceRoot":"","sources":["../../src/functions/handoff_session_start.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,QAAA,MAAM,MAAM,iDAAwB,CAAC;AAErC,UAAU,YAAY;IACpB,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAUD,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI,CAuDxF,CAAC"}
1
+ {"version":3,"file":"handoff_session_start.d.ts","sourceRoot":"","sources":["../../src/functions/handoff_session_start.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,QAAA,MAAM,MAAM,iDAAwB,CAAC;AAErC,UAAU,YAAY;IACpB,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAUD,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI,CAyDxF,CAAC"}
@@ -52,17 +52,6 @@ export const HandoffSessionStart = {
52
52
  const stamp = sessionStateFile(ctx.sessionId, 'handoff-read');
53
53
  if ((await mtimeOf(stamp)) !== null)
54
54
  return ok(null);
55
- // SUB.3 (wg-627effbb2c38): a "dead" sid with a fresh tool-ledger /
56
- // active-task mtime is a LIVE session (nested child, second terminal)
57
- // — dumping it would clobber its in-flight resume surfaces (observed
58
- // live 2026-06-11: the MEMORY.md managed block overwritten twice
59
- // mid-run by exactly this path). Skip WITHOUT writing the
60
- // handoff-read stamp: if the session actually just crashed, the next
61
- // fresh session retries once FRESH_MS lapses — the loss is transient
62
- // by construction, never pinned by a stale stamp.
63
- const liveness = await isSessionPlausible(deadSid);
64
- if (liveness.plausible)
65
- return ok(null);
66
55
  const umbrellaRoot = await umbrellaRootFor(cwd);
67
56
  const fsmPath = sessionStateFile(deadSid, 'fsm-coding-flow');
68
57
  const fsmM = await mtimeOf(fsmPath);
@@ -74,7 +63,21 @@ export const HandoffSessionStart = {
74
63
  // which day it was generated (the date-keyed path missed yesterday's).
75
64
  docPath = handoverDocPath(umbrellaRoot, deadSid);
76
65
  const docM = await mtimeOf(docPath);
77
- if (docM === null || fsmM === null || docM < fsmM) {
66
+ const docCurrent = docM !== null && fsmM !== null && docM >= fsmM;
67
+ if (!docCurrent) {
68
+ // SUB.3 refined by FXK.2 (0.5.403): liveness gates GENERATION
69
+ // ONLY — injecting a CURRENT doc clobbers nothing (the observed
70
+ // MEMORY.md overwrites were regeneration writes), so graceful-
71
+ // death quick restarts inject instantly. A plausibly-LIVE "dead"
72
+ // sid (nested child, second terminal) skips WITHOUT writing the
73
+ // handoff-read stamp, so a later session retries once the window
74
+ // lapses. freshMs = 10min: the longest a LIVE session goes quiet
75
+ // on its probed files is the 340s audit wait (wg-bc291cb0cef4's
76
+ // inner-window sizing) + margin — 5min would re-open the clobber,
77
+ // 30min over-suppressed kill-9 resumes (the shipped SUB.3 flaw).
78
+ const liveness = await isSessionPlausible(deadSid, { freshMs: 10 * 60_000 });
79
+ if (liveness.plausible)
80
+ return ok(null);
78
81
  const result = await runHandoff(deadSid, cwd); // generate from disk
79
82
  docPath = result.docPath;
80
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"handoff_session_start.js","sourceRoot":"","sources":["../../src/functions/handoff_session_start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handoff_session_start.js","sourceRoot":"","sources":["../../src/functions/handoff_session_start.ts"],"names":[],"mappings":"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"}
@@ -16,10 +16,20 @@ import type { HandoffState } from './collect.js';
16
16
  /** The mechanical resume steps (research-flow-first; commit-doc last). */
17
17
  export declare function renderResumeSteps(state: HandoffState): string[];
18
18
  export declare function renderHandoverDoc(state: HandoffState): string;
19
+ /** HPB.1 (wg-c34349377f81) — a POINTER-ONLY projection. The project's locked
20
+ * thesis (event-sourced work-graph; the memory axiom): disk state is the
21
+ * truth; shared-mutable surfaces carry pointers, never content. The inline
22
+ * steps this used to carry were a stale-prone duplicate of what the
23
+ * SessionStart directive injection (0.5.404) renders fresh — and an
24
+ * overwritten POINTER loses nothing, because the doc it names is lazily
25
+ * regenerated to currency at read time. */
19
26
  export declare function renderResumeBlock(state: HandoffState): string;
20
27
  export declare function renderWgDigest(state: HandoffState): string;
21
28
  export declare function renderChatDigest(state: HandoffState): string;
22
29
  export declare function spliceNarrative(doc: string, narrative: string): string;
23
- /** SessionStart injection text (reader side). */
30
+ /** SessionStart injection text (reader side). HRA.1 (wg-c34349377f81): a
31
+ * DIRECTIVE, not an FYI — the user's bar is "resume on ANY first prompt"
32
+ * (their morning words: "i thought it would be automatic"). The yield
33
+ * clause keeps the user's actual ask sovereign. */
24
34
  export declare function renderInjection(docPath: string): string;
25
35
  //# sourceMappingURL=render.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/runtime/handoff/render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAsCjD,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,EAAE,CAqC/D;AAUD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAkD7D;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAQ7D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAQ1D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAO5D;AAKD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAKtE;AAED,iDAAiD;AACjD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMvD"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/runtime/handoff/render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAsCjD,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,EAAE,CAqC/D;AAUD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAkD7D;AAED;;;;;;4CAM4C;AAC5C,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAO7D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAQ1D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAO5D;AAKD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAKtE;AAED;;;oDAGoD;AACpD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CASvD"}
@@ -123,12 +123,18 @@ ${section('Git', git || '_(no repos swept)_')}
123
123
  ${section('Open work-graph issues', issues)}
124
124
  `;
125
125
  }
126
+ /** HPB.1 (wg-c34349377f81) — a POINTER-ONLY projection. The project's locked
127
+ * thesis (event-sourced work-graph; the memory axiom): disk state is the
128
+ * truth; shared-mutable surfaces carry pointers, never content. The inline
129
+ * steps this used to carry were a stale-prone duplicate of what the
130
+ * SessionStart directive injection (0.5.404) renders fresh — and an
131
+ * overwritten POINTER loses nothing, because the doc it names is lazily
132
+ * regenerated to currency at read time. */
126
133
  export function renderResumeBlock(state) {
127
134
  const sid8 = state.sessionId.slice(0, 8);
128
- const steps = renderResumeSteps(state);
129
- return (`## ‼️ AUTO-HANDOFF (session ${sid8}, ${state.generatedAt}) FSM ${fsmStateOf(state)}\n` +
130
- `Full record: see the auto-handover doc for session ${sid8} under the umbrella docs/ dir. ` +
131
- `First step: ${steps[0] ?? '(none)'} Final step: commit the handover doc(s).`);
135
+ return (`## 📦 AUTO-HANDOFF pointer (session ${sid8}, ${state.generatedAt}) — FSM ${fsmStateOf(state)}\n` +
136
+ `Full record: \`docs/handover-session-${sid8}-auto.md\` under the umbrella root. ` +
137
+ `The next session AUTO-RESUMES from it on any first prompt (0.5.404 directive) no manual action needed.`);
132
138
  }
133
139
  export function renderWgDigest(state) {
134
140
  return (`AUTO-HANDOFF for session ${state.sessionId} (${state.generatedAt}). ` +
@@ -153,10 +159,16 @@ export function spliceNarrative(doc, narrative) {
153
159
  return `${doc}\n${section}`; // defensive — append
154
160
  return `${doc.slice(0, at)}${section}${doc.slice(at)}`;
155
161
  }
156
- /** SessionStart injection text (reader side). */
162
+ /** SessionStart injection text (reader side). HRA.1 (wg-c34349377f81): a
163
+ * DIRECTIVE, not an FYI — the user's bar is "resume on ANY first prompt"
164
+ * (their morning words: "i thought it would be automatic"). The yield
165
+ * clause keeps the user's actual ask sovereign. */
157
166
  export function renderInjection(docPath) {
158
- return (`📦 AUTO-HANDOFF available from the previous session: ${docPath}\n` +
159
- `Read it BEFORE starting substantive work it carries the mechanical RESUME steps ` +
160
- `(research-flow-first when the flow was mid-flight) and disk-truth artifact hashes.`);
167
+ return (`📦 AUTO-HANDOFF PENDING from the previous session: ${docPath}\n` +
168
+ `This is an ACTIVE task, not background context: read that doc and execute its ` +
169
+ `RESUME steps NOW announce in one line that you are resuming, then drive the ` +
170
+ `steps to completion. Yield ONLY if the user's first prompt explicitly requests ` +
171
+ `different work (their ask always wins); otherwise any first prompt — including a ` +
172
+ `greeting — starts the resume.`);
161
173
  }
162
174
  //# sourceMappingURL=render.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/runtime/handoff/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/runtime/handoff/render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;IACvB,SAAS;IACT,aAAa;IACb,YAAY;IACZ,eAAe;IACf,eAAe;IACf,cAAc;IACd,kBAAkB;CACnB,CAAC,CAAC;AAEH,SAAS,UAAU,CAAC,KAAmB;IACrC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IACtB,IACE,GAAG,KAAK,IAAI;QACZ,OAAO,GAAG,KAAK,QAAQ;QACvB,OAAQ,GAA2B,CAAC,KAAK,KAAK,QAAQ,EACtD,CAAC;QACD,OAAQ,GAAyB,CAAC,KAAK,CAAC;IAC1C,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,cAAc,CAAC,KAAmB,EAAE,CAAC,GAAG,CAAC;IAChD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IACtB,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACvD,MAAM,OAAO,GAAI,GAA6B,CAAC,OAAO,CAAC;IACvD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,OAAO,OAAO;SACX,KAAK,CAAC,CAAC,CAAC,CAAC;SACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACT,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ;QACjC,CAAC,CAAC,GAAG,MAAM,CAAE,CAAyB,CAAC,KAAK,CAAC,MAAM,MAAM,CAAE,CAAsB,CAAC,EAAE,CAAC,EAAE;QACvF,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CACd,CAAC;AACN,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,iBAAiB,CAAC,KAAmB;IACnD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAE5D,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CACR,wCAAwC,GAAG,CAAC,IAAI,GAAG;gBACjD,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI;oBAChB,CAAC,CAAC,cAAc,GAAG,CAAC,IAAI,0CAA0C;oBAClE,CAAC,CAAC,mFAAmF,CAAC;gBACxF,qGAAqG,CACxG,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CACR,8FAA8F,CAC/F,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CACR,uBAAuB,IAAI,CAAC,IAAI,EAAE;gBAChC,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,yBAAyB,CAAC;gBAC9E,mEAAmE,CACtE,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,IAAI,CACR,oKAAoK,CACrK,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CACR,cAAc,QAAQ,6FAA6F,CACpH,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;IAC3F,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,OAAO,CAAC,KAAa,EAAE,IAAY;IAC1C,OAAO,MAAM,KAAK,OAAO,IAAI,IAAI,CAAC;AACpC,CAAC;AAED,SAAS,SAAS,CAAC,KAAe;IAChC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAmB;IACnD,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC;SACpC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;SACvC,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,WAAW,GACf,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;QACnC,CAAC,CAAC,KAAK,CAAC,WAAW;QACnB,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC;IAC5F,MAAM,SAAS,GACb,KAAK,CAAC,SAAS;SACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,IAAI,IAAI,YAAY,GAAG,CAAC;SAC1E,IAAI,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC;IACvC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG;SAClB,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,OAAO,CAAC,CAAC,IAAI,gBAAgB,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAChK;SACA,IAAI,CAAC,MAAM,CAAC,CAAC;IAChB,MAAM,MAAM,GACV,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ;QAClC,CAAC,CAAC,KAAK,CAAC,UAAU;QAClB,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC;IAE5F,OAAO,6BAA6B,IAAI,KAAK,KAAK,CAAC,WAAW;;;;;;;;iBAQ/C,KAAK,CAAC,YAAY,wDAAwD,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;;gCAElG,IAAI;;;EAGlC,OAAO,CAAC,2BAA2B,EAAE,MAAM,CAAC;EAC5C,OAAO,CAAC,KAAK,EAAE,YAAY,UAAU,CAAC,KAAK,CAAC,4BAA4B,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;EAC3G,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;EAC9E,OAAO,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;EAC3E,OAAO,CAAC,qCAAqC,EAAE,WAAW,CAAC;EAC3D,OAAO,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;EAC9D,OAAO,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;EAC5D,OAAO,CAAC,mBAAmB,EAAE,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;EAC9D,OAAO,CAAC,mBAAmB,EAAE,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;EAC/D,OAAO,CAAC,wBAAwB,EAAE,SAAS,CAAC;EAC5C,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,oBAAoB,CAAC;EAC3C,OAAO,CAAC,wBAAwB,EAAE,MAAM,CAAC;CAC1C,CAAC;AACF,CAAC;AAED;;;;;;4CAM4C;AAC5C,MAAM,UAAU,iBAAiB,CAAC,KAAmB;IACnD,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,OAAO,CACL,uCAAuC,IAAI,KAAK,KAAK,CAAC,WAAW,WAAW,UAAU,CAAC,KAAK,CAAC,IAAI;QACjG,wCAAwC,IAAI,sCAAsC;QAClF,0GAA0G,CAC3G,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAmB;IAChD,OAAO,CACL,4BAA4B,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,WAAW,KAAK;QACtE,QAAQ,UAAU,CAAC,KAAK,CAAC,mBAAmB;QAC5C,iBAAiB,CAAC,KAAK,CAAC;aACrB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;aACvC,IAAI,CAAC,IAAI,CAAC,CACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAmB;IAClD,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,OAAO,CACL,wBAAwB,IAAI,UAAU,UAAU,CAAC,KAAK,CAAC,IAAI;QAC3D,2BAA2B,IAAI,6BAA6B;QAC5D,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CACvC,CAAC;AACJ,CAAC;AAED;uEACuE;AACvE,MAAM,gBAAgB,GAAG,8BAA8B,CAAC;AACxD,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,SAAiB;IAC5D,MAAM,OAAO,GAAG,kDAAkD,SAAS,MAAM,CAAC;IAClF,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACzC,IAAI,EAAE,KAAK,CAAC,CAAC;QAAE,OAAO,GAAG,GAAG,KAAK,OAAO,EAAE,CAAC,CAAC,qBAAqB;IACjE,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;AACzD,CAAC;AAED;;;oDAGoD;AACpD,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,OAAO,CACL,sDAAsD,OAAO,IAAI;QACjE,gFAAgF;QAChF,gFAAgF;QAChF,iFAAiF;QACjF,mFAAmF;QACnF,+BAA+B,CAChC,CAAC;AACJ,CAAC"}
@@ -29,6 +29,25 @@ export declare function memoryMdPathFor(umbrellaRoot: string): string;
29
29
  /** Replace the managed region; insert after the first H1 when absent; prepend
30
30
  * when no H1. Bytes outside the markers are NEVER touched. */
31
31
  export declare function spliceResumeBlock(memoryMd: string, block: string): string;
32
+ export interface SiblingFact {
33
+ sid: string;
34
+ /** recorded cwd (session_state.readSessionCwd), realpath-canonicalized; null when unattributable. */
35
+ cwd: string | null;
36
+ /** tool-ledger mtime ms, null when absent/unreadable. */
37
+ ledgerMtimeMs: number | null;
38
+ }
39
+ /** The first OTHER session of THIS umbrella with a fresh ledger, or null.
40
+ * freshMs default 10min = the FXK.2 live-session quiet-gap bound (the 340s
41
+ * audit wait + margin). Pure — all facts injected. */
42
+ export declare function inFlightSibling(args: {
43
+ siblings: SiblingFact[];
44
+ umbrellaRoot: string;
45
+ dyingSid: string;
46
+ nowMs: number;
47
+ freshMs?: number;
48
+ }): string | null;
49
+ /** Exported for the impure-shell test (tmp OPENSQUID_HOME + symlink pin). */
50
+ export declare function gatherSiblingFacts(): Promise<SiblingFact[]>;
32
51
  export interface WriteHandoffResult {
33
52
  docPath: string;
34
53
  outcomes: SurfaceOutcome[];
@@ -1 +1 @@
1
- {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../../src/runtime/handoff/write.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAgBH,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AASlE,eAAO,MAAM,aAAa,qCAAqC,CAAC;AAChE,eAAO,MAAM,WAAW,mCAAmC,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,KAAK,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;IACjD,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;mFACmF;AACnF,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAS5D;AAED;+DAC+D;AAC/D,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAazE;AASD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,YAAY,EACnB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,OAAO,CAAC,kBAAkB,CAAC,CA0E7B"}
1
+ {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../../src/runtime/handoff/write.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAmBH,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AASlE,eAAO,MAAM,aAAa,qCAAqC,CAAC;AAChE,eAAO,MAAM,WAAW,mCAAmC,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,KAAK,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;IACjD,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;mFACmF;AACnF,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAS5D;AAED;+DAC+D;AAC/D,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAazE;AAoBD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,qGAAqG;IACrG,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,yDAAyD;IACzD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;uDAEuD;AACvD,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,MAAM,GAAG,IAAI,CAWhB;AAaD,6EAA6E;AAC7E,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CA0BjE;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,YAAY,EACnB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,OAAO,CAAC,kBAAkB,CAAC,CA2F7B"}
@@ -14,9 +14,11 @@
14
14
  * ../../chat_daemon/client.js.
15
15
  * Imported by: handoff/index.ts.
16
16
  */
17
- import { mkdir, readFile, rename, writeFile } from 'node:fs/promises';
17
+ import { mkdir, readdir, readFile, realpath, rename, stat, writeFile } from 'node:fs/promises';
18
18
  import { homedir } from 'node:os';
19
19
  import { dirname, join } from 'node:path';
20
+ import { readSessionCwd } from '../session_state.js';
21
+ import { sessionStateFile } from '../paths.js';
20
22
  import { sendChat } from '../../chat_daemon/client.js';
21
23
  import { GENERAL_UMBRELLA, loadChannelsConfig, resolveOutbound, resolveUmbrellaForCwd, } from '../../channels/routing.js';
22
24
  import { workGraphStore } from '../../workgraph/store.js';
@@ -55,6 +57,67 @@ async function atomicWrite(path, content) {
55
57
  await writeFile(tmp, content, 'utf8');
56
58
  await rename(tmp, path);
57
59
  }
60
+ /** The first OTHER session of THIS umbrella with a fresh ledger, or null.
61
+ * freshMs default 10min = the FXK.2 live-session quiet-gap bound (the 340s
62
+ * audit wait + margin). Pure — all facts injected. */
63
+ export function inFlightSibling(args) {
64
+ const fresh = args.freshMs ?? 10 * 60_000;
65
+ const root = args.umbrellaRoot.endsWith('/') ? args.umbrellaRoot : `${args.umbrellaRoot}/`;
66
+ for (const s of args.siblings) {
67
+ if (s.sid === args.dyingSid)
68
+ continue;
69
+ if (s.cwd === null || s.ledgerMtimeMs === null)
70
+ continue; // unattributable → fail-open
71
+ const cwd = s.cwd.endsWith('/') ? s.cwd : `${s.cwd}/`;
72
+ if (!cwd.startsWith(root))
73
+ continue; // other umbrella → never suppresses
74
+ if (args.nowMs - s.ledgerMtimeMs <= fresh)
75
+ return s.sid;
76
+ }
77
+ return null;
78
+ }
79
+ /** realpath-or-identity: a symlink-alias cwd of the umbrella root must still
80
+ * match the prefix test; unresolvable paths return as-is (fail-open at the
81
+ * comparison). */
82
+ async function canonical(p) {
83
+ try {
84
+ return await realpath(p);
85
+ }
86
+ catch {
87
+ return p;
88
+ }
89
+ }
90
+ /** Exported for the impure-shell test (tmp OPENSQUID_HOME + symlink pin). */
91
+ export async function gatherSiblingFacts() {
92
+ const dir = join(OPENSQUID_HOME(), 'sessions');
93
+ const out = [];
94
+ let entries;
95
+ try {
96
+ entries = await readdir(dir);
97
+ }
98
+ catch {
99
+ return out; // no sessions dir → no siblings → fail-open
100
+ }
101
+ for (const sid of entries) {
102
+ let cwd = null;
103
+ let ledgerMtimeMs = null;
104
+ try {
105
+ const recorded = await readSessionCwd(sid);
106
+ cwd = recorded === null ? null : await canonical(recorded);
107
+ }
108
+ catch {
109
+ /* unattributable */
110
+ }
111
+ try {
112
+ ledgerMtimeMs = (await stat(sessionStateFile(sid, 'tool-ledger'))).mtimeMs;
113
+ }
114
+ catch {
115
+ /* absent */
116
+ }
117
+ out.push({ sid, cwd, ledgerMtimeMs });
118
+ }
119
+ return out;
120
+ }
58
121
  export async function writeHandoffSurfaces(state, opts = {}) {
59
122
  const outcomes = [];
60
123
  const docPath = handoverDocPath(state.umbrellaRoot, state.sessionId);
@@ -62,20 +125,38 @@ export async function writeHandoffSurfaces(state, opts = {}) {
62
125
  const docBody = renderHandoverDoc(state);
63
126
  await atomicWrite(docPath, opts.narrative === undefined ? docBody : spliceNarrative(docBody, opts.narrative));
64
127
  outcomes.push({ surface: 'doc', ok: true, detail: docPath });
65
- // (b) MEMORY.md managed region — absent file → skip (not all hosts run auto-memory).
66
- const memPath = memoryMdPathFor(state.umbrellaRoot);
67
- try {
68
- const current = await readFile(memPath, 'utf8');
69
- await atomicWrite(memPath, spliceResumeBlock(current, renderResumeBlock(state)));
70
- outcomes.push({ surface: 'memory', ok: true, detail: memPath });
71
- }
72
- catch (e) {
128
+ // (b) MEMORY.md managed region — absent file → skip (not all hosts run
129
+ // auto-memory). HRA.1: a fresh same-umbrella sibling owns the resume
130
+ // block — a dying nested/sibling session must not overwrite the live
131
+ // session's resume surface (observed twice on 2026-06-11 pre-fix).
132
+ const sibling = inFlightSibling({
133
+ siblings: await gatherSiblingFacts(),
134
+ umbrellaRoot: await canonical(state.umbrellaRoot),
135
+ dyingSid: state.sessionId,
136
+ nowMs: Date.now(),
137
+ });
138
+ if (sibling !== null) {
73
139
  outcomes.push({
74
140
  surface: 'memory',
75
141
  ok: false,
76
- detail: `skipped: ${e instanceof Error ? e.message : String(e)}`,
142
+ detail: `skipped: in-flight sibling ${sibling.slice(0, 8)} owns this umbrella's resume block`,
77
143
  });
78
144
  }
145
+ else {
146
+ const memPath = memoryMdPathFor(state.umbrellaRoot);
147
+ try {
148
+ const current = await readFile(memPath, 'utf8');
149
+ await atomicWrite(memPath, spliceResumeBlock(current, renderResumeBlock(state)));
150
+ outcomes.push({ surface: 'memory', ok: true, detail: memPath });
151
+ }
152
+ catch (e) {
153
+ outcomes.push({
154
+ surface: 'memory',
155
+ ok: false,
156
+ detail: `skipped: ${e instanceof Error ? e.message : String(e)}`,
157
+ });
158
+ }
159
+ }
79
160
  // (c) work-graph upsert — stable title key; update-or-create.
80
161
  try {
81
162
  const store = workGraphStore({
@@ -1 +1 @@
1
- {"version":3,"file":"write.js","sourceRoot":"","sources":["../../../src/runtime/handoff/write.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../../src/runtime/handoff/write.ts"],"names":[],"mappings":"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"}
@@ -10,17 +10,22 @@
10
10
  *
11
11
  * running ──close──────────────► closed (resolve/reject by exit code)
12
12
  * running ──spawn 'error'──────► spawn_failed (reject)
13
- * running ──timeout────────────► term_sent (reject NOW; grace timer armed, REF'D)
14
- * term_sent ──close────────────► closed_late (clear grace; child obeyed SIGTERM)
13
+ * running ──timeout────────────► term_sent (reject NOW; grace timer armed, REF'D;
14
+ * sync 'exit' kill handler registered)
15
+ * term_sent ──close────────────► closed_late (clear grace + remove the exit handler;
16
+ * child obeyed SIGTERM)
15
17
  * term_sent ──grace expiry─────► group_killed (kill(-pid) sweep; ESRCH = already gone)
18
+ * term_sent ──supervisor exit──► group_killed (FXK.1, 0.5.402: the sync 'exit' handler
19
+ * — hook bins call process.exit() ms after
20
+ * the rejection, which destroys ANY timer,
21
+ * ref'd or not; reproduced in isolation
22
+ * before this fix. 'exit' listeners run
23
+ * synchronously under explicit exit and
24
+ * process.kill is sync — spiked, not
25
+ * assumed.)
16
26
  *
17
- * `term_sent supervisor SIGKILLed externally` leaks the child by design
18
- * enumerated residual: the REF'D grace timer holds the supervisor alive
19
- * through grace in every non-forced teardown (an unref'd timer dies when a
20
- * hook bin exits right after the rejection — observed live as SIGTERM-
21
- * ignoring `claude -p` orphans piling up on the subscription bucket), and a
22
- * forced external SIGKILL of the supervisor is outside any in-process
23
- * guarantee.
27
+ * Only a forced external SIGKILL of the supervisor leaks the child now
28
+ * outside any in-process guarantee, enumerated residual.
24
29
  *
25
30
  * Two ORTHOGONAL env markers — never merge them:
26
31
  * - OPENSQUID_SUBAGENT (hook policy, SUB.1): set only when
@@ -1 +1 @@
1
- {"version":3,"file":"spawn_lifecycle.d.ts","sourceRoot":"","sources":["../../src/runtime/spawn_lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAIH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,2FAA2F;IAC3F,YAAY,EAAE,OAAO,CAAC;IACtB,gFAAgF;IAChF,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,KAAK,CAAC;IAC3C,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAUD,4FAA4F;AAC5F,eAAO,MAAM,oBAAoB,GAAI,MAAK,MAAM,CAAC,UAAwB,KAAG,OAC1C,CAAC;AAEnC,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAwFhE"}
1
+ {"version":3,"file":"spawn_lifecycle.d.ts","sourceRoot":"","sources":["../../src/runtime/spawn_lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAIH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,2FAA2F;IAC3F,YAAY,EAAE,OAAO,CAAC;IACtB,gFAAgF;IAChF,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,KAAK,CAAC;IAC3C,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAUD,4FAA4F;AAC5F,eAAO,MAAM,oBAAoB,GAAI,MAAK,MAAM,CAAC,UAAwB,KAAG,OAC1C,CAAC;AAEnC,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAoGhE"}
@@ -10,17 +10,22 @@
10
10
  *
11
11
  * running ──close──────────────► closed (resolve/reject by exit code)
12
12
  * running ──spawn 'error'──────► spawn_failed (reject)
13
- * running ──timeout────────────► term_sent (reject NOW; grace timer armed, REF'D)
14
- * term_sent ──close────────────► closed_late (clear grace; child obeyed SIGTERM)
13
+ * running ──timeout────────────► term_sent (reject NOW; grace timer armed, REF'D;
14
+ * sync 'exit' kill handler registered)
15
+ * term_sent ──close────────────► closed_late (clear grace + remove the exit handler;
16
+ * child obeyed SIGTERM)
15
17
  * term_sent ──grace expiry─────► group_killed (kill(-pid) sweep; ESRCH = already gone)
18
+ * term_sent ──supervisor exit──► group_killed (FXK.1, 0.5.402: the sync 'exit' handler
19
+ * — hook bins call process.exit() ms after
20
+ * the rejection, which destroys ANY timer,
21
+ * ref'd or not; reproduced in isolation
22
+ * before this fix. 'exit' listeners run
23
+ * synchronously under explicit exit and
24
+ * process.kill is sync — spiked, not
25
+ * assumed.)
16
26
  *
17
- * `term_sent supervisor SIGKILLed externally` leaks the child by design
18
- * enumerated residual: the REF'D grace timer holds the supervisor alive
19
- * through grace in every non-forced teardown (an unref'd timer dies when a
20
- * hook bin exits right after the rejection — observed live as SIGTERM-
21
- * ignoring `claude -p` orphans piling up on the subscription bucket), and a
22
- * forced external SIGKILL of the supervisor is outside any in-process
23
- * guarantee.
27
+ * Only a forced external SIGKILL of the supervisor leaks the child now
28
+ * outside any in-process guarantee, enumerated residual.
24
29
  *
25
30
  * Two ORTHOGONAL env markers — never merge them:
26
31
  * - OPENSQUID_SUBAGENT (hook policy, SUB.1): set only when
@@ -79,17 +84,28 @@ export function runOneShotCli(opts) {
79
84
  /* ESRCH — already reaped */
80
85
  }
81
86
  };
87
+ // FXK.1 (0.5.402): the supervisor-exit escalation path. Sync-only body
88
+ // — the process is dying; state check + sync kill, nothing else.
89
+ const exitKill = () => {
90
+ if (state.phase === 'term_sent')
91
+ groupKill();
92
+ };
82
93
  const timer = setTimeout(() => {
83
94
  if (state.phase !== 'running')
84
95
  return;
85
96
  state = { phase: 'term_sent' };
86
97
  proc.kill('SIGTERM');
87
- // REF'D on purpose: an unref'd timer is destroyed when the hook bin
88
- // exits right after this rejectionSIGKILL would never fire exactly
89
- // where SIGTERM-ignoring orphans were observed. The ≤graceMs tail
90
- // sits far inside the 360s outer hook cap; 'closed_late' clears it
91
- // for well-behaved children.
92
- graceTimer = setTimeout(groupKill, opts.graceMs ?? 5_000);
98
+ // BOTH escalation paths are required (FXK.1, spiked): the REF'D timer
99
+ // covers long-lived supervisors (bridge daemonprompt 5s kill); the
100
+ // sync 'exit' handler covers supervisors that exit before grace (hook
101
+ // bins call process.exit() milliseconds after this rejection, which
102
+ // destroys ANY timer, ref'd or not — the 0.5.398 hole). 'closed_late'
103
+ // clears both for well-behaved children.
104
+ process.once('exit', exitKill);
105
+ graceTimer = setTimeout(() => {
106
+ process.removeListener('exit', exitKill);
107
+ groupKill();
108
+ }, opts.graceMs ?? 5_000);
93
109
  reject(opts.timeoutError(opts.timeoutMs));
94
110
  }, opts.timeoutMs);
95
111
  proc.stdout.on('data', (d) => {
@@ -118,6 +134,7 @@ export function runOneShotCli(opts) {
118
134
  state = { phase: 'closed_late' }; // child obeyed SIGTERM inside grace
119
135
  if (graceTimer !== undefined)
120
136
  clearTimeout(graceTimer);
137
+ process.removeListener('exit', exitKill); // hygiene: long-lived callers
121
138
  }
122
139
  // closed / spawn_failed / group_killed: terminal — nothing to do.
123
140
  });
@@ -1 +1 @@
1
- {"version":3,"file":"spawn_lifecycle.js","sourceRoot":"","sources":["../../src/runtime/spawn_lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spawn_lifecycle.js","sourceRoot":"","sources":["../../src/runtime/spawn_lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AA0B3C,4FAA4F;AAC5F,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAyB,OAAO,CAAC,GAAG,EAAW,EAAE,CACpF,GAAG,CAAC,oBAAoB,KAAK,GAAG,CAAC;AAEnC,MAAM,UAAU,aAAa,CAAC,IAAiB;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;IACtC,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,uEAAuE;QACvE,qEAAqE;QACrE,wEAAwE;QACxE,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,CAAC,oBAAoB,EAAE,CAAC;QACzC,MAAM,GAAG,GAAsB;YAC7B,GAAG,OAAO,CAAC,GAAG;YACd,oBAAoB,EAAE,GAAG;YACzB,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1D,CAAC;QACF,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE;YACtC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,QAAQ;YACR,GAAG;SACJ,CAAC,CAAC;QAEH,IAAI,KAAK,GAAmB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACjD,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,UAAsC,CAAC;QAE3C,MAAM,SAAS,GAAG,GAAS,EAAE;YAC3B,KAAK,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,IAAI,QAAQ,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;oBAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,qDAAqD;gBAC7E,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,4BAA4B;YAC9B,CAAC;QACH,CAAC,CAAC;QAEF,uEAAuE;QACvE,iEAAiE;QACjE,MAAM,QAAQ,GAAG,GAAS,EAAE;YAC1B,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW;gBAAE,SAAS,EAAE,CAAC;QAC/C,CAAC,CAAC;QAEF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;gBAAE,OAAO;YACtC,KAAK,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrB,sEAAsE;YACtE,sEAAsE;YACtE,sEAAsE;YACtE,oEAAoE;YACpE,sEAAsE;YACtE,yCAAyC;YACzC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC/B,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC3B,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACzC,SAAS,EAAE,CAAC;YACd,CAAC,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5C,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEnB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE;YACnC,MAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE;YACnC,MAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACrB,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;gBAAE,OAAO;YACtC,KAAK,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;YAClC,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,MAAM,iBAAiB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC9B,KAAK,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;gBAC5B,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,IAAI,KAAK,CAAC;oBAAE,OAAO,CAAC,MAAM,CAAC,CAAC;;oBAC3B,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,MAAM,QAAQ,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YACpE,CAAC;iBAAM,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;gBACvC,KAAK,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC,oCAAoC;gBACtE,IAAI,UAAU,KAAK,SAAS;oBAAE,YAAY,CAAC,UAAU,CAAC,CAAC;gBACvD,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,8BAA8B;YAC1E,CAAC;YACD,kEAAkE;QACpE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACnB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC9B,KAAK,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;gBAClC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,MAAM,uBAAuB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opensquid",
3
- "version": "0.5.401",
3
+ "version": "0.5.405",
4
4
  "description": "Continuity layer for coding agents: durable memory, dependency-aware task state, workflow gates, and inspectable packs over MCP.",
5
5
  "type": "module",
6
6
  "exports": {