@cotal-ai/manager 0.36.0 → 0.38.0

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.
@@ -59,6 +59,16 @@ export interface GateReconcileReport {
59
59
  familyRows: number;
60
60
  revoked: string[];
61
61
  evicted: string[];
62
+ /** Distinct holders this freeze must verify-evict (sorted). */
63
+ holders: string[];
64
+ /** Durable verified set at the start of this attempt (skipped). */
65
+ holdersVerifiedBeforeAttempt: string[];
66
+ /** Holders verify-evicted during this attempt. */
67
+ holdersVerifiedThisAttempt: string[];
68
+ /** Holders still required after this attempt (empty on success). */
69
+ holdersRemaining: string[];
70
+ /** Cleanup is best-effort after reopen. A retained cursor cannot match a later gate revision. */
71
+ repairCursorCleanup: "deleted" | "retained";
62
72
  reopenedAtGeneration: number;
63
73
  }
64
74
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"reconcile-gate.d.ts","sourceRoot":"","sources":["../src/reconcile-gate.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEtC;;mDAEmD;AACnD,MAAM,MAAM,sBAAsB;AAChC,2FAA2F;AACzF,SAAS;AACX,wEAAwE;GACtE,YAAY;AACd,qGAAqG;GACnG,eAAe;AACjB,2FAA2F;GACzF,cAAc;AAChB,qGAAqG;GACnG,gBAAgB;AAClB;wEACwE;GACtE,0BAA0B;AAC5B,sFAAsF;GACpF,qBAAqB;AACvB,wFAAwF;GACtF,OAAO,CAAC;AAEZ,2EAA2E;AAC3E,qBAAa,oBAAqB,SAAQ,KAAK;IAE3C,QAAQ,CAAC,SAAS,EAAE,sBAAsB;gBAAjC,SAAS,EAAE,sBAAsB,EAC1C,OAAO,EAAE,MAAM;CAKlB;AAED;;4EAE4E;AAC5E,MAAM,MAAM,cAAc,GACtB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,KAAK,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD,0FAA0F;AAC1F,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,kGAAkG;IAClG,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,MAAM,CAAC;QAAC,qBAAqB,EAAE,MAAM,CAAA;KAAE,CAAC;IAClH,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,EAAE,EAAE,EAAE,CAAC;IACP,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5D,KAAK,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA4F/B"}
1
+ {"version":3,"file":"reconcile-gate.d.ts","sourceRoot":"","sources":["../src/reconcile-gate.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEtC;;mDAEmD;AACnD,MAAM,MAAM,sBAAsB;AAChC,2FAA2F;AACzF,SAAS;AACX,wEAAwE;GACtE,YAAY;AACd,qGAAqG;GACnG,eAAe;AACjB,2FAA2F;GACzF,cAAc;AAChB,qGAAqG;GACnG,gBAAgB;AAClB;wEACwE;GACtE,0BAA0B;AAC5B,sFAAsF;GACpF,qBAAqB;AACvB,wFAAwF;GACtF,OAAO,CAAC;AAEZ,2EAA2E;AAC3E,qBAAa,oBAAqB,SAAQ,KAAK;IAE3C,QAAQ,CAAC,SAAS,EAAE,sBAAsB;gBAAjC,SAAS,EAAE,sBAAsB,EAC1C,OAAO,EAAE,MAAM;CAKlB;AAED;;4EAE4E;AAC5E,MAAM,MAAM,cAAc,GACtB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,KAAK,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD,0FAA0F;AAC1F,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,kGAAkG;IAClG,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,MAAM,CAAC;QAAC,qBAAqB,EAAE,MAAM,CAAA;KAAE,CAAC;IAClH,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,mEAAmE;IACnE,4BAA4B,EAAE,MAAM,EAAE,CAAC;IACvC,kDAAkD;IAClD,0BAA0B,EAAE,MAAM,EAAE,CAAC;IACrC,oEAAoE;IACpE,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,iGAAiG;IACjG,mBAAmB,EAAE,SAAS,GAAG,UAAU,CAAC;IAC5C,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,EAAE,EAAE,EAAE,CAAC;IACP,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5D,KAAK,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAqJ/B"}
@@ -25,7 +25,7 @@
25
25
  * pass. There is deliberately NO force flag and no path that discards gate state — a recovery path
26
26
  * whose failure mode is killing a live manager does not get an override.
27
27
  */
28
- import { endpointRegistrationBarrier, parseEndpointGate, epgateKey, } from "@cotal-ai/core";
28
+ import { endpointRegistrationBarrier, parseEndpointGate, epgateKey, loadEndpointRepairCursor, saveEndpointRepairCursor, deleteEndpointRepairCursor, repairCursorMatches, } from "@cotal-ai/core";
29
29
  /** A refusal, carrying the condition as DATA rather than only as prose. */
30
30
  export class GateReconcileRefused extends Error {
31
31
  condition;
@@ -87,13 +87,47 @@ export async function reconcileEndpointGate(opts) {
87
87
  // the probe proved it gone, and the barrier's verify is what makes that durable rather than a
88
88
  // snapshot. An unverified eviction aborts and LEAVES THE GATE FROZEN (unchanged §13.1 posture).
89
89
  const holders = [...new Set([row.principal, ...rows.map((r) => r.holderPrincipal)])];
90
+ const boundHolders = [...holders].sort();
91
+ const binding = { opId, freezeToken, holders: boundHolders };
92
+ const stored = await loadEndpointRepairCursor(kv, endpoint, instanceId);
93
+ let cursor;
94
+ let cursorRevision;
95
+ if (stored && repairCursorMatches(stored.cursor, binding)) {
96
+ cursor = stored.cursor;
97
+ cursorRevision = stored.revision;
98
+ log(`repair cursor: resume op=${opId} freezeToken=${freezeToken} verified=${cursor.verified.length}/${boundHolders.length}`);
99
+ }
100
+ else {
101
+ cursor = { v: 1, opId, freezeToken, holders: boundHolders, verified: [] };
102
+ cursorRevision = stored ? stored.revision : null;
103
+ cursorRevision = await saveEndpointRepairCursor(kv, endpoint, instanceId, cursor, cursorRevision);
104
+ log(`repair cursor: restart op=${opId} freezeToken=${freezeToken} holders=${boundHolders.length} (prior cursor discarded)`);
105
+ }
106
+ const skipped = new Set(cursor.verified);
107
+ const holdersVerifiedBeforeAttempt = [...cursor.verified];
90
108
  const evicted = [];
91
- for (const h of holders) {
92
- if (!(await barrier.evict(h)))
93
- throw new GateReconcileRefused("eviction-unverified", `eviction of "${h}" was NOT verified gone — the gate stays frozen (fail-closed, SPEC 13.1). Nothing was reopened; the revocations above are deny-new and safe to leave.`);
109
+ for (const h of boundHolders) {
110
+ if (skipped.has(h)) {
111
+ log(` already verified (durable): ${h}`);
112
+ continue;
113
+ }
114
+ let verified;
115
+ try {
116
+ verified = await barrier.evict(h);
117
+ }
118
+ catch (e) {
119
+ throw new GateReconcileRefused("eviction-unverified", `eviction verification for "${h}" was interrupted — the gate stays frozen (fail-closed, SPEC 13.1). Durable progress: ${cursor.verified.length} completed, ${boundHolders.length - cursor.verified.length} remaining. Cause: ${e?.message ?? String(e)}`);
120
+ }
121
+ if (!verified)
122
+ throw new GateReconcileRefused("eviction-unverified", `eviction of "${h}" was NOT verified gone — the gate stays frozen (fail-closed, SPEC 13.1). Nothing was reopened; the revocations above are deny-new and safe to leave. Durable progress: ${cursor.verified.length} completed, ${boundHolders.length - cursor.verified.length} remaining.`);
94
123
  evicted.push(h);
95
- log(` verified evicted: ${h}`);
124
+ cursor = { ...cursor, verified: [...new Set([...cursor.verified, h])].sort() };
125
+ cursorRevision = await saveEndpointRepairCursor(kv, endpoint, instanceId, cursor, cursorRevision);
126
+ log(` verified evicted: ${h} (${cursor.verified.length}/${boundHolders.length})`);
96
127
  }
128
+ const holdersRemaining = boundHolders.filter((h) => !cursor.verified.includes(h));
129
+ if (holdersRemaining.length !== 0)
130
+ throw new GateReconcileRefused("eviction-unverified", `repair of ${key} still has ${holdersRemaining.length} unverified holder(s) — the gate stays frozen.`);
97
131
  // ---- 4. Token-pinned abort-reopen at the UNCHANGED coordinate. The dead op wrote nothing
98
132
  // forward, so only `generation` advances; the successor's normal takeover then runs end-to-end.
99
133
  const reopenedAtGeneration = row.generation + 1;
@@ -105,14 +139,33 @@ export async function reconcileEndpointGate(opts) {
105
139
  });
106
140
  if (!ok)
107
141
  throw new GateReconcileRefused("raced", `the token-pinned reopen of ${key} lost its CAS — a newer barrier moved the gate while this repair ran. Nothing was reopened; re-observe before retrying.`);
108
- log(`✓ gate ${key} reopened at generation=${reopenedAtGeneration}, processEpoch unchanged (${row.processEpoch}); family revoked (${revoked.length}) and verify-evicted (${evicted.length} holder(s))`);
142
+ // The gate is already open, so cleanup cannot be a correctness precondition. Delete with the
143
+ // cursor's own revision; if it fails, retain the row and rely on its exact freeze-token binding.
144
+ // A later freeze necessarily has a different gate revision and overwrites it with empty progress
145
+ // before any holder can be skipped.
146
+ let repairCursorCleanup = "deleted";
147
+ try {
148
+ await deleteEndpointRepairCursor(kv, endpoint, instanceId, cursorRevision);
149
+ log(`repair cursor: deleted after reopen`);
150
+ }
151
+ catch (e) {
152
+ repairCursorCleanup = "retained";
153
+ log(`repair cursor: cleanup retained a safely freeze-bound cursor: ${e?.message ?? String(e)}`);
154
+ }
155
+ log(`✓ gate ${key} reopened at generation=${reopenedAtGeneration}, processEpoch unchanged (${row.processEpoch}); family revoked this attempt (${revoked.length}), verify-evicted this attempt (${evicted.length}), durable verified ${cursor.verified.length}/${boundHolders.length}, cursor cleanup ${repairCursorCleanup}`);
109
156
  return {
110
157
  endpoint, instanceId, holderPrincipal: row.principal, opId, freezeToken,
111
158
  before: {
112
159
  generation: row.generation, processEpoch: row.processEpoch,
113
160
  registrationRevision: row.registrationRevision, nameAuthorityRevision: row.nameAuthorityRevision,
114
161
  },
115
- liveness, familyRows: rows.length, revoked, evicted, reopenedAtGeneration,
162
+ liveness, familyRows: rows.length, revoked, evicted,
163
+ holders: boundHolders,
164
+ holdersVerifiedBeforeAttempt,
165
+ holdersVerifiedThisAttempt: evicted,
166
+ holdersRemaining,
167
+ repairCursorCleanup,
168
+ reopenedAtGeneration,
116
169
  };
117
170
  }
118
171
  //# sourceMappingURL=reconcile-gate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reconcile-gate.js","sourceRoot":"","sources":["../src/reconcile-gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reconcile-gate.js","sourceRoot":"","sources":["../src/reconcile-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EACL,2BAA2B,EAAE,iBAAiB,EAAE,SAAS,EACzD,wBAAwB,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,mBAAmB,GAEpG,MAAM,gBAAgB,CAAC;AAyBxB,2EAA2E;AAC3E,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAElC;IADX,YACW,SAAiC,EAC1C,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,cAAS,GAAT,SAAS,CAAwB;QAI1C,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAqCD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAQ3C;IACC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAEtD,gGAAgG;IAChG,4FAA4F;IAC5F,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK;QACrC,MAAM,IAAI,oBAAoB,CAAC,SAAS,EAAE,uBAAuB,GAAG,6DAA6D,CAAC,CAAC;IACrI,MAAM,GAAG,GAAoB,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC;IAEnC,GAAG,CAAC,QAAQ,GAAG,WAAW,GAAG,CAAC,KAAK,eAAe,GAAG,CAAC,UAAU,iBAAiB,GAAG,CAAC,YAAY,yBAAyB,GAAG,CAAC,oBAAoB,0BAA0B,GAAG,CAAC,qBAAqB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,SAAS,aAAa,WAAW,EAAE,CAAC,CAAC;IAE9R,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ;QACxB,MAAM,IAAI,oBAAoB,CAAC,YAAY,EAAE,eAAe,GAAG,QAAQ,GAAG,CAAC,KAAK,wFAAwF,CAAC,CAAC;IAC5K,IAAI,GAAG,CAAC,EAAE,EAAE,IAAI,KAAK,cAAc;QACjC,MAAM,IAAI,oBAAoB,CAAC,eAAe,EAAE,eAAe,GAAG,uBAAuB,GAAG,CAAC,EAAE,EAAE,IAAI,uIAAuI,CAAC,CAAC;IAChP,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;IAEzB,uEAAuE;IACvE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvD,GAAG,CAAC,iBAAiB,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,KAAK,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9E,IAAI,QAAQ,CAAC,KAAK,KAAK,MAAM;QAC3B,MAAM,IAAI,oBAAoB,CAC5B,cAAc,EACd,sBAAsB,GAAG,CAAC,SAAS,eAAe,QAAQ,CAAC,MAAM,2LAA2L,CAC7P,CAAC;IACJ,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;QAC9B,MAAM,IAAI,oBAAoB,CAC5B,gBAAgB,EAChB,kCAAkC,GAAG,CAAC,SAAS,iBAAiB,QAAQ,CAAC,MAAM,4JAA4J,CAC5O,CAAC;IACJ,IAAI,QAAQ,CAAC,KAAK,KAAK,iBAAiB;QACtC,MAAM,IAAI,oBAAoB,CAC5B,0BAA0B,EAC1B,+BAA+B,GAAG,CAAC,SAAS,4BAA4B,QAAQ,CAAC,MAAM,oHAAoH,CAC5M,CAAC;IAEJ,4FAA4F;IAC5F,MAAM,OAAO,GAAG,2BAA2B,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAE1G,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;IACvC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,gBAAgB,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACzB,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,uEAAuE;YAChG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAC7B,GAAG,CAAC,aAAa,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC;QAC5D,CAAC;;YAAM,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC;IACvE,CAAC;IAED,iGAAiG;IACjG,8FAA8F;IAC9F,gGAAgG;IAChG,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IACrF,MAAM,YAAY,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;IAC7D,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACxE,IAAI,MAA4B,CAAC;IACjC,IAAI,cAA6B,CAAC;IAClC,IAAI,MAAM,IAAI,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QAC1D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QACvB,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,GAAG,CAAC,4BAA4B,IAAI,gBAAgB,WAAW,aAAa,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/H,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC1E,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QACjD,cAAc,GAAG,MAAM,wBAAwB,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;QAClG,GAAG,CAAC,6BAA6B,IAAI,gBAAgB,WAAW,YAAY,YAAY,CAAC,MAAM,2BAA2B,CAAC,CAAC;IAC9H,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,4BAA4B,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACnB,GAAG,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAC;YAC1C,SAAS;QACX,CAAC;QACD,IAAI,QAAiB,CAAC;QACtB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,oBAAoB,CAC5B,qBAAqB,EACrB,8BAA8B,CAAC,yFAAyF,MAAM,CAAC,QAAQ,CAAC,MAAM,eAAe,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,sBAAuB,CAAW,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CACpQ,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,QAAQ;YACX,MAAM,IAAI,oBAAoB,CAC5B,qBAAqB,EACrB,gBAAgB,CAAC,2KAA2K,MAAM,CAAC,QAAQ,CAAC,MAAM,eAAe,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,aAAa,CAC3R,CAAC;QACJ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/E,cAAc,GAAG,MAAM,wBAAwB,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;QAClG,GAAG,CAAC,uBAAuB,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IACrF,CAAC;IACD,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;QAC/B,MAAM,IAAI,oBAAoB,CAC5B,qBAAqB,EACrB,aAAa,GAAG,cAAc,gBAAgB,CAAC,MAAM,gDAAgD,CACtG,CAAC;IAEJ,2FAA2F;IAC3F,gGAAgG;IAChG,MAAM,oBAAoB,GAAG,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC;IAChD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;QAC3C,UAAU,EAAE,oBAAoB;QAChC,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,oBAAoB,EAAE,GAAG,CAAC,oBAAoB;QAC9C,qBAAqB,EAAE,GAAG,CAAC,qBAAqB;KACjD,CAAC,CAAC;IACH,IAAI,CAAC,EAAE;QACL,MAAM,IAAI,oBAAoB,CAC5B,OAAO,EACP,8BAA8B,GAAG,yHAAyH,CAC3J,CAAC;IAEJ,6FAA6F;IAC7F,iGAAiG;IACjG,iGAAiG;IACjG,oCAAoC;IACpC,IAAI,mBAAmB,GAA2B,SAAS,CAAC;IAC5D,IAAI,CAAC;QACH,MAAM,0BAA0B,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAe,CAAC,CAAC;QAC5E,GAAG,CAAC,qCAAqC,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,mBAAmB,GAAG,UAAU,CAAC;QACjC,GAAG,CAAC,iEAAkE,CAAW,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7G,CAAC;IAED,GAAG,CAAC,UAAU,GAAG,2BAA2B,oBAAoB,6BAA6B,GAAG,CAAC,YAAY,mCAAmC,OAAO,CAAC,MAAM,mCAAmC,OAAO,CAAC,MAAM,uBAAuB,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,oBAAoB,mBAAmB,EAAE,CAAC,CAAC;IAC9T,OAAO;QACL,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW;QACvE,MAAM,EAAE;YACN,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY;YAC1D,oBAAoB,EAAE,GAAG,CAAC,oBAAoB,EAAE,qBAAqB,EAAE,GAAG,CAAC,qBAAqB;SACjG;QACD,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO;QACnD,OAAO,EAAE,YAAY;QACrB,4BAA4B;QAC5B,0BAA0B,EAAE,OAAO;QACnC,gBAAgB;QAChB,mBAAmB;QACnB,oBAAoB;KACrB,CAAC;AACJ,CAAC"}
@@ -8,15 +8,28 @@
8
8
  * Three-way split (the Unit B design note, panel-locked): the key/value GRAMMAR lives in core
9
9
  * `lifecycle-state.ts`; the CAS SEQUENCING is the shared core saga this module DELEGATES to
10
10
  * (never a hand-ordered local copy); the barrier ORCHESTRATION here is the static executor's
11
- * own (revoke from the slot's recorded credentialIds, best-effort eviction = the child process
12
- * kill the manager already did, footprint cleanup via the manager's deprovision hooks).
11
+ * own (revoke from the slot's recorded credentialIds, fail-closed broker connection eviction of the
12
+ * holder principals THOSE ROWS name SPEC 13.1's own target set — that holds the lifecycle
13
+ * terminalizing until a complete scan verifies each gone, then footprint cleanup via the manager's
14
+ * deprovision hooks).
13
15
  *
14
16
  * F5-bind (the F4 restatement): the wire AUTHORITY coordinate is the incarnation-unique nkey
15
17
  * (`actor`); the ALIAS is routing only, protected by the name-keyed slot row + uid reservation +
16
18
  * the manager's freeSlot hold — never by the head CAS alone (the head is principal-keyed).
17
19
  */
18
- import { type LifecycleStateTransport, type StaticManagedSlotRow } from "@cotal-ai/core";
20
+ import { type LifecycleStateTransport, type StaticManagedSlotRow, type EvictionResult } from "@cotal-ai/core";
19
21
  import type { KV } from "@nats-io/kv";
22
+ export interface StaticLifecycleAuditSpec {
23
+ v: 1;
24
+ principal: string;
25
+ alias: string;
26
+ lifecycleUid: string;
27
+ managerInstance: string;
28
+ managerProcessUid: string;
29
+ retirementOpId: string;
30
+ broker: Pick<EvictionResult, "kicked" | "remaining" | "scanComplete" | "verifiedGone">;
31
+ timestamp: string;
32
+ }
20
33
  /** The direct-KV transport over the two authority stores, bound per lifecycle OPERATION on an
21
34
  * ephemeral, key-pinned `lifecycle-executor` connection (the manager mints it; see
22
35
  * `withLifecycleExecutor`). Mirrors the auth implementation's sealed `transportOf` — a
@@ -54,8 +67,13 @@ export declare function appendStaticCredentialRow(t: LifecycleStateTransport, ar
54
67
  /** The static terminal's B1 revoke: CAS every recorded row `active -> revoked`. Enumeration is
55
68
  * the SLOT's recorded credentialIds (recorded before every mint), never a store listing. An
56
69
  * ABSENT row is the legitimate crash window (id recorded, mint never reached) — no credential
57
- * exists for it, logged and skipped; a revoked row is idempotence. */
58
- export declare function revokeStaticCredentialRows(t: LifecycleStateTransport, lifecycleUid: string, credentialIds: readonly string[], log: (line: string) => void): Promise<void>;
70
+ * exists for it, logged and skipped; a revoked row is idempotence.
71
+ *
72
+ * RETURNS the barrier's eviction TARGET SET: the distinct `holderPrincipal` of every ledger row
73
+ * this revoke COVERED — the rows it just CASed AND the already-`revoked` rows a resume walked
74
+ * over, because a crash between revoke and eviction must never leave a revoked credential's
75
+ * connection live. An absent row contributes nothing: no credential exists for it. */
76
+ export declare function revokeStaticCredentialRows(t: LifecycleStateTransport, lifecycleUid: string, credentialIds: readonly string[], log: (line: string) => void): Promise<string[]>;
59
77
  /** The static ACTIVATION: F3 intent FIRST (durable outer spawn intent, phase `provisioning`),
60
78
  * then the SHARED core activation saga at the spawn's uid (reserve -> gate frozen -> head CAS
61
79
  * -> reopen LAST). Returns the slot revision the spawn path later CASes to `active` once the
@@ -71,8 +89,8 @@ export declare function activateStaticLifecycle(t: LifecycleStateTransport, args
71
89
  slotRevision: number;
72
90
  }>;
73
91
  /** The static TERMINAL (F1, the (b2) order): freeze-under-the-retirement-op -> head
74
- * `active -> retiring` -> B1 ledger revoke -> cleanup (the injected footprint teardown; the
75
- * process kill static "eviction" already happened on the manager's stop path) -> gate
92
+ * `active -> retiring` -> B1 ledger revoke -> broker connection eviction -> cleanup (the injected
93
+ * footprint teardown; on a normal stop the manager separately proves runtime exit) -> gate
76
94
  * `frozen -> retired` -> head `retiring -> retired` LAST -> slot `retired` (the alias frees).
77
95
  * Every gate/head step DELEGATES to the shared core saga; recovery recognizes a SAME-OP
78
96
  * terminal gate and finishes the head (the lost-ack alias wedge the panel closed).
@@ -87,8 +105,11 @@ export declare function runStaticTerminal(t: LifecycleStateTransport, args: {
87
105
  actor: string;
88
106
  lifecycleUid: string;
89
107
  opId: string;
108
+ managerInstance: string;
109
+ managerProcessUid: string;
90
110
  }, hooks: {
91
111
  cleanup: () => Promise<void>;
112
+ evict: (holderPrincipal: string) => Promise<EvictionResult>;
92
113
  log: (line: string) => void;
93
114
  }): Promise<"retired">;
94
115
  /** The boot-sweep resume decision, TOTAL over the phase enum (F3): what the manager must do
@@ -1 +1 @@
1
- {"version":3,"file":"static-lifecycle.d.ts","sourceRoot":"","sources":["../src/static-lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"static-lifecycle.d.ts","sourceRoot":"","sources":["../src/static-lifecycle.ts"],"names":[],"mappings":"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"}
@@ -8,15 +8,82 @@
8
8
  * Three-way split (the Unit B design note, panel-locked): the key/value GRAMMAR lives in core
9
9
  * `lifecycle-state.ts`; the CAS SEQUENCING is the shared core saga this module DELEGATES to
10
10
  * (never a hand-ordered local copy); the barrier ORCHESTRATION here is the static executor's
11
- * own (revoke from the slot's recorded credentialIds, best-effort eviction = the child process
12
- * kill the manager already did, footprint cleanup via the manager's deprovision hooks).
11
+ * own (revoke from the slot's recorded credentialIds, fail-closed broker connection eviction of the
12
+ * holder principals THOSE ROWS name SPEC 13.1's own target set — that holds the lifecycle
13
+ * terminalizing until a complete scan verifies each gone, then footprint cleanup via the manager's
14
+ * deprovision hooks).
13
15
  *
14
16
  * F5-bind (the F4 restatement): the wire AUTHORITY coordinate is the incarnation-unique nkey
15
17
  * (`actor`); the ALIAS is routing only, protected by the name-keyed slot row + uid reservation +
16
18
  * the manager's freeSlot hold — never by the head CAS alone (the head is principal-keyed).
17
19
  */
18
- import { EpEnvelopeError, staticSlotKey, parseStaticSlotRow, credRowKey, parseLedgerRow, SOURCE_ROOT, createRecordEntry, updateRecordEntry, runActivationSagaAtUid, resumeActivationSaga, gateObserve, gateFreeze, gateRetire, headCandidate, headBeginRetirement, headCompleteRetirement, } from "@cotal-ai/core";
20
+ import { EpEnvelopeError, lifecycleBlocked, staticSlotKey, parseStaticSlotRow, credRowKey, parseLedgerRow, SOURCE_ROOT, RECORD_KINDS, recordSpecKey, createRecordEntry, updateRecordEntry, runActivationSagaAtUid, resumeActivationSaga, gateObserve, gateFreeze, gateRetire, headCandidate, headBeginRetirement, headCompleteRetirement, } from "@cotal-ai/core";
19
21
  const enc = new TextEncoder();
22
+ function sameAudit(a, b) {
23
+ return a.v === b.v && a.principal === b.principal && a.alias === b.alias && a.lifecycleUid === b.lifecycleUid &&
24
+ a.managerInstance === b.managerInstance && a.managerProcessUid === b.managerProcessUid && a.retirementOpId === b.retirementOpId &&
25
+ a.broker.kicked === b.broker.kicked && a.broker.remaining === b.broker.remaining &&
26
+ a.broker.scanComplete === b.broker.scanComplete && a.broker.verifiedGone === b.broker.verifiedGone;
27
+ }
28
+ /** The terminal barrier's verified-eviction step, over the SPEC'S TARGET SET.
29
+ *
30
+ * SPEC 13.1 scopes it exactly: "cluster-verified eviction of every revoked credential's live
31
+ * connections", by the `holderPrincipal` "(from its ledger row)". `holders` is that set, returned
32
+ * by the B1 revoke above.
33
+ *
34
+ * An EMPTY set is not a skipped eviction — it is the required eviction of nothing. A lifecycle
35
+ * whose ledger released no credential (a durable slot row whose spawn never reached its mint: a
36
+ * crashed provision, a pre-3b-2 legacy row, an orphan reconciled at boot) has no `holderPrincipal`
37
+ * anywhere, and its incarnation-unique actor nkey (F5-bind) never authenticated to the broker at
38
+ * all, so no connection can exist under it for an oracle to find. Demanding the liveness oracle
39
+ * there asks it to prove the absence of a principal that was never issued.
40
+ *
41
+ * Where the set is NON-empty the barrier is unchanged and fail-closed: every holder is
42
+ * verify-evicted or the lifecycle stays `terminalizing` and the alias stays held. No fallback arm,
43
+ * no degraded mode, no skip. */
44
+ async function evictAndAudit(t, args, holders, evict, log) {
45
+ if (holders.length === 0) {
46
+ log(`no credential-ledger row was ever released under uid ${args.lifecycleUid}; the barrier's eviction set is empty (SPEC 13.1)`);
47
+ return;
48
+ }
49
+ // Every static ledger row of one lifecycle carries that incarnation's own principal (the mint
50
+ // sites record exactly `principalKey(DEV_OWNER, actor)`), so the set is a singleton and the audit
51
+ // record below is one row per lifecycle. A second holder means the ledger disagrees with the
52
+ // incarnation it is keyed under: refuse rather than evict some of a set we cannot audit.
53
+ if (holders.length > 1)
54
+ throw new EpEnvelopeError("internal", `the ledger rows of uid ${args.lifecycleUid} name ${holders.length} holder principals (${holders.join(", ")}); a static lifecycle has exactly one (SPEC 13.1)`);
55
+ const principal = holders[0];
56
+ const result = await evict(principal);
57
+ if (!result.verifiedGone || !result.scanComplete || result.remaining !== 0)
58
+ throw new EpEnvelopeError("unavailable", `static retirement could not verify-evict ${principal}; the lifecycle remains terminalizing and the alias stays held (SPEC 13.1)`);
59
+ const key = recordSpecKey(RECORD_KINDS.lifecycle, [args.owner, args.actor, args.lifecycleUid]);
60
+ const spec = {
61
+ v: 1, principal, alias: args.alias, lifecycleUid: args.lifecycleUid, managerInstance: args.managerInstance,
62
+ managerProcessUid: args.managerProcessUid, retirementOpId: args.opId,
63
+ broker: { kicked: result.kicked, remaining: result.remaining, scanComplete: result.scanComplete, verifiedGone: result.verifiedGone },
64
+ timestamp: new Date().toISOString(),
65
+ };
66
+ try {
67
+ await t.createRecord(key, spec);
68
+ }
69
+ catch (e) {
70
+ if (!(e instanceof EpEnvelopeError) || e.code !== "conflict")
71
+ throw e;
72
+ const existing = await t.getRecord(key);
73
+ if (!existing || existing.operation !== "PUT")
74
+ throw new EpEnvelopeError("failed-precondition", `lifecycle audit ${key} conflict is unreadable`);
75
+ let value;
76
+ try {
77
+ value = JSON.parse(new TextDecoder().decode(existing.value));
78
+ }
79
+ catch {
80
+ throw new EpEnvelopeError("failed-precondition", `lifecycle audit ${key} conflict is malformed`);
81
+ }
82
+ if (!sameAudit(value, spec))
83
+ throw new EpEnvelopeError("already-exists", `lifecycle audit ${key} records different evidence`);
84
+ // Timestamp may differ only after the stable manager identities and retirement op prove the same retry.
85
+ }
86
+ }
20
87
  /** The direct-KV transport over the two authority stores, bound per lifecycle OPERATION on an
21
88
  * ephemeral, key-pinned `lifecycle-executor` connection (the manager mints it; see
22
89
  * `withLifecycleExecutor`). Mirrors the auth implementation's sealed `transportOf` — a
@@ -101,8 +168,14 @@ export async function appendStaticCredentialRow(t, args) {
101
168
  /** The static terminal's B1 revoke: CAS every recorded row `active -> revoked`. Enumeration is
102
169
  * the SLOT's recorded credentialIds (recorded before every mint), never a store listing. An
103
170
  * ABSENT row is the legitimate crash window (id recorded, mint never reached) — no credential
104
- * exists for it, logged and skipped; a revoked row is idempotence. */
171
+ * exists for it, logged and skipped; a revoked row is idempotence.
172
+ *
173
+ * RETURNS the barrier's eviction TARGET SET: the distinct `holderPrincipal` of every ledger row
174
+ * this revoke COVERED — the rows it just CASed AND the already-`revoked` rows a resume walked
175
+ * over, because a crash between revoke and eviction must never leave a revoked credential's
176
+ * connection live. An absent row contributes nothing: no credential exists for it. */
105
177
  export async function revokeStaticCredentialRows(t, lifecycleUid, credentialIds, log) {
178
+ const holders = new Set();
106
179
  for (const id of credentialIds) {
107
180
  const key = credRowKey(lifecycleUid, id);
108
181
  const entry = await t.getAuth(key);
@@ -113,10 +186,12 @@ export async function revokeStaticCredentialRows(t, lifecycleUid, credentialIds,
113
186
  if (entry.operation !== "PUT")
114
187
  throw new EpEnvelopeError("failed-precondition", `the ledger row ${key} carries a ${entry.operation} marker; a ledger row is never deleted (SPEC 13.12)`);
115
188
  const row = parseLedgerRow(entry.value, key);
189
+ holders.add(row.holderPrincipal);
116
190
  if (row.state === "revoked")
117
191
  continue;
118
192
  await t.putAuth(key, enc.encode(JSON.stringify({ ...row, state: "revoked" })), entry.revision);
119
193
  }
194
+ return [...holders].sort();
120
195
  }
121
196
  /** The static ACTIVATION: F3 intent FIRST (durable outer spawn intent, phase `provisioning`),
122
197
  * then the SHARED core activation saga at the spawn's uid (reserve -> gate frozen -> head CAS
@@ -135,8 +210,8 @@ export async function activateStaticLifecycle(t, args) {
135
210
  return { slotRevision: revision };
136
211
  }
137
212
  /** The static TERMINAL (F1, the (b2) order): freeze-under-the-retirement-op -> head
138
- * `active -> retiring` -> B1 ledger revoke -> cleanup (the injected footprint teardown; the
139
- * process kill static "eviction" already happened on the manager's stop path) -> gate
213
+ * `active -> retiring` -> B1 ledger revoke -> broker connection eviction -> cleanup (the injected
214
+ * footprint teardown; on a normal stop the manager separately proves runtime exit) -> gate
140
215
  * `frozen -> retired` -> head `retiring -> retired` LAST -> slot `retired` (the alias frees).
141
216
  * Every gate/head step DELEGATES to the shared core saga; recovery recognizes a SAME-OP
142
217
  * terminal gate and finishes the head (the lost-ack alias wedge the panel closed).
@@ -165,7 +240,8 @@ export async function runStaticTerminal(t, args, hooks) {
165
240
  const head = await headCandidate(t, args.owner, args.actor);
166
241
  if (head !== undefined && head.mapping.lifecycleUid === args.lifecycleUid)
167
242
  throw new EpEnvelopeError("internal", `the head for "${args.owner}/${args.actor}" names uid ${args.lifecycleUid} but its gate does not exist; an active head without a gate is corruption (SPEC 13.1)`);
168
- await revokeStaticCredentialRows(t, args.lifecycleUid, slot.row.credentialIds, hooks.log);
243
+ const preGateHolders = await revokeStaticCredentialRows(t, args.lifecycleUid, slot.row.credentialIds, hooks.log);
244
+ await evictAndAudit(t, args, preGateHolders, hooks.evict, hooks.log);
169
245
  await hooks.cleanup();
170
246
  await casStaticSlot(t, { ...slot.row, phase: "retired" }, slotRevision);
171
247
  return "retired";
@@ -183,7 +259,8 @@ export async function runStaticTerminal(t, args, hooks) {
183
259
  // The head never won: burn the uid THROUGH the activation's own op (op-pinned exact-op
184
260
  // static retirement), then settle the slot — there is no head to retire.
185
261
  await gateRetire(t, { lifecycleUid: args.lifecycleUid, revision: gate.revision, opId: gate.row.op.opId });
186
- await revokeStaticCredentialRows(t, args.lifecycleUid, slot.row.credentialIds, hooks.log);
262
+ const lostHeadHolders = await revokeStaticCredentialRows(t, args.lifecycleUid, slot.row.credentialIds, hooks.log);
263
+ await evictAndAudit(t, args, lostHeadHolders, hooks.evict, hooks.log);
187
264
  await hooks.cleanup();
188
265
  const cur = await readStaticSlot(t, args.owner, args.alias);
189
266
  if (cur !== undefined && cur.row.lifecycleUid === args.lifecycleUid && cur.row.phase !== "retired")
@@ -192,10 +269,20 @@ export async function runStaticTerminal(t, args, hooks) {
192
269
  }
193
270
  }
194
271
  else if (gate.row.state === "frozen" && gate.row.op?.kind !== "retirement") {
195
- throw new EpEnvelopeError("failed-precondition", `the issuance gate for ${args.lifecycleUid} is frozen by a ${gate.row.op?.kind ?? "<unknown>"} (op ${gate.row.op?.opId ?? "<none>"}); a foreign barrier is in flight - refuse (SPEC 13.1)`);
272
+ throw lifecycleBlocked("failed-precondition", `the issuance gate for ${args.lifecycleUid} is frozen by a ${gate.row.op?.kind ?? "<unknown>"} (op ${gate.row.op?.opId ?? "<none>"}); a foreign barrier is in flight - refuse (SPEC 13.1)`, {
273
+ blockedOp: (gate.row.op?.kind === "takeover" || gate.row.op?.kind === "registration" || gate.row.op?.kind === "activation") ? gate.row.op.kind : "registration",
274
+ headState: "retiring",
275
+ ...(gate.row.op?.opId !== undefined ? { opId: gate.row.op.opId } : {}),
276
+ remedy: gate.row.op?.kind === "registration" ? "cotal reconcile-gate" : "retry",
277
+ });
196
278
  }
197
279
  else if (gate.row.state === "frozen" && gate.row.op?.opId !== args.opId) {
198
- throw new EpEnvelopeError("failed-precondition", `the issuance gate for ${args.lifecycleUid} is frozen by retirement op ${gate.row.op?.opId ?? "<none>"}, not ${args.opId}; one retirement at a time (SPEC 13.1)`);
280
+ throw lifecycleBlocked("failed-precondition", `the issuance gate for ${args.lifecycleUid} is frozen by retirement op ${gate.row.op?.opId ?? "<none>"}, not ${args.opId}; one retirement at a time (SPEC 13.1)`, {
281
+ blockedOp: "retirement",
282
+ headState: "retiring",
283
+ ...(gate.row.op?.opId !== undefined ? { opId: gate.row.op.opId } : {}),
284
+ remedy: "retry",
285
+ });
199
286
  }
200
287
  // Freeze under OUR retirement op if the gate is open (fresh terminal, or the just-finished
201
288
  // activation resume). A gate frozen by our op (crash-resume) or already terminal (same-op
@@ -214,7 +301,19 @@ export async function runStaticTerminal(t, args, hooks) {
214
301
  throw new EpEnvelopeError("failed-precondition", `the head for "${args.owner}/${args.actor}" names uid ${headNow.mapping.lifecycleUid}, not ${args.lifecycleUid}; foreign movement - refuse (SPEC 13.1)`);
215
302
  if (headNow.mapping.state !== "retired")
216
303
  await headBeginRetirement(t, { owner: args.owner, actor: args.actor, lifecycleUid: args.lifecycleUid, opId: args.opId });
217
- await revokeStaticCredentialRows(t, args.lifecycleUid, slot.row.credentialIds, hooks.log);
304
+ const holders = await revokeStaticCredentialRows(t, args.lifecycleUid, slot.row.credentialIds, hooks.log);
305
+ // A crash may leave the prior seat process alive after its manager disappeared. Deny-new is
306
+ // durable above; verify the predecessor principal has no live broker connections before cleanup,
307
+ // then before retiring the gate/head and freeing the alias. This does not reap the OS process.
308
+ // Failure leaves the lifecycle terminalizing, so a successor never gains simultaneous broker rails.
309
+ // The set is the ledger's, not a synthesized alias principal (`evictAndAudit`): a lifecycle that
310
+ // released no credential has no seat to contain, and this narration would be a claim about a
311
+ // principal that never existed.
312
+ for (const principal of holders)
313
+ hooks.log(`verify-evicting orphan seat principal ${principal} before lifecycle cleanup`);
314
+ await evictAndAudit(t, args, holders, hooks.evict, hooks.log);
315
+ for (const principal of holders)
316
+ hooks.log(`verified orphan seat principal gone: ${principal}`);
218
317
  await hooks.cleanup();
219
318
  // The terminal tail, in the (b2) order: gate frozen->retired FIRST (retains the opId, the
220
319
  // recovery coordinate), head retiring->retired LAST (drops the op; the alias frees only now).
@@ -242,14 +341,14 @@ export function planStaticSlotResume(row, adopted) {
242
341
  return "none";
243
342
  case "provisioning":
244
343
  case "terminalizing":
245
- // A crashed spawn (its process never joined) or a crashed terminal: both re-drive the
344
+ // A crashed spawn (it never reached managed ownership) or a crashed terminal: both re-drive the
246
345
  // exact-op terminal (runStaticTerminal is total over the partial durable states).
247
346
  return "drive-terminal";
248
347
  case "active":
249
348
  // `adopted` is genuine live membership (the manager holds this incarnation as a managed
250
- // agent). Adopted -> the live process owns it, leave it. NOT adopted -> the process is gone
251
- // (a non-preserving restart, or an orphan the resume did not claim): the incarnation is
252
- // dead, terminalize. The CALLER supplies `adopted` correctly per sweep: a boot sweep with a
349
+ // agent). Adopted -> this manager owns the live incarnation, leave it. NOT adopted -> no live
350
+ // managed owner claimed the incarnation (a non-preserving restart, or an orphan the resume did
351
+ // not claim): contain its broker authority and terminalize. The CALLER supplies `adopted` correctly per sweep: a boot sweep with a
253
352
  // resume pending DEFERS active slots (adoption has not run yet) rather than passing a false
254
353
  // adopted; the post-adoption sweep passes true membership.
255
354
  return adopted ? "none" : "drive-terminal";
@@ -1 +1 @@
1
- {"version":3,"file":"static-lifecycle.js","sourceRoot":"","sources":["../src/static-lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"static-lifecycle.js","sourceRoot":"","sources":["../src/static-lifecycle.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cotal-ai/manager",
3
3
  "description": "Cotal agent supervisor: spawns and manages mesh nodes via a pluggable runtime (pty/tmux/cmux/orca/herdr).",
4
- "version": "0.36.0",
4
+ "version": "0.38.0",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
7
7
  "type": "git",
@@ -30,15 +30,19 @@
30
30
  "ws": "^8.21.0",
31
31
  "yaml": "^2.9.0",
32
32
  "zod": "^4.4.3",
33
- "@cotal-ai/core": "0.36.0",
34
- "@cotal-ai/workspace": "0.36.0"
33
+ "@cotal-ai/core": "0.38.0",
34
+ "@cotal-ai/workspace": "0.38.0"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@nats-io/nats-core": "^3.4.0",
38
38
  "@types/ws": "^8.18.1",
39
39
  "esbuild": "^0.28.1",
40
+ "@cotal-ai/connector-claude-code": "0.38.0",
41
+ "@cotal-ai/connector-codex": "0.38.0",
42
+ "@cotal-ai/auth": "0.38.0",
40
43
  "@cotal-ai/smoke-kit": "0.0.0",
41
- "@cotal-ai/connector-core": "0.36.0"
44
+ "@cotal-ai/connector-core": "0.38.0",
45
+ "@cotal-ai/connector-opencode": "0.38.0"
42
46
  },
43
47
  "files": [
44
48
  "dist"
@@ -48,7 +52,7 @@
48
52
  },
49
53
  "scripts": {
50
54
  "test": "tsx smoke/start-model-preflight.smoke.ts && tsx smoke/start-overrides.smoke.ts && tsx smoke/preserve-state.smoke.ts && tsx smoke/pi-session-recovery.smoke.ts",
51
- "typecheck": "tsc -p tsconfig.json --noEmit",
55
+ "typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.smoke.json",
52
56
  "build": "tsc -p tsconfig.json && node -e \"const fs=require('node:fs'); fs.rmSync('dist/console', { recursive: true, force: true }); fs.cpSync('src/console', 'dist/console', { recursive: true })\" && pnpm run build:console-bundle",
53
57
  "build:console-bundle": "esbuild src/console-session-entry.ts --bundle --format=iife --platform=browser --target=es2020 --alias:node:crypto=./src/console-crypto-shim.ts --outfile=dist/console/session-bundle.js && node scripts/console-bundle-loadtest.mjs"
54
58
  }