@cotal-ai/cli 0.49.0 → 0.50.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.
Files changed (49) hide show
  1. package/dist/command.d.ts.map +1 -1
  2. package/dist/command.js +8 -0
  3. package/dist/command.js.map +1 -1
  4. package/dist/commands/agents.d.ts +143 -1
  5. package/dist/commands/agents.d.ts.map +1 -1
  6. package/dist/commands/agents.js +126 -49
  7. package/dist/commands/agents.js.map +1 -1
  8. package/dist/commands/doctor.d.ts.map +1 -1
  9. package/dist/commands/doctor.js +175 -11
  10. package/dist/commands/doctor.js.map +1 -1
  11. package/dist/commands/join.d.ts.map +1 -1
  12. package/dist/commands/join.js +9 -1
  13. package/dist/commands/join.js.map +1 -1
  14. package/dist/commands/setup.d.ts +1 -1
  15. package/dist/commands/setup.d.ts.map +1 -1
  16. package/dist/commands/setup.js +1 -1
  17. package/dist/commands/status.d.ts +11 -3
  18. package/dist/commands/status.d.ts.map +1 -1
  19. package/dist/commands/status.js +176 -13
  20. package/dist/commands/status.js.map +1 -1
  21. package/dist/commands/up.d.ts.map +1 -1
  22. package/dist/commands/up.js +12 -1
  23. package/dist/commands/up.js.map +1 -1
  24. package/dist/commands/update.d.ts.map +1 -1
  25. package/dist/commands/update.js +19 -7
  26. package/dist/commands/update.js.map +1 -1
  27. package/dist/lib/auth-proc.d.ts.map +1 -1
  28. package/dist/lib/auth-proc.js +2 -1
  29. package/dist/lib/auth-proc.js.map +1 -1
  30. package/dist/lib/control.d.ts +28 -1
  31. package/dist/lib/control.d.ts.map +1 -1
  32. package/dist/lib/control.js +58 -11
  33. package/dist/lib/control.js.map +1 -1
  34. package/dist/lib/delivery-proc.d.ts +21 -5
  35. package/dist/lib/delivery-proc.d.ts.map +1 -1
  36. package/dist/lib/delivery-proc.js +82 -18
  37. package/dist/lib/delivery-proc.js.map +1 -1
  38. package/dist/lib/delivery-responder.d.ts +92 -0
  39. package/dist/lib/delivery-responder.d.ts.map +1 -0
  40. package/dist/lib/delivery-responder.js +78 -0
  41. package/dist/lib/delivery-responder.js.map +1 -0
  42. package/dist/lib/manager-proc.d.ts.map +1 -1
  43. package/dist/lib/manager-proc.js +4 -1
  44. package/dist/lib/manager-proc.js.map +1 -1
  45. package/dist/lib/self-exec.d.ts +15 -1
  46. package/dist/lib/self-exec.d.ts.map +1 -1
  47. package/dist/lib/self-exec.js +30 -3
  48. package/dist/lib/self-exec.js.map +1 -1
  49. package/package.json +5 -5
@@ -1,11 +1,12 @@
1
1
  import { spawn } from "node:child_process";
2
2
  import { existsSync, openSync, closeSync, writeFileSync, readFileSync, rmSync } from "node:fs";
3
- import { DEFAULT_SERVER, LEASE_TTL_MS, mintCreds, newIdentity, waitForDeliveryLease, } from "@cotal-ai/core";
4
- import { DELIVERY_CREDS_KIND, DELIVERY_LOGFILE, DELIVERY_PIDFILE, authDir, canonicalLocalProcessPath, deliveryCredsKey, findCotalRoot, getSpaceAuth, listSpaceAccounts, localProcessPath, parsePid, probeLiveness, reclaimDeadPreUpgradeRecord, segmentedKey, workspaceSecretStore, identityLegacyWarning, identityRefusal, identityUncertaintyRefusal, removeIdentityPin, verifyIdentityPin, writeIdentityPin } from "@cotal-ai/workspace";
5
- import { selfArgv } from "./self-exec.js";
3
+ import { DEFAULT_SERVER, LEASE_TTL_MS, mintCreds, newIdentity, waitForDeliveryLease, deliveryLeaseHolderFor, } from "@cotal-ai/core";
4
+ import { DELIVERY_CREDS_KIND, DELIVERY_LOGFILE, DELIVERY_PIDFILE, authDir, canonicalLocalProcessPath, commandIsCotalDelivery, deliveryCredsKey, findCotalRoot, getSpaceAuth, listSpaceAccounts, localProcessPath, parsePid, probeLiveness, readProcessCommand, reclaimDeadPreUpgradeRecord, segmentedKey, workspaceSecretStore, identityLegacyWarning, identityRefusal, identityUncertaintyRefusal, removeIdentityPin, verifyIdentityPin, writeIdentityPin } from "@cotal-ai/workspace";
5
+ import { selfArgv, displayCmd } from "./self-exec.js";
6
6
  import { resolveRuntimeSpace } from "./status.js";
7
7
  import { cotalRoot } from "./paths.js";
8
8
  import { MANAGER_PID_PATH, ensureManager, managerHasDeliveryMarker, managerLiveness, stopManager } from "./manager-proc.js";
