@cotal-ai/manager 0.128.0 → 0.128.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/manager.js CHANGED
@@ -2329,18 +2329,17 @@ export class Manager {
2329
2329
  else
2330
2330
  failures.push(`${a.name}: stop failed: ${refused}`);
2331
2331
  }
2332
- // The slot delete above bypasses freeSlot, which is where the reap line lives — so say it here,
2333
- // once per seat, with the one stop cause that names this path: the shutdown itself. Without
2334
- // this a `--with-agents` stop left every seat unaccounted for in the log (see #1423).
2335
- for (const a of managed)
2336
- this.logSeatReaped(a, { kind: "stopped-shutdown" });
2337
2332
  // A runtime stop request is not exit proof. Do not release the manager lease or registration
2338
2333
  // while any seat may still hold this instance's broker rails: that creates the exact orphan
2339
2334
  // window where a successor sees a dead manager but live predecessor authority. Every shipped
2340
2335
  // runtime now supplies waitForExit; absence or timeout is a failed shutdown, never a clean one.
2336
+ // The slot delete above bypasses freeSlot, which is where the reap line lives, so say it
2337
+ // here once this shutdown has proved the seat exited. A seat whose stop was refused, or
2338
+ // whose exit wait did not prove it gone, is named only by the shutdown error below (#1423, #3404).
2341
2339
  await Promise.all(stopped.map(async (a) => {
2342
2340
  try {
2343
2341
  await this.awaitHandleExit(a.handle);
2342
+ this.logSeatReaped(a, { kind: "stopped-shutdown" });
2344
2343
  }
2345
2344
  catch (e) {
2346
2345
  failures.push(`${a.name}: ${rejectionText(e)}`);