@cotal-ai/cli 0.51.0 → 0.52.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.
Files changed (130) 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 +41 -2
  5. package/dist/commands/agents.d.ts.map +1 -1
  6. package/dist/commands/agents.js +67 -18
  7. package/dist/commands/agents.js.map +1 -1
  8. package/dist/commands/clean.d.ts.map +1 -1
  9. package/dist/commands/clean.js +5 -1
  10. package/dist/commands/clean.js.map +1 -1
  11. package/dist/commands/console.d.ts.map +1 -1
  12. package/dist/commands/console.js +9 -1
  13. package/dist/commands/console.js.map +1 -1
  14. package/dist/commands/doctor.d.ts.map +1 -1
  15. package/dist/commands/doctor.js +13 -8
  16. package/dist/commands/doctor.js.map +1 -1
  17. package/dist/commands/down.d.ts.map +1 -1
  18. package/dist/commands/down.js +37 -36
  19. package/dist/commands/down.js.map +1 -1
  20. package/dist/commands/setup.d.ts +3 -0
  21. package/dist/commands/setup.d.ts.map +1 -1
  22. package/dist/commands/setup.js +20 -11
  23. package/dist/commands/setup.js.map +1 -1
  24. package/dist/commands/spawn.d.ts.map +1 -1
  25. package/dist/commands/spawn.js +18 -2
  26. package/dist/commands/spawn.js.map +1 -1
  27. package/dist/commands/status.d.ts.map +1 -1
  28. package/dist/commands/status.js +131 -35
  29. package/dist/commands/status.js.map +1 -1
  30. package/dist/commands/sync.d.ts +7 -5
  31. package/dist/commands/sync.d.ts.map +1 -1
  32. package/dist/commands/sync.js +22 -23
  33. package/dist/commands/sync.js.map +1 -1
  34. package/dist/commands/up.d.ts +7 -0
  35. package/dist/commands/up.d.ts.map +1 -1
  36. package/dist/commands/up.js +156 -19
  37. package/dist/commands/up.js.map +1 -1
  38. package/dist/commands/update.d.ts +12 -0
  39. package/dist/commands/update.d.ts.map +1 -1
  40. package/dist/commands/update.js +58 -5
  41. package/dist/commands/update.js.map +1 -1
  42. package/dist/console/app.d.ts +14 -6
  43. package/dist/console/app.d.ts.map +1 -1
  44. package/dist/console/app.js +308 -40
  45. package/dist/console/app.js.map +1 -1
  46. package/dist/console/commands.d.ts +29 -1
  47. package/dist/console/commands.d.ts.map +1 -1
  48. package/dist/console/commands.js +109 -13
  49. package/dist/console/commands.js.map +1 -1
  50. package/dist/console/control.d.ts +141 -0
  51. package/dist/console/control.d.ts.map +1 -0
  52. package/dist/console/control.js +189 -0
  53. package/dist/console/control.js.map +1 -0
  54. package/dist/console/mesh.d.ts +1 -1
  55. package/dist/console/mesh.d.ts.map +1 -1
  56. package/dist/console/root.d.ts +13 -1
  57. package/dist/console/root.d.ts.map +1 -1
  58. package/dist/console/root.js +25 -5
  59. package/dist/console/root.js.map +1 -1
  60. package/dist/console/ui/CommandPalette.d.ts +2 -1
  61. package/dist/console/ui/CommandPalette.d.ts.map +1 -1
  62. package/dist/console/ui/CommandPalette.js +3 -2
  63. package/dist/console/ui/CommandPalette.js.map +1 -1
  64. package/dist/console/ui/Confirm.d.ts +13 -4
  65. package/dist/console/ui/Confirm.d.ts.map +1 -1
  66. package/dist/console/ui/Confirm.js +13 -5
  67. package/dist/console/ui/Confirm.js.map +1 -1
  68. package/dist/console/ui/Detail.d.ts +8 -1
  69. package/dist/console/ui/Detail.d.ts.map +1 -1
  70. package/dist/console/ui/Detail.js +11 -4
  71. package/dist/console/ui/Detail.js.map +1 -1
  72. package/dist/console/ui/Help.d.ts.map +1 -1
  73. package/dist/console/ui/Help.js +3 -2
  74. package/dist/console/ui/Help.js.map +1 -1
  75. package/dist/console/ui/Roster.d.ts +9 -1
  76. package/dist/console/ui/Roster.d.ts.map +1 -1
  77. package/dist/console/ui/Roster.js +16 -5
  78. package/dist/console/ui/Roster.js.map +1 -1
  79. package/dist/console/ui/Sparkline.d.ts +13 -0
  80. package/dist/console/ui/Sparkline.d.ts.map +1 -0
  81. package/dist/console/ui/Sparkline.js +21 -0
  82. package/dist/console/ui/Sparkline.js.map +1 -0
  83. package/dist/console/ui/StatusBar.d.ts +4 -1
  84. package/dist/console/ui/StatusBar.d.ts.map +1 -1
  85. package/dist/console/ui/StatusBar.js +5 -3
  86. package/dist/console/ui/StatusBar.js.map +1 -1
  87. package/dist/console/ui/Tabs.d.ts +4 -2
  88. package/dist/console/ui/Tabs.d.ts.map +1 -1
  89. package/dist/console/ui/Tabs.js +5 -3
  90. package/dist/console/ui/Tabs.js.map +1 -1
  91. package/dist/console/ui/topo/Map.d.ts.map +1 -1
  92. package/dist/console/ui/topo/Map.js +34 -2
  93. package/dist/console/ui/topo/Map.js.map +1 -1
  94. package/dist/console/ui/topo/Matrix.d.ts.map +1 -1
  95. package/dist/console/ui/topo/Matrix.js +12 -3
  96. package/dist/console/ui/topo/Matrix.js.map +1 -1
  97. package/dist/console/ui/topo/Sequence.js +1 -1
  98. package/dist/console/ui/topo/Sequence.js.map +1 -1
  99. package/dist/console/ui/topo/Topo.d.ts +10 -2
  100. package/dist/console/ui/topo/Topo.d.ts.map +1 -1
  101. package/dist/console/ui/topo/Topo.js +6 -4
  102. package/dist/console/ui/topo/Topo.js.map +1 -1
  103. package/dist/console/ui/topo/model.d.ts +50 -2
  104. package/dist/console/ui/topo/model.d.ts.map +1 -1
  105. package/dist/console/ui/topo/model.js +69 -6
  106. package/dist/console/ui/topo/model.js.map +1 -1
  107. package/dist/lib/attach-client.d.ts.map +1 -1
  108. package/dist/lib/attach-client.js +7 -1
  109. package/dist/lib/attach-client.js.map +1 -1
  110. package/dist/lib/auth-proc.d.ts +7 -4
  111. package/dist/lib/auth-proc.d.ts.map +1 -1
  112. package/dist/lib/auth-proc.js +26 -7
  113. package/dist/lib/auth-proc.js.map +1 -1
  114. package/dist/lib/delivery-proc.d.ts +10 -2
  115. package/dist/lib/delivery-proc.d.ts.map +1 -1
  116. package/dist/lib/delivery-proc.js +7 -1
  117. package/dist/lib/delivery-proc.js.map +1 -1
  118. package/dist/lib/status.d.ts +5 -3
  119. package/dist/lib/status.d.ts.map +1 -1
  120. package/dist/lib/status.js +16 -3
  121. package/dist/lib/status.js.map +1 -1
  122. package/dist/lib/teardown-spare.d.ts +16 -0
  123. package/dist/lib/teardown-spare.d.ts.map +1 -0
  124. package/dist/lib/teardown-spare.js +46 -0
  125. package/dist/lib/teardown-spare.js.map +1 -0
  126. package/dist/view/mesh-view.d.ts +41 -1
  127. package/dist/view/mesh-view.d.ts.map +1 -1
  128. package/dist/view/mesh-view.js +107 -8
  129. package/dist/view/mesh-view.js.map +1 -1
  130. package/package.json +14 -7
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,8 @@ export interface DetachOpts {
24
24
  transport: BrokerTransport;
25
25
  server?: string;
26
26
  storeDir?: string;
27
+ /** JetStream file storage cap in bytes (`--max-file-store`), rendered and recorded by this boot. */
28
+ maxFileStore?: number;
27
29
  space?: string;
28
30
  open?: boolean;
29
31
  /** USER MODE: enable per-user auth (presence = on; `idpUrl` pins the IdP on first enable). */
@@ -51,6 +53,11 @@ export interface DetachOpts {
51
53
  resumeAttempt?: string;
52
54
  resumeCommitToken?: string;
53
55
  maxSessions?: number;
56
+ /** #1417 broker-only boot (`--no-manager`): no manager starts with this broker. An `up -f` under
57
+ * the flag boots the broker + channels and launches NO agents from this host — a manifest's
58
+ * agents are booted by its manager, so a launch spec under `--no-manager` would promise a boot
59
+ * nothing can deliver. Refused at the flag level; carried here so every path is explicit. */
60
+ noManager?: boolean;
54
61
  /** Maintenance-bound listener (restore target or ordinary-resume source): named spawn, durable
55
62
  * ownership bind immediately after, wire verification after readiness. */
56
63
  boundListener?: {
@@ -1 +1 @@
1
- {"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"AAkBA,OAAO,EAOL,KAAK,eAAe,EAgBpB,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EA+BL,KAAK,SAAS,EAqBd,KAAK,eAAe,EAarB,MAAM,qBAAqB,CAAC;AA0D7B,yGAAyG;AACzG,eAAO,MAAM,OAAO,EAAE,QAAQ,EA4B7B,CAAC;AAEF;;;qGAGqG;AACrG,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAS3D;AAED;2FAC2F;AAC3F,wBAAsB,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAWzF;AAo8DD,MAAM,WAAW,UAAU;IACzB;;;;;;;;;OASG;IACH,SAAS,EAAE,eAAe,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oGAAoG;IACpG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8FAA8F;IAC9F,QAAQ,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B;;4FAEwF;IACxF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;qEACiE;IACjE,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,sFAAsF;IACtF,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC;wDACoD;IACpD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;yGACqG;IACrG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;kGAG8F;IAC9F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;+EAC2E;IAC3E,aAAa,CAAC,EAAE;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9C,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;KACzB,CAAC;IACF,gGAAgG;IAChG,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAGrC,IAAI,EAAE,UAAU,GACf,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAuI5I;AA2DD;;;;;oGAKoG;AACpG,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAc3F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAElF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEnF;AAWD;;;+DAG+D;AAC/D;;;;;;;;;;GAUG;AACH,KAAK,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAExC;;mCAEmC;AACnC,eAAO,MAAM,oBAAoB,GAAI,GAAG,SAAS,EAAE,YAAY,UAAU,KAAG,IAAoC,CAAC"}
@@ -6,7 +6,7 @@ import { mkdirSync, writeFileSync, readFileSync, existsSync, openSync, statSync,
6
6
  import { dirname, join, resolve } from "node:path";
7
7
  import { isReachable, DEFAULT_SERVER, createSpaceAuth, serverConfig, openServerConfig, validateTlsMaterial, mintCreds, mintLifecycleUid, DEV_OWNER, mintConnectionEvictorCreds, mintMembershipObserverCreds, newIdentity, setupSpaceStreams, reconcileSpaceTtls, standaloneConnectOpts, seedChannelRegistry, ensureDefaultDeliveryClass, mkSecretDir, writeSecretFile, } from "@cotal-ai/core";
8
8
  import { connect } from "@nats-io/transport-node";
9
- import { assertSingleSpaceBroker, assertUserAuthInfo, authDir, getSoleSpaceAuth, getSpaceAuth, hasUserAuthState, listSpaceAccounts, preloadSpaceAccounts, putSpaceAuth, clearCurrent, findMesh, getCurrent, loadMeshes, connectionEvictorCredsKey, membershipConfigPath, membershipObserverCredsKey, membershipRwCredsKey, MEMBERSHIP_CONFIG_KIND, MEMBERSHIP_RW_CREDS_KIND, parsePositiveIntegerFlag, recordMesh, meshesForRoot, removeMesh, rotateSystemCreds, setCurrent, staleSystemCreds, SYSTEM_CREDS_FILES, userAuthStateDir, userAuthSpacesOnDisk, workspaceSecretStore, acquireMaintenanceLock, assertStoreIdentity, assessRestoreClaim, beginOrdinaryResume, bindOrdinaryResumeListener, consumeRetiredMaintenance, markOrdinaryResumeActive, markOrdinaryResumeDegraded, replaceDeadOrdinaryResumeListener, localProcessOwnerStatus, readMaintenanceJournal, readMaintenanceResumeDocument, seatCheckpointDir, readStoreIdentity, recordOrdinaryResumeManagerCommit, releaseMaintenanceLock, retireOrdinaryResume, sameStoreIdentity, readBrokerPolicy, writeBrokerPolicy, removeIdentityPin, writeIdentityPin, } from "@cotal-ai/workspace";
9
+ import { assertSingleSpaceBroker, assertUserAuthInfo, authDir, getSoleSpaceAuth, getSpaceAuth, hasUserAuthState, listSpaceAccounts, preloadSpaceAccounts, putSpaceAuth, clearCurrent, findMesh, getCurrent, loadMeshes, connectionEvictorCredsKey, membershipConfigPath, membershipObserverCredsKey, membershipRwCredsKey, MEMBERSHIP_CONFIG_KIND, MEMBERSHIP_RW_CREDS_KIND, parsePositiveIntegerFlag, recordMesh, meshesForRoot, removeMesh, rotateSystemCreds, setCurrent, staleSystemCreds, SYSTEM_CREDS_FILES, userAuthStateDir, userAuthSpacesOnDisk, workspaceSecretStore, acquireMaintenanceLock, assertStoreIdentity, assessRestoreClaim, beginOrdinaryResume, bindOrdinaryResumeListener, consumeRetiredMaintenance, markOrdinaryResumeActive, markOrdinaryResumeDegraded, replaceDeadOrdinaryResumeListener, localProcessOwnerStatus, readMaintenanceJournal, readMaintenanceResumeDocument, seatCheckpointDir, readStoreIdentity, recordOrdinaryResumeManagerCommit, releaseMaintenanceLock, retireOrdinaryResume, sameStoreIdentity, readBrokerPolicy, writeBrokerPolicy, removeIdentityPin, writeIdentityPin, localProcessPath, MANAGER_PIDFILE, assertManagerCanSpare, verifyIdentityPin, } from "@cotal-ai/workspace";
10
10
  import { ensureAuthService, resolveAuthProvider, stopAuthService } from "../lib/auth-proc.js";
11
11
  import { resolveSpace } from "../lib/status.js";
12
12
  import { c } from "../ui.js";
@@ -19,6 +19,7 @@ import { deliveryUp, ensureControlPlane, stopDelivery } from "../lib/delivery-pr
19
19
  import { RESPONDER_UNBOUND_CONSEQUENCE } from "../lib/delivery-responder.js";
20
20
  import { displayCmd } from "../lib/self-exec.js";
21
21
  import { liveManagerWouldApplyMaxSessions, managerHasDeliveryMarker, managerLogDisplayPath, managerRecordState, managerUp, stopManager } from "../lib/manager-proc.js";
22
+ import { listManagerSeatsForSpare, printLegacyManagerSpareUncertainty, printSparedAgents } from "../lib/teardown-spare.js";
22
23
  import { loadManifest } from "../lib/manifest/index.js";
23
24
  import { buildLaunchSpec, genRunId, manifestToChannels, preflightConnectors, writeLaunchSpec } from "../lib/manifest/apply.js";
24
25
  import { renderUpPlan, renderInherited, renderWarnings } from "../lib/manifest/render.js";
@@ -35,6 +36,7 @@ export const upFlags = [
35
36
  { name: "host", type: "string", value: "<host>", description: "bind host override (an IP/hostname, not a URL; the URL is --server)" },
36
37
  { name: "space", type: "string", value: "<s>", description: "space name (default: the folder's)" },
37
38
  { name: "store-dir", type: "string", value: "<dir>", description: "JetStream store directory" },
39
+ { name: "max-file-store", type: "string", value: "<bytes>", description: "JetStream file storage cap in bytes (default: nats-server's dynamic cap). Fixed at broker start; recorded and kept across `down --preserve-state`" },
38
40
  { name: "channels", type: "string", value: "<path>", description: "channel-registry seed file (JSON; default .cotal/channels.json)" },
39
41
  { name: "tls-cert", type: "string", value: "<file>", description: "serve the broker over TLS with this certificate (requires --tls-key)" },
40
42
  { name: "tls-key", type: "string", value: "<file>", description: "the private key for --tls-cert" },
@@ -54,6 +56,7 @@ export const upFlags = [
54
56
  { name: "detach", type: "boolean", description: "run in the background (stop with `cotal down`)" },
55
57
  { name: "runtime", type: "string", value: "<name>", description: "agent runtime for the mesh manager (default pty; extension runtimes are explicit-only, see `cotal runtimes`); with -f overrides the manifest's runtime" },
56
58
  { name: "max-sessions", type: "string", value: "<n>", description: "live-session ceiling for the mesh manager (default 64; one session per console pane, so size for agents × panes). Recorded and reused by later manager launches" },
59
+ { name: "no-manager", type: "boolean", description: "broker-only boot: start the broker and, in auth mode, the delivery daemon, and no local manager (refuses on a mesh whose manager is live)" },
57
60
  { name: "file", type: "string", short: "f", value: "<cotal.yaml>", description: "launch a whole mesh from a manifest" },
58
61
  { name: "dry-run", type: "boolean", description: "with -f: print the plan, mutate nothing" },
59
62
  ];
@@ -145,6 +148,11 @@ async function runUp(args, inheritedLock, onAdopt) {
145
148
  // read. A rotation is a stopped, fresh boot; a half-finished maintenance attempt is neither.
146
149
  if (values["rotate-sys"] && (values.__restoreAttempt || values.__ordinaryResumeAttempt))
147
150
  throw new Error("--rotate-sys cannot run during a restore/resume re-entry - finish or roll back the maintenance attempt, then `cotal down` and `cotal up --rotate-sys`");
151
+ // Same seam, same reason: a restore/resume re-entry needs the manager to commit the preserved
152
+ // inventory (completeResumeActivation asks it for resumePreserved/commitResume/finalizeResume), so
153
+ // a broker-only ask there is a contradiction to refuse, never a flag to drop mid-recovery.
154
+ if (values["no-manager"] && (values.__restoreAttempt || values.__ordinaryResumeAttempt))
155
+ throw new Error("--no-manager cannot run during a restore/resume re-entry - the resume needs a manager to commit the preserved inventory; finish or roll back the maintenance attempt first");
148
156
  if (!values.__restoreAttempt && !values.__ordinaryResumeAttempt && !values.file) {
149
157
  const root = cotalRoot();
150
158
  // Same refusal for the AUTO-recovered journal, raised before the recovery is prepared and
@@ -152,6 +160,11 @@ async function runUp(args, inheritedLock, onAdopt) {
152
160
  // `up` that has already begun adopting a maintenance attempt.
153
161
  if (values["rotate-sys"] && readMaintenanceJournal(root))
154
162
  throw new Error("--rotate-sys is refused while this root has a maintenance attempt to recover - finish or roll back that attempt (`cotal up` alone recovers it), then `cotal down` and `cotal up --rotate-sys`");
163
+ // Raised here for the stronger reason the journal itself carries: a pending maintenance attempt
164
+ // means the store is mid-recovery, and a broker-only boot over it is wrong with or without the
165
+ // manager half. The manager half is why the FLAG specifically cannot apply.
166
+ if (values["no-manager"] && readMaintenanceJournal(root))
167
+ throw new Error("--no-manager is refused while this root has a maintenance attempt to recover - a resume needs a manager to commit the preserved inventory; recover it (`cotal up` alone) or roll it back first");
155
168
  const lock = acquireMaintenanceLock(root);
156
169
  let pending;
157
170
  let recoveredRestore;
@@ -205,6 +218,12 @@ async function runUp(args, inheritedLock, onAdopt) {
205
218
  // Journal the CANONICAL identity-checked path, never the caller's spelling: a relative or
206
219
  // symlinked spelling re-resolved later (other cwd, retargeted link) could open another store.
207
220
  const resumeStore = journal.source.path;
221
+ // The cap is part of the preserved launch, like the store: a resume re-renders it, and a
222
+ // different --max-file-store is refused rather than silently resizing the preserved broker.
223
+ const resumeMaxFileStore = journaledMaxFileStore(launch.maxFileStore);
224
+ const requestedMaxFileStore = parsePositiveIntegerFlag("--max-file-store", values["max-file-store"]);
225
+ if (requestedMaxFileStore !== undefined && requestedMaxFileStore !== resumeMaxFileStore)
226
+ throw new Error(`--max-file-store ${requestedMaxFileStore} is not the preserved launch cap (${resumeMaxFileStore ?? "unset"}); ordinary up resumes exactly the preserved cap - omit --max-file-store`);
208
227
  if (values.runtime && runtimes[0] && values.runtime !== runtimes[0])
209
228
  throw new Error(`--runtime ${values.runtime} contradicts the preserved agent runtime ${runtimes[0]}; omit it to resume the same principals`);
210
229
  const resumeRuntime = values.runtime ?? runtimes[0] ?? "pty";
@@ -219,6 +238,7 @@ async function runUp(args, inheritedLock, onAdopt) {
219
238
  launch: {
220
239
  server: resumeServer,
221
240
  storeDir: resumeStore,
241
+ ...(resumeMaxFileStore !== undefined ? { maxFileStore: resumeMaxFileStore } : {}),
222
242
  runtime: resumeRuntime,
223
243
  detached: Boolean(values.detach),
224
244
  serverName,
@@ -238,6 +258,7 @@ async function runUp(args, inheritedLock, onAdopt) {
238
258
  mode: journal.mode,
239
259
  server: resumeServer,
240
260
  storeDir: resumeStore,
261
+ ...(resumeMaxFileStore !== undefined ? { maxFileStore: resumeMaxFileStore } : {}),
241
262
  runtime: resumeRuntime,
242
263
  detached: Boolean(values.detach),
243
264
  inventory: resume.inventory,
@@ -251,6 +272,10 @@ async function runUp(args, inheritedLock, onAdopt) {
251
272
  const resume = readMaintenanceResumeDocument(root, journal.resume);
252
273
  const launch = journal.ordinaryResume.launch;
253
274
  const attemptId = journal.ordinaryResume.attemptId;
275
+ const recoveredMaxFileStore = journaledMaxFileStore(launch.maxFileStore);
276
+ const requestedMaxFileStore = parsePositiveIntegerFlag("--max-file-store", values["max-file-store"]);
277
+ if (requestedMaxFileStore !== undefined && requestedMaxFileStore !== recoveredMaxFileStore)
278
+ throw new Error(`--max-file-store ${requestedMaxFileStore} is not the preserved launch cap (${recoveredMaxFileStore ?? "unset"}); resume attempt ${attemptId} re-renders exactly the preserved cap - omit --max-file-store`);
254
279
  // Recovery re-asserts the source identity rather than trusting the journaled spelling.
255
280
  assertStoreIdentity(journal.source);
256
281
  // The bound listener decides re-entry: a live exact listener is ADOPTED, a provably dead
@@ -295,6 +320,7 @@ async function runUp(args, inheritedLock, onAdopt) {
295
320
  mode: journal.mode,
296
321
  server: typeof launch.server === "string" ? launch.server : DEFAULT_SERVER,
297
322
  storeDir: journal.source.path,
323
+ ...(recoveredMaxFileStore !== undefined ? { maxFileStore: recoveredMaxFileStore } : {}),
298
324
  runtime: typeof launch.runtime === "string" ? launch.runtime : "pty",
299
325
  detached: launch.detached === true,
300
326
  inventory: resume.inventory,
@@ -353,6 +379,7 @@ async function runUp(args, inheritedLock, onAdopt) {
353
379
  space: pending.space,
354
380
  server: pending.server,
355
381
  "store-dir": pending.storeDir,
382
+ "max-file-store": pending.maxFileStore === undefined ? undefined : String(pending.maxFileStore),
356
383
  runtime: pending.runtime,
357
384
  detach: pending.detached,
358
385
  open: pending.mode === "open",
@@ -382,8 +409,22 @@ async function runUp(args, inheritedLock, onAdopt) {
382
409
  if (values.idp && !wantUser && !values.file) {
383
410
  throw new Error('--idp is for user-auth spaces; pair it with --user-auth, or set broker.auth: "user" in a manifest');
384
411
  }
412
+ // BROKER-ONLY MODE (#1417). `--no-manager` names what it omits, and the two manager-shaping flags
413
+ // are refused beside it rather than silently dropped: a runtime selected or a ceiling recorded for
414
+ // a manager that will never start is a misunderstanding, and dropping it quietly is the exact
415
+ // silent-no-op shape this repo refuses everywhere else.
416
+ const noManager = Boolean(values["no-manager"]);
417
+ if (noManager && values.runtime)
418
+ throw new Error("--no-manager cannot be combined with --runtime - no manager starts, so there is no runtime to select; drop --runtime, or drop --no-manager");
419
+ if (noManager && values["max-sessions"])
420
+ throw new Error("--no-manager cannot be combined with --max-sessions - no manager starts, so there is no session ceiling to set; drop --max-sessions, or drop --no-manager");
385
421
  const publicExchange = publicExchangeArgs(values, wantUser);
386
422
  const maxSessions = parsePositiveIntegerFlag("--max-sessions", values["max-sessions"]);
423
+ const maxFileStore = parsePositiveIntegerFlag("--max-file-store", values["max-file-store"]);
424
+ // The manifest path renders its broker from the manifest, which has no store fields, so the flag
425
+ // would be accepted and never rendered. Refuse it rather than drop it.
426
+ if (maxFileStore !== undefined && values.file)
427
+ throw new Error("--max-file-store cannot be combined with --file/-f - a manifest launch does not render a store cap; drop --max-file-store, or start the mesh without -f");
387
428
  // An open mesh has no operator, no system account, and no $SYS creds, so there is nothing to
388
429
  // rotate; the request is a misunderstanding to name, never a silent no-op that reports success.
389
430
  if (values["rotate-sys"] && values.open) {
@@ -473,6 +514,7 @@ async function runUp(args, inheritedLock, onAdopt) {
473
514
  idp: values.idp,
474
515
  rotateSys: values["rotate-sys"],
475
516
  maxSessions,
517
+ noManager,
476
518
  });
477
519
  return;
478
520
  }
@@ -491,6 +533,7 @@ async function runUp(args, inheritedLock, onAdopt) {
491
533
  idp: values.idp,
492
534
  rotateSys: values["rotate-sys"],
493
535
  maxSessions,
536
+ noManager,
494
537
  });
495
538
  }
496
539
  finally {
@@ -628,6 +671,13 @@ async function runUp(args, inheritedLock, onAdopt) {
628
671
  console.error(c.red(`✗ mesh "${held.space}" is already running at ${server} - a running broker can't change its transport; \`cotal down\` it first, then \`cotal up --tls-cert <cert> --tls-key <key>\``));
629
672
  process.exit(1);
630
673
  }
674
+ // The store cap is fixed when nats-server reads its config, and nats-server refuses a reload
675
+ // from its dynamic cap to an explicit one. This branch starts nothing, so a different cap can
676
+ // only be refused; the same cap is a no-op.
677
+ if (maxFileStore !== undefined && maxFileStore !== held.maxFileStore) {
678
+ console.error(c.red(`✗ mesh "${held.space}" is already running at ${server} - a running broker can't change --max-file-store (it is fixed at start); \`cotal down\` it first, then \`cotal up --max-file-store ${maxFileStore}\``));
679
+ process.exit(1);
680
+ }
631
681
  // `--max-sessions` is fixed when the manager starts. A refresh reuses a live manager as-is
632
682
  // (`ensureManager` returns immediately), then used to persist the requested ceiling anyway.
633
683
  // That printed `✓ already running` over an unchanged plane and left MeshEntry lying about it.
@@ -640,6 +690,18 @@ async function runUp(args, inheritedLock, onAdopt) {
640
690
  process.exit(1);
641
691
  }
642
692
  }
693
+ // `--no-manager` on a refresh whose manager is LIVE is the same class of refusal: this branch
694
+ // starts nothing, so the flag cannot apply, and silently keeping the manager would answer a
695
+ // broker-only ask with a full stack while silently stopping it would kill agents this command
696
+ // was never asked to touch. Same shape as `--runtime`/`--max-sessions` above: refuse, name the
697
+ // exact remedy. A refresh of a mesh whose manager is NOT live simply proceeds broker-only.
698
+ if (noManager) {
699
+ const live = managerRecordState(undefined, undefined, held.space);
700
+ if (live.state === "alive") {
701
+ console.error(c.red(`✗ mesh "${held.space}" is already running at ${server} with a live manager - \`cotal up --no-manager\` will not keep or stop one; \`cotal down manager\` first, then \`cotal up --no-manager\``));
702
+ process.exit(1);
703
+ }
704
+ }
643
705
  // Live INFO must agree with the recorded/requested transport. A bare refresh that greets
644
706
  // "already running" over a plaintext listener while policy claims TLS is S5's second half —
645
707
  // the refuse left a durable lie and this path used to reprint TLS success over cleartext.
@@ -751,6 +813,7 @@ async function runUp(args, inheritedLock, onAdopt) {
751
813
  runtime: values.runtime,
752
814
  attachHost: attachHostFor(held.space, values.host),
753
815
  maxSessions: maxSessionsFor(held.space, maxSessions),
816
+ noManager,
754
817
  });
755
818
  if (!controlPlane)
756
819
  process.exitCode = 1;
@@ -763,7 +826,7 @@ async function runUp(args, inheritedLock, onAdopt) {
763
826
  // no transport decision to record — and `recordOurMesh` writes the entry whole, so omitting
764
827
  // the field here would erase the requirement on every bare refresh, exactly the way dropping
765
828
  // `attachHost` would silently demote the mesh to loopback.
766
- recordOurMesh({ space: held.space, server, root, mode: held.mode, ...(held.tlsRequired !== undefined ? { tlsRequired: held.tlsRequired } : {}), ...(userAuth ? { userAuth } : {}), ...(heldAttachHost ? { attachHost: heldAttachHost } : {}), ...(heldMaxSessions !== undefined ? { maxSessions: heldMaxSessions } : {}), ts: new Date().toISOString() }, "refresh");
829
+ recordOurMesh({ space: held.space, server, root, mode: held.mode, ...(held.tlsRequired !== undefined ? { tlsRequired: held.tlsRequired } : {}), ...(userAuth ? { userAuth } : {}), ...(heldAttachHost ? { attachHost: heldAttachHost } : {}), ...(heldMaxSessions !== undefined ? { maxSessions: heldMaxSessions } : {}), ...(held.maxFileStore !== undefined ? { maxFileStore: held.maxFileStore } : {}), ts: new Date().toISOString() }, "refresh");
767
830
  return;
768
831
  }
769
832
  const who = held ? `mesh "${held.space}" (${held.root})` : "a broker not started here";
@@ -795,6 +858,7 @@ async function runUp(args, inheritedLock, onAdopt) {
795
858
  transport,
796
859
  server,
797
860
  storeDir: values["store-dir"],
861
+ maxFileStore,
798
862
  space: values.space,
799
863
  open: values.open,
800
864
  userAuth: wantUser ? { idpUrl: values.idp } : undefined,
@@ -807,6 +871,7 @@ async function runUp(args, inheritedLock, onAdopt) {
807
871
  host: values.host,
808
872
  runtime: values.runtime,
809
873
  maxSessions,
874
+ noManager,
810
875
  resumeAttempt,
811
876
  resumeCommitToken: restored?.managerCommit?.durableCommitToken ?? ordinaryAttempt?.managerCommit?.durableCommitToken,
812
877
  ...(restored ? {
@@ -862,14 +927,14 @@ async function runUp(args, inheritedLock, onAdopt) {
862
927
  // Decided above the branch; the dial host is only settled here (a port collision may have moved
863
928
  // the server, and the hostname is what the certificate has to match).
864
929
  assertServesDialHost(transport, new URL(server).hostname);
865
- const setup = useAuth ? await authSetup(storeDir, server, space, host, wantUser ? { idpUrl: values.idp } : undefined, transport, values["rotate-sys"]) : undefined;
930
+ const setup = useAuth ? await authSetup(storeDir, server, space, host, wantUser ? { idpUrl: values.idp } : undefined, transport, values["rotate-sys"], maxFileStore) : undefined;
866
931
  const port = Number(new URL(server).port) || 4222;
867
932
  const restored = resumeAttempt ? pendingRestores.get(resumeAttempt) : undefined;
868
933
  // Both modes go through a RENDERER, never bare CLI flags. Open mode used to start from
869
934
  // `-js -sd … -p … -a …`, which never called a renderer at all — so the required transport union
870
935
  // protected the auth path and was silent on the open one, and a cert/key pair passed to an
871
936
  // open-mode `up` would have been accepted while the listener came up in cleartext.
872
- const confPath = setup ? setup.confPath : writeOpenBrokerConf(storeDir, { port, host, transport });
937
+ const confPath = setup ? setup.confPath : writeOpenBrokerConf(storeDir, { port, host, transport, maxFileStore });
873
938
  const natsArgs = [
874
939
  "-c", confPath,
875
940
  ...(restored ? ["--name", restored.serverName]
@@ -919,15 +984,58 @@ async function runUp(args, inheritedLock, onAdopt) {
919
984
  // stopDelivery is async (its creds delete goes through the secret store); the rest of the teardown
920
985
  // must run even if it fails — the failure is logged, never swallowed silently, and the daemon kill
921
986
  // itself happens inside stopDelivery's finally. Order preserved: delivery, manager, auth, broker.
987
+ // The manager stop is the SPARING one `cotal down` performs (#1307): the seat snapshot is taken
988
+ // while the manager still answers, the spare capability of the exact recorded process is asserted
989
+ // before any signal, and the seats left behind are reported with the reap route. Teardown is
990
+ // AWAITED before the broker is signalled — the same order the broker-exit handler below uses — so
991
+ // manager teardown never races a broker that is already going away.
992
+ let stopping = false;
922
993
  const stop = () => {
923
- void stopDelivery(undefined, undefined, space)
924
- .catch((e) => console.error(`! delivery teardown: ${e.message}`))
925
- .then(() => {
926
- void stopManager(undefined, undefined, undefined, space)
927
- .then(() => stopAuthService(space))
928
- .catch((e) => console.error(`! teardown: ${e.message}`));
994
+ if (stopping)
995
+ return; // a second Ctrl-C during teardown must not start a second teardown
996
+ stopping = true;
997
+ void (async () => {
998
+ const managerContext = { root: cotalRoot(), space };
999
+ let spared;
1000
+ let legacyManagerSpareUnverified = false;
1001
+ const managerPidPath = localProcessPath(MANAGER_PIDFILE, managerContext);
1002
+ if (existsSync(managerPidPath)) {
1003
+ const pin = verifyIdentityPin(managerPidPath);
1004
+ if (pin.kind === "legacy")
1005
+ legacyManagerSpareUnverified = true;
1006
+ else if (pin.kind === "match") {
1007
+ spared = await listManagerSeatsForSpare(managerContext);
1008
+ try {
1009
+ assertManagerCanSpare(managerContext, undefined, pin.record);
1010
+ }
1011
+ catch (e) {
1012
+ // THE CAPABILITY ASSERT IS THE SIGNAL GATE, the same rule bare `down` enforces inside
1013
+ // its beforeSignal hook: a throw there signals nothing. Signal NOTHING here either — no
1014
+ // manager, no delivery, no auth, no broker — print the refusal with the reap route, and
1015
+ // release the latch so the stack keeps running in the foreground; the operator ends it
1016
+ // with `cotal down --with-agents` from another terminal, and the broker-exit handler
1017
+ // below already ends `up` when the broker goes.
1018
+ console.error(c.red(`! teardown: ${e.message}`));
1019
+ console.error(c.red(`the stack is still running; to take managed agents with it, run: cotal down --with-agents`));
1020
+ stopping = false;
1021
+ return;
1022
+ }
1023
+ }
1024
+ }
1025
+ await stopDelivery(undefined, undefined, space).catch((e) => console.error(`! delivery teardown: ${e.message}`));
1026
+ try {
1027
+ await stopManager(undefined, undefined, undefined, space);
1028
+ if (legacyManagerSpareUnverified)
1029
+ printLegacyManagerSpareUncertainty();
1030
+ else if (spared)
1031
+ printSparedAgents(spared);
1032
+ }
1033
+ catch (e) {
1034
+ console.error(`! manager teardown: ${e.message}`);
1035
+ }
1036
+ await stopAuthService(space).catch((e) => console.error(`! auth teardown: ${e.message}`));
929
1037
  child.kill("SIGTERM");
930
- });
1038
+ })();
931
1039
  };
932
1040
  process.on("SIGINT", stop);
933
1041
  process.on("SIGTERM", stop);
@@ -1001,6 +1109,7 @@ async function runUp(args, inheritedLock, onAdopt) {
1001
1109
  // though the operator had chosen it.
1002
1110
  ...(effectiveAttachHost ? { attachHost: effectiveAttachHost } : {}),
1003
1111
  ...(effectiveMaxSessions !== undefined ? { maxSessions: effectiveMaxSessions } : {}),
1112
+ ...(maxFileStore !== undefined ? { maxFileStore } : {}),
1004
1113
  ts: new Date().toISOString(),
1005
1114
  }, "started");
1006
1115
  // Bring up the delivery daemon WITH the server (auth mode only — it self-gates on `.cotal/auth`).
@@ -1014,6 +1123,7 @@ async function runUp(args, inheritedLock, onAdopt) {
1014
1123
  // is never a side effect of anything but the operator binding the mesh somewhere reachable.
1015
1124
  attachHost: effectiveAttachHost,
1016
1125
  maxSessions: effectiveMaxSessions,
1126
+ noManager,
1017
1127
  resumeAttempt,
1018
1128
  resumeCommitToken: restored?.managerCommit?.durableCommitToken ?? ordinaryAttempt?.managerCommit?.durableCommitToken,
1019
1129
  wsPort: setup?.wsPort, // P2 item 6: the console session client's broker ws port
@@ -1365,6 +1475,7 @@ async function resumeProvenOrdinaryListener(pending, heldLock) {
1365
1475
  ...(svc.userAuth ? { userAuth: svc.userAuth } : {}),
1366
1476
  ...(adoptAttachHost ? { attachHost: adoptAttachHost } : {}),
1367
1477
  ...(adoptMaxSessions !== undefined ? { maxSessions: adoptMaxSessions } : {}),
1478
+ ...(pending.maxFileStore !== undefined ? { maxFileStore: pending.maxFileStore } : {}),
1368
1479
  ts: new Date().toISOString(),
1369
1480
  }, "started");
1370
1481
  const controlPlane = await startDeliveryWithBroker(pending.space, pending.server, adoptedTlsRequired(pending.root), {
@@ -1687,6 +1798,12 @@ async function upManifest(file, opts) {
1687
1798
  const open = m.broker?.auth === false; // default is auth
1688
1799
  const userAuth = m.broker?.auth === "user" ? { idpUrl: opts.idp ?? m.broker?.idp } : undefined; // flag > manifest
1689
1800
  const runtime = m.runtime ?? "pty";
1801
+ // A manifest's agents are booted BY the manager `up -f` starts with the mesh, so `--no-manager`
1802
+ // against a manifest declaring agents asks for a boot that cannot deliver its own plan. Refused
1803
+ // before the dry-run print and before anything boots, with the two workable spellings named.
1804
+ if (opts.noManager && eff.agents.length)
1805
+ throw new Error(`--no-manager cannot launch this manifest: it declares ${eff.agents.length} agent(s), and a manifest's agents are booted by its manager (which --no-manager omits). Deploy it from a manager host with \`cotal spawn -f\`, or drop --no-manager.`);
1806
+ const effectiveNoManager = Boolean(opts.noManager);
1690
1807
  // The open-mesh refusal must be RE-STATED here, not only against the CLI `--open` flag: on this
1691
1808
  // path openness comes from the MANIFEST (`broker.auth: false`), which the flag-level guard cannot
1692
1809
  // see. Without it, `cotal up -f open.yaml --rotate-sys` boots an open broker, exits 0 and rotates
@@ -1703,6 +1820,10 @@ async function upManifest(file, opts) {
1703
1820
  if (opts.transport.kind === "tls-required")
1704
1821
  announceTransport(opts.transport);
1705
1822
  console.log(renderUpPlan(eff, server));
1823
+ // The omission is part of the plan (#1417): a dry run that lists a manager the real boot
1824
+ // will not start is the exact "green-lit a launch the applying command refuses" failure.
1825
+ if (effectiveNoManager)
1826
+ console.log(c.dim(" no manager will start on this host (--no-manager): broker, channels and, in auth mode, the delivery daemon come up, and no agents launch from here"));
1706
1827
  return;
1707
1828
  }
1708
1829
  // Preflight an extension runtime before starting the broker. The detached manager re-execs this
@@ -1756,7 +1877,7 @@ async function upManifest(file, opts) {
1756
1877
  try {
1757
1878
  // `m.broker?.host`, not the defaulted `host`: same reason as the flag path — only a host the
1758
1879
  // manifest actually declared is an exposure decision worth persisting.
1759
- ({ pid, controlPlane, authService } = await startMeshDetached({ transport: opts.transport, server, space: m.space, open, userAuth, rotateSys: opts.rotateSys, host: m.broker?.host, seed: manifestToChannels(eff), runtime, launch: specPath, maxSessions: opts.maxSessions }));
1880
+ ({ pid, controlPlane, authService } = await startMeshDetached({ transport: opts.transport, server, space: m.space, open, userAuth, rotateSys: opts.rotateSys, host: m.broker?.host, seed: manifestToChannels(eff), runtime, launch: specPath, maxSessions: opts.maxSessions, noManager: effectiveNoManager }));
1760
1881
  }
1761
1882
  catch (e) {
1762
1883
  console.error(c.red(`✗ ${e.message}`));
@@ -1767,7 +1888,12 @@ async function upManifest(file, opts) {
1767
1888
  console.log(c.dim(` seeded ${m.channels.length} channel(s): ${m.channels.map((ch) => "#" + ch.name).join(", ")}`));
1768
1889
  // Never claim a launch the control plane can't deliver: the manager carries the launch spec, so a
1769
1890
  // degraded control plane (announced above) means the agents are NOT coming up.
1770
- if (controlPlane) {
1891
+ if (effectiveNoManager) {
1892
+ // Truthful summary for the broker-only boot (#1417): nothing was omitted by accident, and the
1893
+ // agents this manifest declares (none — a declaring manifest is refused above) launch elsewhere.
1894
+ console.log(c.dim(` broker-only (--no-manager): no manager started on this host - run \`cotal supervise --space ${m.space} --server ${server}\` from a manager host to manage agents`));
1895
+ }
1896
+ else if (controlPlane) {
1771
1897
  // U6: on a user mesh the agents run under the OPERATOR's identity — say whose they are.
1772
1898
  console.log(c.green(`✓ launching ${eff.agents.length} agent(s)`) + c.dim(` via manager (${runtime})${owner ? ` as you (owner ${owner})` : ""} - see ${managerLogDisplayPath(m.space)}`));
1773
1899
  }
@@ -1780,7 +1906,7 @@ async function upManifest(file, opts) {
1780
1906
  console.log("\n" + inherited);
1781
1907
  if (eff.warnings.length)
1782
1908
  console.log("\n" + renderWarnings(eff.warnings));
1783
- console.log(c.dim(`\nWatch: \`cotal console --space ${m.space}\` or \`cotal web\` · Tear down: \`cotal down\``));
1909
+ console.log(c.dim(`\nWatch: \`cotal web\` (browser dashboard) or \`cotal console --space ${m.space}\` (terminal) · Tear down: \`cotal down\``));
1784
1910
  // A declared-user-auth manifest whose auth service never became ready: the mesh is up + recorded
1785
1911
  // (re-`cotal up` heals), but this launch did not deliver a usable identity plane — exit non-zero
1786
1912
  // so CI/wrappers don't read success (the red consequence line printed at the failure above).
@@ -1885,11 +2011,11 @@ opts) {
1885
2011
  // effective server is finally known — a manifest may name a different host than the flags did, and
1886
2012
  // a certificate that is valid for one is not thereby valid for the other.
1887
2013
  const transport = assertServesDialHost(opts.transport, new URL(server).hostname);
1888
- const setup = useAuth ? await authSetup(storeDir, server, space, host, opts.userAuth, transport, opts.rotateSys) : undefined;
2014
+ const setup = useAuth ? await authSetup(storeDir, server, space, host, opts.userAuth, transport, opts.rotateSys, opts.maxFileStore) : undefined;
1889
2015
  const port = Number(new URL(server).port) || 4222;
1890
2016
  // Same rule as the foreground path: every route to a listener names its transport (see
1891
2017
  // `writeOpenBrokerConf`). Detach must not be the mode where the fence quietly does not apply.
1892
- const confPath = setup ? setup.confPath : writeOpenBrokerConf(storeDir, { port, host, transport });
2018
+ const confPath = setup ? setup.confPath : writeOpenBrokerConf(storeDir, { port, host, transport, maxFileStore: opts.maxFileStore });
1893
2019
  const args = [
1894
2020
  "-c", confPath,
1895
2021
  ...(opts.boundListener ? ["--name", opts.boundListener.serverName] : []),
@@ -1985,6 +2111,7 @@ opts) {
1985
2111
  // Persist only a real decision — declared now, or carried forward — never the loopback default.
1986
2112
  ...(effectiveAttachHost ? { attachHost: effectiveAttachHost } : {}),
1987
2113
  ...(effectiveMaxSessions !== undefined ? { maxSessions: effectiveMaxSessions } : {}),
2114
+ ...(opts.maxFileStore !== undefined ? { maxFileStore: opts.maxFileStore } : {}),
1988
2115
  ts: new Date().toISOString(),
1989
2116
  }, "started");
1990
2117
  // Commit policy BEFORE delivery launch (S9). Listener is proved; refuse paths never reach here.
@@ -1997,6 +2124,7 @@ opts) {
1997
2124
  // See the foreground path: the broker's bind address is what makes attach reachable off-box.
1998
2125
  attachHost: effectiveAttachHost,
1999
2126
  maxSessions: effectiveMaxSessions,
2127
+ noManager: opts.noManager,
2000
2128
  resumeAttempt: opts.resumeAttempt,
2001
2129
  resumeCommitToken: opts.resumeCommitToken,
2002
2130
  wsPort: setup?.wsPort, // P2 item 6: the console session client's broker ws port
@@ -2121,6 +2249,15 @@ export function attachHostFor(space, explicit) {
2121
2249
  export function maxSessionsFor(space, explicit) {
2122
2250
  return explicit ?? findMesh(space)?.maxSessions;
2123
2251
  }
2252
+ /** The store cap a preserved launch recorded: absent, or a positive integer byte count. Anything
2253
+ * else is a damaged journal, refused rather than rendered as the dynamic default. */
2254
+ function journaledMaxFileStore(value) {
2255
+ if (value === undefined)
2256
+ return undefined;
2257
+ if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 1)
2258
+ throw new Error(`the preserved launch records an invalid maxFileStore (${JSON.stringify(value)}); refusing to guess the broker's store cap`);
2259
+ return value;
2260
+ }
2124
2261
  /** {@link recordOurMesh} under a name that says it is a test seam: the origin rule it enforces is
2125
2262
  * asserted directly by the registry smoke, since reaching each branch through a full `up` would
2126
2263
  * need a live broker per case. */
@@ -2509,7 +2646,7 @@ function validateRecorded(transport, dialHost, opts = {}) {
2509
2646
  */
2510
2647
  function writeOpenBrokerConf(storeDir, opts) {
2511
2648
  const confPath = resolve(storeDir, "..", "server-open.conf");
2512
- writeFileSync(confPath, openServerConfig({ port: opts.port, host: opts.host, storeDir, transport: opts.transport }));
2649
+ writeFileSync(confPath, openServerConfig({ port: opts.port, host: opts.host, storeDir, maxFileStore: opts.maxFileStore, transport: opts.transport }));
2513
2650
  return confPath;
2514
2651
  }
2515
2652
  async function authSetup(storeDir, server, space, host = "127.0.0.1", user,
@@ -2518,7 +2655,7 @@ async function authSetup(storeDir, server, space, host = "127.0.0.1", user,
2518
2655
  // operator's `--tls-cert` sat validated and unused. A default here cannot be right, because the
2519
2656
  // safe value and the common value are different values — every caller knows its transport, and
2520
2657
  // the one that does not is the one that must not compile.
2521
- transport, rotateSys = false) {
2658
+ transport, rotateSys = false, maxFileStore) {
2522
2659
  const dir = authDir(cotalRoot()); // the broker config (server.conf) still lands under the FS auth dir
2523
2660
  const store = workspaceSecretStore(cotalRoot());
2524
2661
  let auth = await getSpaceAuth(store, space);
@@ -2627,7 +2764,7 @@ transport, rotateSys = false) {
2627
2764
  : await resolveAuthProvider().preloadAccounts({ store, space: enabledSpace });
2628
2765
  extraAccounts.push(...accounts);
2629
2766
  }
2630
- writeFileSync(confPath, serverConfig(auth, spaces, { transport, port, storeDir, host, wsPort, wsHost: host, extraAccounts }));
2767
+ writeFileSync(confPath, serverConfig(auth, spaces, { transport, port, storeDir, maxFileStore, host, wsPort, wsHost: host, extraAccounts }));
2631
2768
  // Ephemeral setup cred: used only to probe reachability, pre-create the space streams/buckets
2632
2769
  // (setupSpaceStreams) and seed the channel registry (seedChannelRegistry) — all within the
2633
2770
  // enumerated `provisioner` scope. No broad `manager` residual for the up path.