9
+ import { RESPONDER_UNBOUND_CONSEQUENCE } from "./delivery-responder.js";
9
10
  /** The space this folder's commands mean, and the per-space record paths over it. The daemon is
10
11
  * minted a space-scoped cred and binds that space's durables, so a root-scoped record gave one root
11
12
  * one daemon by filename; every helper below therefore takes the space it is answering about. */
@@ -24,8 +25,16 @@ const deliveryCredsKeysToClear = (space) => [segmentedKey(DELIVERY_CREDS_KIND, s
24
25
  /** The recorded daemon's liveness, THREE-VALUED plus absent. See {@link managerLiveness} for why the
25
26
  * boolean collapse is the defect: `unknown` is reachable on a real kernel (a seccomp
26
27
  * `SECCOMP_RET_ERRNO` filter or an LSM policy answers `kill(pid, 0)` with an arbitrary errno and
27
- * libuv preserves it), and both ways of folding it into a boolean fail silently. */
28
- export function deliveryLiveness(probe = probeLiveness, space = folderSpace()) {
28
+ * libuv preserves it), and both ways of folding it into a boolean fail silently.
29
+ *
30
+ * `foreign` is the same fifth state {@link managerLiveness} already carries, for the same reason and
31
+ * under the same rule (#1528): a live pid is believed only once the process behind it has been READ
32
+ * and names the delivery daemon. A record outliving its daemon is eventually re-pointed at an
33
+ * unrelated process by pid reuse, and from `kill(pid, 0)` alone that reads as a healthy daemon
34
+ * forever. ATTRIBUTION MAY ONLY DOWNGRADE ON PROOF: a read that failed, a platform with no argv
35
+ * source, and a process that died during the read all leave the record trusted, which is exactly
36
+ * how every caller behaved before this existed. */
37
+ export function deliveryLiveness(probe = probeLiveness, space = folderSpace(), readCommand = readProcessCommand) {
29
38
  const p = PID_PATH(space);
30
39
  if (!existsSync(p))
31
40
  return "absent";
@@ -35,7 +44,13 @@ export function deliveryLiveness(probe = probeLiveness, space = folderSpace()) {
35
44
  const pid = parsePid(raw);
36
45
  if (pid === undefined)
37
46
  return "unattributable"; // see managerLiveness: never fold this into absent
38
- return probe(pid);
47
+ const liveness = probe(pid);
48
+ if (liveness !== "alive")
49
+ return liveness;
50
+ const cmd = readCommand(pid);
51
+ if (cmd.kind !== "command")
52
+ return "alive"; // gone/unreadable: nothing was established about it
53
+ return commandIsCotalDelivery(cmd.command) ? "alive" : "foreign";
39
54
  }
40
55
  /** True only if the daemon is PROVABLY running. Callers that ACT on the answer take
41
56
  * {@link deliveryLiveness} instead; this cannot express "cannot tell". */
@@ -94,8 +109,10 @@ export function startDeliveryDetached(o = {}) {
94
109
  // See startManagerDetached: reclaim a provably dead pre-upgrade record before claiming the
95
110
  // canonical slot, and refuse rather than start a second daemon beside a live one.
96
111
  reclaimDeadPreUpgradeRecord(DELIVERY_PIDFILE, ctx(space));
97
- const fd = openSync(canonicalLocalProcessPath(DELIVERY_LOGFILE, ctx(space)), "a");
112
+ // Before the log is opened, for the reason startManagerDetached states: a `selfArgv` refusal
113
+ // (#1629) must not leave a delivery log and a leaked descriptor behind.
98
114
  const [node, ...self] = selfArgv();
115
+ const fd = openSync(canonicalLocalProcessPath(DELIVERY_LOGFILE, ctx(space)), "a");
99
116
  const args = [
100
117
  ...self,
101
118
  "deliver",
@@ -128,7 +145,13 @@ export function startDeliveryDetached(o = {}) {
128
145
  * while an old Plane-3-hosting manager is live (the preflight should have stopped it) so the daemon
129
146
  * never double-binds. Mints a SCOPED `delivery` cred from the local signer ONCE, writes it to
130
147
  * `.cotal/delivery.creds` (0600), and launches the daemon WITHOUT signer access. Best-effort — callers
131
- * treat it as non-fatal (a missing daemon degrades durable delivery, never live). */
148
+ * treat it as non-fatal (a missing daemon degrades durable delivery, never live).
149
+ *
150
+ * RETURNS TWO FACTS, NOT ONE (#1576). `running` is about the PROCESS; `responderBound` is about the
151
+ * `ctl.delivery` responder, which is what spawn, retirement and join actually require. They are not
152
+ * the same question, and collapsing them into one boolean is how a mesh came to report healthy for
153
+ * 22 hours while none of those three operations could complete. `responderBound` is false when the
154
+ * readiness wait elapsed without the lease flipping ready, and absent when no daemon applies. */
132
155
  export async function ensureDelivery(o = {}, probe = probeLiveness) {
133
156
  if (!hasAuth())
134
157
  return { running: false }; // open dev mode — no daemon, agents are live-only
@@ -169,11 +192,17 @@ export async function ensureDelivery(o = {}, probe = probeLiveness) {
169
192
  // responder for their boot self-join. Non-fatal on timeout: the boot self-join reconciles with backoff,
170
193
  // which is the real safety net for a slow start or a later outage.
171
194
  //
172
- // WHOSE readiness matters. A fresh launch waits for THE DAEMON IT JUST STARTED: its lease holder is
173
- // the endpoint id of the cred written above (the daemon adopts `idFromCreds` of that file), so the
174
- // wait cannot be answered by some other daemon's or a dead one's leftover `ready:true` record.
175
- // A reuse adopts a daemon that was already running and cannot know its id, so it waits for any.
176
- const ready = await waitForDeliveryLease({ servers: server, space, creds, id: id.id, holder: launched !== undefined ? id.id : undefined });
195
+ // WHOSE readiness matters. A fresh launch waits for THE DAEMON IT JUST STARTED, so the wait cannot
196
+ // be answered by some other daemon's - or a dead one's - leftover `ready:true` record. A reuse
197
+ // adopts a daemon that was already running and cannot know its id, so it waits for any.
198
+ //
199
+ // THROUGH `deliveryLeaseHolderFor`, NOT `id.id`. This asked for the bare nkey, while the daemon's
200
+ // endpoint stamps the PRINCIPAL dot-form into the row, so the comparison could never be true: every
201
+ // fresh launch ran the full 8s timeout and then reported a ready daemon as not-ready. It failed in
202
+ // the safe direction, which is why it went unnoticed, but the #837 guarantee this argument exists
203
+ // to enforce was not actually in force - it was defeated by always-false rather than by accepting
204
+ // anything. Found in review (#1318), where the same two namespaces were confused a third time.
205
+ const ready = await waitForDeliveryLease({ servers: server, space, creds, id: id.id, holder: launched !== undefined ? deliveryLeaseHolderFor(creds) : undefined });
177
206
  // A launch we performed whose process is GONE is not a slow start, and reporting it as one is the
178
207
  // #837 false-green: the daemon lost the single-flight CAS to a live-or-stale lease and exited (it
179
208
  // says so in `.cotal/delivery.log`), while this returned `running: true` over a pidfile fronting a
@@ -184,14 +213,31 @@ export async function ensureDelivery(o = {}, probe = probeLiveness) {
184
213
  `Refusing to report a daemon that is not running. The daemon logged its own reason to ${canonicalLocalProcessPath(DELIVERY_LOGFILE, ctx(space))}.\n` +
185
214
  `NEXT: read that log; if no other daemon is running, wait for the stale lease to expire and re-run.`);
186
215
  if (!ready)
187
- console.error("• delivery daemon not yet ready (responder not bound) - boot durable joins will reconcile when it is");
188
- return { running: true };
216
+ // #1576. THIS USED TO PRINT A PROMISE AND RETURN SUCCESS, and that combination is the defect.
217
+ // The promise was true — `reconcileBootJoin` really does retry with capped backoff and really
218
+ // does establish the memberships once a daemon binds — but it was the ONLY thing said, at info
219
+ // level, once, and it described the RECOVERY rather than the state. A reporter's fleet then ran
220
+ // 22 hours in exactly this condition: `cotal up` alive, systemctl green, and spawn, retirement
221
+ // and join all failing, with nothing anywhere naming the responder.
222
+ //
223
+ // So the line now names the CONSEQUENCE first (what does not work while this holds), then the
224
+ // recovery, and it says the wait is open-ended rather than implying it has been handled. The
225
+ // reconcile keeps its sentence because an operator who respawns agents over this loses live
226
+ // sessions for nothing — the daemon re-mints and the agents rejoin on their own.
227
+ console.error(`! delivery daemon started but its responder is NOT BOUND yet (the shard-0 lease has not flipped ready) - ${RESPONDER_UNBOUND_CONSEQUENCE}.\n` +
228
+ ` This does not time out on its own: the boot durable joins retry with backoff and WILL reconcile when the responder binds, however long that takes, and agents rejoin WITHOUT being respawned.\n` +
229
+ ` Check it with \`${displayCmd()} status --components\` (delivery row) and read ${canonicalLocalProcessPath(DELIVERY_LOGFILE, ctx(space))} for the daemon's own reason.`);
230
+ // The caller hears WHICH of the two states it got. `running` still means "a daemon process is
231
+ // there" (unchanged for every existing caller), but a caller that needs the responder — anything
232
+ // that is about to spawn, retire or join — can now ask instead of assuming, which it could not do
233
+ // when this returned a bare `running: true` over an admittedly unbound responder.
234
+ return { running: true, responderBound: ready };
189
235
  }
190
236
  /** Stop the detached delivery daemon if we started one, and drop its creds from the store. The pid
191
237
  * kill runs even if the creds delete fails (finally) — a delete error must never leave the daemon
192
238
  * alive to outlive the teardown and reattach to a restarted broker; the error still propagates
193
239
  * after the kill so the caller can surface it. */
194
- export async function stopDelivery(probe = probeLiveness, signal, space = folderSpace()) {
240
+ export async function stopDelivery(probe = probeLiveness, signal, space = folderSpace(), readCommand = readProcessCommand) {
195
241
  const send = signal ?? ((pid, sig) => process.kill(pid, sig));
196
242
  const p = PID_PATH(space);
197
243
  // ORDER MATTERS, AND IT USED TO BE BACKWARDS. The credential was deleted FIRST, in a try whose
@@ -235,6 +281,19 @@ export async function stopDelivery(probe = probeLiveness, signal, space = folder
235
281
  await removeRecords();
236
282
  return;
237
283
  }
284
+ // A LIVE pid that is provably NOT a delivery daemon is never signalled, the same rule
285
+ // `stopManager` applies (#1528). The record outlived its daemon and the number was reused, so
286
+ // SIGTERM here would kill an unrelated process. The record is removed because it is PROVABLY
287
+ // stale, and what was found is printed: an operator told only "already stopped" would not learn
288
+ // that their pidfile was pointing at a stranger.
289
+ if (before === "alive") {
290
+ const cmd = readCommand(pid);
291
+ if (cmd.kind === "command" && !commandIsCotalDelivery(cmd.command)) {
292
+ console.error(`! recorded delivery daemon pid ${pid} is alive but is running \`${cmd.command}\`, which is not a delivery daemon - not signalling it; removing the stale record instead.`);
293
+ await removeRecords();
294
+ return;
295
+ }
296
+ }
238
297
  if (before === "unknown")
239
298
  throw new Error(`refusing to stop the delivery daemon (pid ${pid}): its liveness cannot be determined (a seccomp filter or LSM policy answers kill(pid,0) with an arbitrary errno).\n` +
240
299
  `The pidfile and standing credential are LEFT IN PLACE: removing them would strand a daemon that may still be connected, with its renewal source gone.\n` +
@@ -280,7 +339,12 @@ export async function ensureControlPlane(o = {}) {
280
339
  // start another's.
281
340
  const space = o.space ?? folderSpace();
282
341
  await stopOldHostingManagerIfPresent(probeLiveness, undefined, space);
283
- await ensureDelivery({ ...o, space });
284
- return ensureManager({ ...o, space });
342
+ // The delivery answer is CARRIED, not discarded (#1576). This used to drop `ensureDelivery`'s
343
+ // result on the floor and return only the manager's, so `cotal up` had no way to say that the
344
+ // dependency every spawn/retirement/join needs had not come up — the boot line inside
345
+ // `ensureDelivery` was the only trace, and it read as a progress note.
346
+ const delivery = await ensureDelivery({ ...o, space });
347
+ const manager = await ensureManager({ ...o, space });
348
+ return { ...manager, responderBound: delivery.responderBound };
285
349
  }
286
350
  //# sourceMappingURL=delivery-proc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-proc.js","sourceRoot":"","sources":["../../src/lib/delivery-proc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delivery-proc.js","sourceRoot":"","sources":["../../src/lib/delivery-proc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * THE DELIVERY RESPONDER AXIS (#1576) — one reader, used by every surface that answers
3
+ * "can this mesh spawn, retire and join right now".
4
+ *
5
+ * THE DEFECT THIS MODULE EXISTS TO REMOVE. The delivery daemon's PROCESS and its RESPONDER are two
6
+ * different facts, and every operator-facing surface used to report the first while the second was
7
+ * what the mesh actually depends on. A reporter ran a 30-agent fleet for 22 hours against a daemon
8
+ * that never bound: `systemctl is-active` said active (the PARENT `cotal up` was alive), `cotal ps`
9
+ * listed the agents, and bare `cotal status` printed `delivery running (pid 291)` — the identical
10
+ * line it prints when the responder IS bound. Spawn, retirement and join were all failing the whole
11
+ * time, and the only place the real cause was ever named was inside one PTY, on one operation.
12
+ *
13
+ * THE SOURCE OF TRUTH IS THE SHARD-0 LEASE `ready` FLAG, and it is not a new one: the daemon
14
+ * CAS-creates its lease `ready:false` BEFORE binding (the single-flight gate that stops two daemons
15
+ * splitting a durable), then flips it to `ready:true` only AFTER `startPlane3` has bound the
16
+ * `ctl.delivery` responder and the fan-out/reader loops. So `ready === true` is the only fact that
17
+ * distinguishes "the responder is bound" from "a process exists" (pidfile) or "a slot was claimed"
18
+ * (lease present, not ready). See `DeliveryLeaseInfo` in core and the flip site in the daemon.
19
+ *
20
+ * WHY A SHARED MODULE RATHER THAN A SECOND READ. `--components` already computed this correctly and
21
+ * bare `status` did not, which is precisely how the two surfaces came to disagree about a mesh's
22
+ * health. Both now reduce through {@link deliveryResponderFromLease}, so a future change cannot fix
23
+ * one and leave the other green. It reads; it never mints, writes or repairs.
24
+ *
25
+ * The two surfaces differ in ONE deliberate respect, and the split is in the read, not the grading.
26
+ * Bare `status` reduces a failed read to `unchecked` and so calls {@link deliveryResponderState},
27
+ * which wraps the read. `--components` must tell a missing lease stream apart from a refused read
28
+ * and reports them as different verdicts, so it does its own read and calls the pure classifier
29
+ * directly. Neither surface grades a lease by any other rule.
30
+ */
31
+ import type { DeliveryLeaseInfo } from "@cotal-ai/core";
32
+ /** What is known about the responder, as opposed to the process.
33
+ *
34
+ * `unknown` IS A FIRST-CLASS ANSWER AND MUST NOT BE FOLDED INTO `bound`. A lease read can fail for
35
+ * reasons that say nothing about the daemon (no target resolved, broker unreachable, a denied read
36
+ * on a mesh whose creds predate the read grant). Reporting any of those as health is the original
37
+ * defect in a new place, so the renderer says the axis was not checked and names the surface that
38
+ * can check it.
39
+ *
40
+ * `stale` IS ALSO NOT `bound`. A ready record whose holder is not the daemon this workspace launched
41
+ * is a dead or foreign daemon's leftover, and the mesh it describes cannot spawn, retire or join. It
42
+ * is kept distinct from `unbound` because the OPERATOR'S NEXT MOVE DIFFERS: an unbound responder is
43
+ * usually still starting and wants waiting, while a stale record wants the TTL to expire (or a real
44
+ * replacement to take the slot) and is evidence the daemon DIED rather than never arrived. */
45
+ export type DeliveryResponderState = "bound" | "unbound" | "stale" | "unknown";
46
+ /** The consequence, in the operator's terms rather than the daemon's.
47
+ *
48
+ * This sentence is the whole point of the fix. The boot path used to print a PROMISE
49
+ * ("boot durable joins will reconcile when it is") and nothing else: true, but it told an operator
50
+ * nothing about what was broken MEANWHILE, so a 22-hour outage read as a progress note. The
51
+ * reconcile is real and does run once a daemon binds; what nobody was told is that until it binds,
52
+ * these three operations cannot complete. */
53
+ export declare const RESPONDER_UNBOUND_CONSEQUENCE = "no spawn, no retirement, no join until it binds";
54
+ /** Classify a shard-0 lease record. `undefined` means the lease key is absent, which on a mesh that
55
+ * HAS a delivery daemon recorded is an unbound responder, not a missing opinion: the daemon creates
56
+ * its lease before it binds, so no lease at all means nothing has even claimed the slot.
57
+ *
58
+ * `expectedHolder` IS NOT OPTIONAL INFORMATION WHEN IT IS KNOWABLE, and leaving it out was a real
59
+ * defect in the first cut of this fix, caught by walking the one path no cell walked. A daemon that
60
+ * is SIGKILLed (or dies any way that skips `releaseDeliveryLease`) leaves its `ready:true` record in
61
+ * the bucket for the REST OF THE BUCKET TTL. Measured on a real broker: the record survives the
62
+ * holder's death and `ready` stays true for seconds afterwards. `ready` alone therefore answers
63
+ * "did SOME daemon bind, recently enough that its record has not expired", which is NOT the question
64
+ * an operator is asking. Core learned this at #837 — `waitForDeliveryLease` demands a named holder
65
+ * for exactly this reason — and a surface whose whole purpose is to stop reporting false health had
66
+ * no business asking the weaker question.
67
+ *
68
+ * THE REALISTIC SHAPE IS A RESTART, not a contrived kill: the daemon dies, `cotal up` starts a
69
+ * replacement, and for the rest of the TTL the corpse's ready record sits in front of a live pid
70
+ * that has not bound anything yet. Reporting `bound` there is the reported incident with a new
71
+ * cause. When the caller can name the daemon it means (its creds file is on disk, and the daemon
72
+ * adopts `idFromCreds` of that file as its card id and lease holder), a foreign or dead holder's
73
+ * record classifies as `stale` rather than as health. When it genuinely cannot know — an adopted
74
+ * daemon whose creds this process never wrote — pass `undefined` and the holder is not checked,
75
+ * which is the same concession core makes and no worse than before. */
76
+ export declare function deliveryResponderFromLease(lease: DeliveryLeaseInfo | undefined, expectedHolder?: string): DeliveryResponderState;
77
+ /** Read the axis through a caller-supplied lease reader, mapping a FAILED read to `unknown` rather
78
+ * than to either health state. The reader is injected so the offline surfaces (which must not open
79
+ * a connection) and the connected ones share one classification without sharing a transport.
80
+ *
81
+ * `expectedHolder` is threaded through rather than applied by the caller so the staleness rule lives
82
+ * with the classification: a second surface that reads the lease gets the holder check by using this
83
+ * function, instead of having to remember that `ready` alone is not the question. */
84
+ export declare function deliveryResponderState(readLease: () => Promise<DeliveryLeaseInfo | undefined>, expectedHolder?: string): Promise<DeliveryResponderState>;
85
+ /** The bare-`status` process row's delivery suffix: what the recorded PROCESS means once the
86
+ * responder axis is known.
87
+ *
88
+ * A LIVE PID WITH AN UNBOUND RESPONDER IS THE REPORTED DEFECT, so it is the case that must never
89
+ * render as a bare "running". A live pid whose responder is bound is genuinely serving and says so.
90
+ * An unchecked axis says it is unchecked and names `--components`; it never implies either. */
91
+ export declare function deliveryRowSuffix(live: boolean, state: DeliveryResponderState, componentsHint: string): string;
92
+ //# sourceMappingURL=delivery-responder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery-responder.d.ts","sourceRoot":"","sources":["../../src/lib/delivery-responder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD;;;;;;;;;;;;+FAY+F;AAC/F,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAE/E;;;;;;8CAM8C;AAC9C,eAAO,MAAM,6BAA6B,oDACS,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;wEAqBwE;AACxE,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,iBAAiB,GAAG,SAAS,EACpC,cAAc,CAAC,EAAE,MAAM,GACtB,sBAAsB,CAKxB;AAED;;;;;;sFAMsF;AACtF,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,EACvD,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,sBAAsB,CAAC,CAMjC;AAED;;;;;gGAKgG;AAChG,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAe9G"}
@@ -0,0 +1,78 @@
1
+ /** The consequence, in the operator's terms rather than the daemon's.
2
+ *
3
+ * This sentence is the whole point of the fix. The boot path used to print a PROMISE
4
+ * ("boot durable joins will reconcile when it is") and nothing else: true, but it told an operator
5
+ * nothing about what was broken MEANWHILE, so a 22-hour outage read as a progress note. The
6
+ * reconcile is real and does run once a daemon binds; what nobody was told is that until it binds,
7
+ * these three operations cannot complete. */
8
+ export const RESPONDER_UNBOUND_CONSEQUENCE = "no spawn, no retirement, no join until it binds";
9
+ /** Classify a shard-0 lease record. `undefined` means the lease key is absent, which on a mesh that
10
+ * HAS a delivery daemon recorded is an unbound responder, not a missing opinion: the daemon creates
11
+ * its lease before it binds, so no lease at all means nothing has even claimed the slot.
12
+ *
13
+ * `expectedHolder` IS NOT OPTIONAL INFORMATION WHEN IT IS KNOWABLE, and leaving it out was a real
14
+ * defect in the first cut of this fix, caught by walking the one path no cell walked. A daemon that
15
+ * is SIGKILLed (or dies any way that skips `releaseDeliveryLease`) leaves its `ready:true` record in
16
+ * the bucket for the REST OF THE BUCKET TTL. Measured on a real broker: the record survives the
17
+ * holder's death and `ready` stays true for seconds afterwards. `ready` alone therefore answers
18
+ * "did SOME daemon bind, recently enough that its record has not expired", which is NOT the question
19
+ * an operator is asking. Core learned this at #837 — `waitForDeliveryLease` demands a named holder
20
+ * for exactly this reason — and a surface whose whole purpose is to stop reporting false health had
21
+ * no business asking the weaker question.
22
+ *
23
+ * THE REALISTIC SHAPE IS A RESTART, not a contrived kill: the daemon dies, `cotal up` starts a
24
+ * replacement, and for the rest of the TTL the corpse's ready record sits in front of a live pid
25
+ * that has not bound anything yet. Reporting `bound` there is the reported incident with a new
26
+ * cause. When the caller can name the daemon it means (its creds file is on disk, and the daemon
27
+ * adopts `idFromCreds` of that file as its card id and lease holder), a foreign or dead holder's
28
+ * record classifies as `stale` rather than as health. When it genuinely cannot know — an adopted
29
+ * daemon whose creds this process never wrote — pass `undefined` and the holder is not checked,
30
+ * which is the same concession core makes and no worse than before. */
31
+ export function deliveryResponderFromLease(lease, expectedHolder) {
32
+ if (lease === undefined)
33
+ return "unbound";
34
+ if (lease.ready !== true)
35
+ return "unbound";
36
+ if (expectedHolder !== undefined && lease.holder !== expectedHolder)
37
+ return "stale";
38
+ return "bound";
39
+ }
40
+ /** Read the axis through a caller-supplied lease reader, mapping a FAILED read to `unknown` rather
41
+ * than to either health state. The reader is injected so the offline surfaces (which must not open
42
+ * a connection) and the connected ones share one classification without sharing a transport.
43
+ *
44
+ * `expectedHolder` is threaded through rather than applied by the caller so the staleness rule lives
45
+ * with the classification: a second surface that reads the lease gets the holder check by using this
46
+ * function, instead of having to remember that `ready` alone is not the question. */
47
+ export async function deliveryResponderState(readLease, expectedHolder) {
48
+ try {
49
+ return deliveryResponderFromLease(await readLease(), expectedHolder);
50
+ }
51
+ catch {
52
+ return "unknown";
53
+ }
54
+ }
55
+ /** The bare-`status` process row's delivery suffix: what the recorded PROCESS means once the
56
+ * responder axis is known.
57
+ *
58
+ * A LIVE PID WITH AN UNBOUND RESPONDER IS THE REPORTED DEFECT, so it is the case that must never
59
+ * render as a bare "running". A live pid whose responder is bound is genuinely serving and says so.
60
+ * An unchecked axis says it is unchecked and names `--components`; it never implies either. */
61
+ export function deliveryRowSuffix(live, state, componentsHint) {
62
+ if (!live)
63
+ return "";
64
+ switch (state) {
65
+ case "bound":
66
+ return " · responder bound";
67
+ case "unbound":
68
+ return ` · RESPONDER NOT BOUND - ${RESPONDER_UNBOUND_CONSEQUENCE}`;
69
+ case "stale":
70
+ // NAME THE CORPSE, not just the symptom. An operator who is told "not bound" while a ready
71
+ // record exists will reasonably go looking for a daemon that is doing something; saying the
72
+ // record belongs to a daemon that is gone points at the actual next move.
73
+ return ` · RESPONDER NOT BOUND - a DEAD daemon's ready record is still in the lease (it expires on its own) - ${RESPONDER_UNBOUND_CONSEQUENCE}`;
74
+ case "unknown":
75
+ return ` · responder state unchecked (${componentsHint})`;
76
+ }
77
+ }
78
+ //# sourceMappingURL=delivery-responder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery-responder.js","sourceRoot":"","sources":["../../src/lib/delivery-responder.ts"],"names":[],"mappings":"AA+CA;;;;;;8CAM8C;AAC9C,MAAM,CAAC,MAAM,6BAA6B,GACxC,iDAAiD,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;wEAqBwE;AACxE,MAAM,UAAU,0BAA0B,CACxC,KAAoC,EACpC,cAAuB;IAEvB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,cAAc,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,cAAc;QAAE,OAAO,OAAO,CAAC;IACpF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;sFAMsF;AACtF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,SAAuD,EACvD,cAAuB;IAEvB,IAAI,CAAC;QACH,OAAO,0BAA0B,CAAC,MAAM,SAAS,EAAE,EAAE,cAAc,CAAC,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;gGAKgG;AAChG,MAAM,UAAU,iBAAiB,CAAC,IAAa,EAAE,KAA6B,EAAE,cAAsB;IACpG,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,OAAO;YACV,OAAO,oBAAoB,CAAC;QAC9B,KAAK,SAAS;YACZ,OAAO,4BAA4B,6BAA6B,EAAE,CAAC;QACrE,KAAK,OAAO;YACV,2FAA2F;YAC3F,4FAA4F;YAC5F,0EAA0E;YAC1E,OAAO,yGAAyG,6BAA6B,EAAE,CAAC;QAClJ,KAAK,SAAS;YACZ,OAAO,iCAAiC,cAAc,GAAG,CAAC;IAC9D,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"manager-proc.d.ts","sourceRoot":"","sources":["../../src/lib/manager-proc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager-proc.d.ts","sourceRoot":"","sources":["../../src/lib/manager-proc.ts"],"names":[],"mappings":"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"}
@@ -135,6 +135,10 @@ export function startManagerDetached(o = {}) {
135
135
  // on a live or unattributable one rather than orphaning the daemon behind it.
136
136
  reclaimDeadPreUpgradeRecord(MANAGER_PIDFILE, ctx(space));
137
137
  reclaimDeadPreUpgradeRecord(MANAGER_DELIVERY_AWARE_MARKER, ctx(space));
138
+ // BEFORE THE LOG IS OPENED. `selfArgv` refuses when this process was not started from the `cotal`
139
+ // entry (#1629), and a refusal must leave the root exactly as it found it: computing the argv after
140
+ // `openSync` would create a manager log and leak its descriptor on every refused start.
141
+ const [node, ...self] = selfArgv();
138
142
  const logPath = managerLogPath(space);
139
143
  // 0600: the manager prints its console URL here, and that URL carries the console token — a
140
144
  // standing credential for every agent's terminal on this mesh, at rest for the life of the file.
@@ -149,7 +153,6 @@ export function startManagerDetached(o = {}) {
149
153
  chmodSync(logPath, 0o600);
150
154
  }
151
155
  catch { /* mode is defence in depth, not the boundary */ }
152
- const [node, ...self] = selfArgv();
153
156
  const args = [
154
157
  ...self,
155
158
  "supervise",
@@ -1 +1 @@
1
- {"version":3,"file":"manager-proc.js","sourceRoot":"","sources":["../../src/lib/manager-proc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager-proc.js","sourceRoot":"","sources":["../../src/lib/manager-proc.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,21 @@
1
1
  /** This CLI's own invocation as argv: `[node, ...loaderFlags, entryScript]`. The loader flags carry
2
2
  * tsx in dev (so a re-exec can run the `.ts` entry) and are empty in prod (entry = compiled JS).
3
3
  * Re-execed children (web, manager) and cmux pane commands use this so they never depend on
4
- * `cotal` being on PATH — works the same via `npx`, `npm i -g`, and a dev clone. */
4
+ * `cotal` being on PATH — works the same via `npx`, `npm i -g`, and a dev clone.
5
+ *
6
+ * A RE-EXEC IS ONLY VALID FROM THE CLI'S OWN ENTRY, and that is checked here rather than at each
7
+ * spawn site. Every caller appends a cotal subcommand (`supervise`, `deliver`, `ext add`) to this
8
+ * argv and detaches the child, so the entry has to be the file that READS a subcommand. Started
9
+ * from anything else the child re-runs THAT file with an argument it ignores, and a file that
10
+ * reaches this on load spawns its own successor.
11
+ *
12
+ * #1629 measured that: a smoke fixture calling `ensureControlPlane` under tsx had `process.argv[1]`
13
+ * pointing at the suite, so the detached "manager" was the suite, which ran to the same call and
14
+ * spawned the next generation. 970 generations in 4.7 hours on a persistent host, each holding a
15
+ * nats-server and a delivery holder, until the chain was killed by pid. The guard cannot live in
16
+ * the smoke harness: `startManagerDetached` unrefs its child on purpose, so nothing that owns the
17
+ * suite's children can own it. It is a THROW rather than a skipped spawn, because a re-exec that
18
+ * silently does not happen reports a healthy control plane over nothing. */
5
19
  export declare function selfArgv(): string[];
6
20
  /** True when launched via `npx` — the package is unpacked under `~/.npm/_npx/<hash>/…`. */
7
21
  export declare function isNpx(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"self-exec.d.ts","sourceRoot":"","sources":["../../src/lib/self-exec.ts"],"names":[],"mappings":"AAMA;;;qFAGqF;AACrF,wBAAgB,QAAQ,IAAI,MAAM,EAAE,CAEnC;AAED,2FAA2F;AAC3F,wBAAgB,KAAK,IAAI,OAAO,CAE/B;AAED;;;;;;qGAMqG;AACrG,wBAAgB,WAAW,IAAI,OAAO,CAcrC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,eAAe,EAAE,CAwChG;AASD;mGACmG;AACnG,wBAAgB,UAAU,IAAI,MAAM,CAInC;AAED;;8EAE8E;AAC9E,wBAAgB,SAAS,IAAI,MAAM,CAIlC"}
1
+ {"version":3,"file":"self-exec.d.ts","sourceRoot":"","sources":["../../src/lib/self-exec.ts"],"names":[],"mappings":"AAeA;;;;;;;;;;;;;;;;;6EAiB6E;AAC7E,wBAAgB,QAAQ,IAAI,MAAM,EAAE,CASnC;AAED,2FAA2F;AAC3F,wBAAgB,KAAK,IAAI,OAAO,CAE/B;AAED;;;;;;qGAMqG;AACrG,wBAAgB,WAAW,IAAI,OAAO,CAcrC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,eAAe,EAAE,CAwChG;AASD;mGACmG;AACnG,wBAAgB,UAAU,IAAI,MAAM,CAInC;AAED;;8EAE8E;AAC9E,wBAAgB,SAAS,IAAI,MAAM,CAIlC"}
@@ -1,14 +1,41 @@
1
1
  import { spawnSync } from "node:child_process";
2
2
  import { accessSync, constants, realpathSync } from "node:fs";
3
3
  import { homedir } from "node:os";
4
- import { delimiter, join } from "node:path";
4
+ import { basename, delimiter, join } from "node:path";
5
5
  import { cmdSpawnSpec, resolveOnPath } from "@cotal-ai/workspace";
6
+ /** The CLI's own composition root, by filename: `bin/cotal.ts` in a source checkout, `dist/cotal.js`
7
+ * in a published install (`bin/package.json` declares `"cotal": "./dist/cotal.js"`), and a bare
8
+ * `cotal` for `npm i -g`, which publishes `<prefix>/bin/cotal` as a SYMLINK into the package and
9
+ * leaves `process.argv[1]` on the link rather than its target. That third shape is the one an
10
+ * installed binary actually runs under, so an extension-only rule would refuse every global install.
11
+ * A filename rather than an absolute path, because a checkout, the npx cache and a global prefix
12
+ * each place the same file somewhere this module cannot derive. */
13
+ const CLI_ENTRY_FILE = /^cotal(?:\.(?:ts|js|mjs|cjs))?$/;
6
14
  /** This CLI's own invocation as argv: `[node, ...loaderFlags, entryScript]`. The loader flags carry
7
15
  * tsx in dev (so a re-exec can run the `.ts` entry) and are empty in prod (entry = compiled JS).
8
16
  * Re-execed children (web, manager) and cmux pane commands use this so they never depend on
9
- * `cotal` being on PATH — works the same via `npx`, `npm i -g`, and a dev clone. */
17
+ * `cotal` being on PATH — works the same via `npx`, `npm i -g`, and a dev clone.
18
+ *
19
+ * A RE-EXEC IS ONLY VALID FROM THE CLI'S OWN ENTRY, and that is checked here rather than at each
20
+ * spawn site. Every caller appends a cotal subcommand (`supervise`, `deliver`, `ext add`) to this
21
+ * argv and detaches the child, so the entry has to be the file that READS a subcommand. Started
22
+ * from anything else the child re-runs THAT file with an argument it ignores, and a file that
23
+ * reaches this on load spawns its own successor.
24
+ *
25
+ * #1629 measured that: a smoke fixture calling `ensureControlPlane` under tsx had `process.argv[1]`
26
+ * pointing at the suite, so the detached "manager" was the suite, which ran to the same call and
27
+ * spawned the next generation. 970 generations in 4.7 hours on a persistent host, each holding a
28
+ * nats-server and a delivery holder, until the chain was killed by pid. The guard cannot live in
29
+ * the smoke harness: `startManagerDetached` unrefs its child on purpose, so nothing that owns the
30
+ * suite's children can own it. It is a THROW rather than a skipped spawn, because a re-exec that
31
+ * silently does not happen reports a healthy control plane over nothing. */
10
32
  export function selfArgv() {
11
- return [process.execPath, ...process.execArgv, process.argv[1]];
33
+ const entry = process.argv[1];
34
+ if (entry === undefined || !CLI_ENTRY_FILE.test(basename(entry)))
35
+ throw new Error(`refusing to re-exec this process as \`cotal\`: it was started from ${entry === undefined ? "no entry file" : entry}, which is not the CLI's own entry (\`bin/cotal.ts\` in a checkout, \`dist/cotal.js\` in an install).\n` +
36
+ "A child spawned from that entry re-runs it with a cotal subcommand appended, which it does not read; if that file reaches this call on load, every child spawns the next one.\n" +
37
+ "NEXT: reach this through the `cotal` binary. A fixture that means to start a real daemon points `process.argv[1]` at the cotal entry first; one that does not must not call ensureManager, ensureDelivery or ensureControlPlane.");
38
+ return [process.execPath, ...process.execArgv, entry];
12
39
  }
13
40
  /** True when launched via `npx` — the package is unpacked under `~/.npm/_npx/<hash>/…`. */
14
41
  export function isNpx() {
@@ -1 +1 @@
1
- {"version":3,"file":"self-exec.js","sourceRoot":"","sources":["../../src/lib/self-exec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"self-exec.js","sourceRoot":"","sources":["../../src/lib/self-exec.ts"],"names":[],"mappings":"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"}