borgmcp 3.0.0 → 3.1.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 (41) hide show
  1. package/dist/bare-launch-menu.d.ts +5 -5
  2. package/dist/bare-launch-menu.d.ts.map +1 -1
  3. package/dist/bare-launch-menu.js +2 -2
  4. package/dist/bare-launch-menu.js.map +1 -1
  5. package/dist/claude.js +3 -3
  6. package/dist/claude.js.map +1 -1
  7. package/dist/cli-platform.d.ts +4 -0
  8. package/dist/cli-platform.d.ts.map +1 -1
  9. package/dist/cli-platform.js +29 -10
  10. package/dist/cli-platform.js.map +1 -1
  11. package/dist/cubes.d.ts.map +1 -1
  12. package/dist/cubes.js +28 -10
  13. package/dist/cubes.js.map +1 -1
  14. package/dist/first-run-server.d.ts.map +1 -1
  15. package/dist/first-run-server.js +4 -1
  16. package/dist/first-run-server.js.map +1 -1
  17. package/dist/launch-all-cmd.js +1 -1
  18. package/dist/launch-all-cmd.js.map +1 -1
  19. package/dist/lifecycle-log-guard.d.ts.map +1 -1
  20. package/dist/lifecycle-log-guard.js +12 -3
  21. package/dist/lifecycle-log-guard.js.map +1 -1
  22. package/dist/remote-client.d.ts.map +1 -1
  23. package/dist/remote-client.js +36 -14
  24. package/dist/remote-client.js.map +1 -1
  25. package/dist/server-handshake.d.ts +1 -1
  26. package/dist/tool-manifest.js +3 -3
  27. package/dist/tool-manifest.js.map +1 -1
  28. package/docs/EXTRACTION_PROVENANCE.md +16 -28
  29. package/docs/LOCAL_SERVER.md +1 -1
  30. package/docs/RELEASING.md +3 -3
  31. package/package.json +2 -2
  32. package/src/bare-launch-menu.ts +6 -6
  33. package/src/claude.ts +6 -4
  34. package/src/cli-platform.ts +42 -10
  35. package/src/cubes.ts +27 -12
  36. package/src/first-run-server.ts +4 -1
  37. package/src/launch-all-cmd.ts +1 -1
  38. package/src/lifecycle-log-guard.ts +15 -3
  39. package/src/remote-client.ts +57 -15
  40. package/src/server-handshake.ts +1 -1
  41. package/src/tool-manifest.ts +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"tool-manifest.js","sourceRoot":"","sources":["../src/tool-manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-manifest.js","sourceRoot":"","sources":["../src/tool-manifest.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,12 @@
1
1
  # Extraction Provenance
2
2
 
3
+ **This file is a frozen historical record.** It documents the one-time
4
+ extraction of this repository from the monorepo and the state of the client
5
+ line as of that extraction and its immediate releases. Nothing appends to it,
6
+ no release process touches it, and no statement in it describes the current
7
+ version — the authoritative version is `package.json` and the npm registry.
8
+ Facts below were true when recorded and are not maintained.
9
+
3
10
  The initial standalone source was extracted from `Byte-Ventures/borg-mcp` commit `17ff8ce14e12122a8cc9089f6b94174c02fa2a04` on branch `main`.
4
11
 
5
12
  The extraction copied the monorepo's `client/src/` production boundary and top-level `client/__tests__/*.test.ts` unit tests. It did not import monorepo Git history, worker or website source, deployment configuration, local state, credentials files, build output, or the live integration suite.
@@ -17,40 +24,20 @@ The extraction copied the monorepo's `client/src/` production boundary and top-l
17
24
  - Kept self-hosted `--host --enroll` preview-only while implementing the
18
25
  client-generated PENDING credential/retry tuple and capability-gated,
19
26
  repository-idempotent cube creation required for local dogfood.
20
- - Initially set the standalone package identity to `2.0.0`. **The current
21
- release identity is `3.0.0`.** Extraction and versioning do not authorize
22
- publication.
23
-
24
- Spent versions — each burned an immutable tag and published nothing:
25
-
26
- | Version | Failed at | Recovered by |
27
- | --- | --- | --- |
28
- | `2.0.0` | lightweight release tag, before packaging | `2.0.1` |
29
- | `2.0.7` | before package creation or npm publication | — |
30
- | `2.10.1` | before artifact creation or publication | — |
31
- | `2.12.0` | before artifact creation or publication | `2.12.1` |
32
-
33
- Every other version in the `2.x` line published and was registry-verified.
34
- Record spent versions here when they occur; do not append a clause to this
35
- entry. To confirm the table is still complete, list the repository's version
36
- tags and `npm view borgmcp versions` — a spent version is a tag whose version
37
- never reached the registry, and the two sets should differ by exactly these
38
- rows.
39
-
40
- ## Review Holds
27
+ ## Review Holds Resolved at Extraction (historical)
41
28
 
42
29
  Google OAuth / Cloud sign-in has been fully removed from this local-only client.
43
30
  `src/auth.ts`, `src/device-auth.ts`, and all installed-application OAuth client
44
31
  material are deleted, along with the hosted API default and the Cloud
45
- subscription/billing/dashboard tools. `scripts/verify-public-source.mjs` now
32
+ subscription/billing/dashboard tools. `scripts/verify-public-source.mjs`
46
33
  forbids ANY Google OAuth client ID or `GOCSPX` value anywhere in the source or
47
34
  packed artifact (zero tolerance), and a no-cloud egress guard asserts the packed
48
35
  artifact reaches no hosted authority.
49
36
 
50
- Local enrollment now uses the reviewed client-generated credential/retry
37
+ At extraction, local enrollment used the reviewed client-generated credential/retry
51
38
  contract, with a pre-request `PENDING` record in the local 0600-permission seat
52
- store, exact-tuple ambiguous retry, and verified activation. The current client
53
- candidate resolves to the audited registry `borgmcp-shared@0.9.0` with integrity
39
+ store, exact-tuple ambiguous retry, and verified activation. The client candidate
40
+ at that time resolved to audited registry `borgmcp-shared` version `0.9.0` with integrity
54
41
  `sha512-bfZPP9JGgBQrCFoZetabqKHc8HLaUqHVR3GJLb/1F1oon7z/B4el4aeBHVvXlxN9+2G7kU/ymPZ/K25nVQapmQ==`.
55
42
  The coupled `borgmcp-server@0.9.0` release was published on 2026-08-02 for the
56
43
  client `borgmcp@2.10.0` line. Its annotated tag object
@@ -60,6 +47,7 @@ client `borgmcp@2.10.0` line. Its annotated tag object
60
47
  in the `borgmcp-server-0.9.0-release` registry decision. That server and its
61
48
  client line pin historical `borgmcp-shared` version `0.8.1` and remain
62
49
  immutable. The immutable `v2.0.7` attempt failed before publication and remains
63
- preserved. The current release identity and publication gate remain governed by
64
- the reviewed `v3.0.0` source, a fresh annotated tag, and the exact-artifact and
65
- protected-publication gates.
50
+ preserved. Each release's identity and publication gate are governed by its reviewed
51
+ source at the annotated release tag and the exact-artifact and
52
+ protected-publication gates; the authoritative version is `package.json` and
53
+ the registry, not this document.
@@ -258,6 +258,6 @@ The default discovery endpoint is `https://127.0.0.1:7091`. Explicit `--host` va
258
258
 
259
259
  ## Release status
260
260
 
261
- This client candidate pins published `borgmcp-shared@0.9.0`. Its release remains
261
+ This client candidate pins published `borgmcp-shared@0.10.0`. Its release remains
262
262
  coupled to a server artifact rebuilt against the same shared version, with both
263
263
  artifacts required to pass the complete process-level local dogfood gate.
package/docs/RELEASING.md CHANGED
@@ -19,11 +19,11 @@ Before creating the release tag, independently verify all of these conditions:
19
19
  - the extraction review confirms no private backend secrets, deployment
20
20
  configuration, customer data, local state, or duplicated shared contracts
21
21
  entered the public package;
22
- - the exact audited registry dependency `borgmcp-shared@0.9.0` remains locked to
22
+ - the exact audited registry dependency `borgmcp-shared@0.10.0` remains locked to
23
23
  its canonical tarball and integrity
24
- `sha512-bfZPP9JGgBQrCFoZetabqKHc8HLaUqHVR3GJLb/1F1oon7z/B4el4aeBHVvXlxN9+2G7kU/ymPZ/K25nVQapmQ==`;
24
+ `sha512-NYZJi6z0g/Txb6ge+5NgRPNRszVEi0eNmICxkoZq5bGkJWm5qEvNSt3ws90Xz8IOKuWcyHC9i6sAK6cbZxwYDw==`;
25
25
  - the coupled client/server release is published only after the server artifact
26
- is rebuilt against `borgmcp-shared@0.9.0` and both pass the complete local
26
+ is rebuilt against `borgmcp-shared@0.10.0` and both pass the complete local
27
27
  dogfood gate;
28
28
  - the selected stable client version is unused and the exact release commit is
29
29
  on protected `main`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "borgmcp",
3
- "version": "3.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "Coordinate AI coding agents in shared cubes. Works with Claude Code, Codex, and OpenCode.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -71,7 +71,7 @@
71
71
  },
72
72
  "dependencies": {
73
73
  "@modelcontextprotocol/sdk": "^1.0.4",
74
- "borgmcp-shared": "0.9.0",
74
+ "borgmcp-shared": "0.10.0",
75
75
  "chalk": "^5.3.0",
76
76
  "prompts": "^2.4.2",
77
77
  "which": "^4.0.0"
@@ -4,13 +4,13 @@
4
4
  * When `borg` is run with NO arguments in a TTY, offer a small launch selector
5
5
  * instead of launching immediately:
6
6
  * 1. Launch (default) — the configured agent (Enter selects).
7
- * 2. Launch with <other> instead — the OTHER installed agent, ONE-SHOT
7
+ * 2. Launch with <other> instead — the OTHER configured agent, ONE-SHOT
8
8
  * (does NOT persist the preference).
9
9
  * 3. Launch all — runLaunchAll for the active cube.
10
10
  *
11
11
  * The option-set, the selection→action mapping, and the show/collapse decision
12
12
  * are pure functions so they're unit-testable without a real TTY. claude.ts
13
- * main() is thin glue: it computes the inputs (default cli, other-installed cli,
13
+ * main() is thin glue: it computes the inputs (default cli, other-configured cli,
14
14
  * launch-all targets), gates on shouldShowLaunchMenu, runs the orchestrator with
15
15
  * the real readline prompt, then dispatches the returned action.
16
16
  *
@@ -33,8 +33,8 @@ export interface LaunchMenuOption {
33
33
  export interface LaunchMenuInputs {
34
34
  /** The configured/resolved current agent (option 1). */
35
35
  defaultCli: BorgCli;
36
- /** All installed agents that are NOT the default, in display order. */
37
- otherInstalledClis: BorgCli[];
36
+ /** All configured agents that are NOT the default, in display order. */
37
+ otherConfiguredClis: BorgCli[];
38
38
  /** True iff there's an active cube with >=1 discoverable drone (option 3). */
39
39
  hasLaunchAllTargets: boolean;
40
40
  }
@@ -44,7 +44,7 @@ export interface LaunchMenuInputs {
44
44
  *
45
45
  * This callback deliberately runs after the one-shot menu choice. A bare
46
46
  * launch may resolve one default CLI first and then launch a different
47
- * installed CLI for this invocation; only the final CLI may be self-healed.
47
+ * configured CLI for this invocation; only the final CLI may be self-healed.
48
48
  */
49
49
  export function configureSelectedLaunchCli(
50
50
  defaultCli: BorgCli,
@@ -105,7 +105,7 @@ export function buildLaunchMenuOptions(inputs: LaunchMenuInputs): LaunchMenuOpti
105
105
  action: { kind: 'launch', cli: inputs.defaultCli },
106
106
  },
107
107
  ];
108
- for (const cli of inputs.otherInstalledClis) {
108
+ for (const cli of inputs.otherConfiguredClis) {
109
109
  options.push({
110
110
  key: String(options.length + 1),
111
111
  label: `Launch with ${PRETTY[cli]} (one-shot)`,
package/src/claude.ts CHANGED
@@ -55,7 +55,7 @@ import {
55
55
  import { setTerminalTitle } from './terminal-title.js';
56
56
  import { initConsolePrefix, consolePrefix } from './console-prefix.js';
57
57
  import { initDebugFromArgv } from './debug.js';
58
- import { defaultCliChoiceDeps, detectCliAvailability, installedCliNames, parseCliFlag, resolveCliChoice } from './cli-platform.js';
58
+ import { configuredCliNames, defaultCliChoiceDeps, detectCliAvailability, detectCliConfiguration, parseCliFlag, resolveCliChoice } from './cli-platform.js';
59
59
  import { prepareCodexRemoteLaunch, resolveCodexLaunchCwd, withCodexCwdArg, defaultCodexRemoteDeps, checkCodexBridgeHealthy } from './codex-remote.js';
60
60
  import {
61
61
  BORG_CODEX_REMOTE_WAKE_ENV,
@@ -357,10 +357,12 @@ async function main() {
357
357
  stdoutIsTTY,
358
358
  })
359
359
  ) {
360
- const otherInstalledClis =
361
- installedCliNames(detectCliAvailability()).filter((c) => c !== cli);
360
+ const otherConfiguredClis = configuredCliNames(
361
+ detectCliAvailability(),
362
+ detectCliConfiguration(),
363
+ ).filter((c) => c !== cli);
362
364
  const action = await runBareLaunchMenu(
363
- { defaultCli: cli, otherInstalledClis, hasLaunchAllTargets: await hasLaunchAllTargets() },
365
+ { defaultCli: cli, otherConfiguredClis, hasLaunchAllTargets: await hasLaunchAllTargets() },
364
366
  prompt
365
367
  );
366
368
  if (action.kind === 'launch-all') {
@@ -1,6 +1,11 @@
1
1
  import which from 'which';
2
2
  import type { BorgCli } from './cubes.js';
3
3
  import { getProjectCliPreference, setProjectCliPreference } from './cubes.js';
4
+ import {
5
+ isCodexMcpServerConfigured,
6
+ isMcpServerConfigured,
7
+ isOpenCodeMcpServerConfigured,
8
+ } from './config-utils.js';
4
9
 
5
10
  export interface CliAvailability {
6
11
  claude: string | null;
@@ -8,8 +13,11 @@ export interface CliAvailability {
8
13
  opencode: string | null;
9
14
  }
10
15
 
16
+ export type CliConfiguration = Record<BorgCli, boolean>;
17
+
11
18
  export interface CliChoiceDeps {
12
19
  detectCli: () => CliAvailability;
20
+ detectConfigured: () => CliConfiguration;
13
21
  getPreference: () => Promise<BorgCli | null>;
14
22
  setPreference: (cli: BorgCli) => Promise<void>;
15
23
  prompt: (message: string) => Promise<string>;
@@ -40,6 +48,21 @@ export function installedCliNames(availability: CliAvailability): BorgCli[] {
40
48
  return out;
41
49
  }
42
50
 
51
+ export function detectCliConfiguration(): CliConfiguration {
52
+ return {
53
+ claude: isMcpServerConfigured(),
54
+ codex: isCodexMcpServerConfigured(),
55
+ opencode: isOpenCodeMcpServerConfigured(),
56
+ };
57
+ }
58
+
59
+ export function configuredCliNames(
60
+ availability: CliAvailability,
61
+ configuration: CliConfiguration,
62
+ ): BorgCli[] {
63
+ return installedCliNames(availability).filter((cli) => configuration[cli]);
64
+ }
65
+
43
66
  async function setPreferenceAndReturn(cli: BorgCli, deps: CliChoiceDeps): Promise<BorgCli> {
44
67
  await deps.setPreference(cli);
45
68
  return cli;
@@ -59,31 +82,39 @@ export async function resolveCliChoice(
59
82
  if (!installed.includes(explicit)) {
60
83
  throw new Error(`${explicit} CLI is not installed.`);
61
84
  }
85
+ // An explicit --cli is an intentional request, so the caller may still
86
+ // configure that installed CLI on demand. Automatic selection below is
87
+ // restricted to registrations already present in the agent config.
62
88
  await deps.setPreference(explicit);
63
89
  return explicit;
64
90
  }
65
91
 
92
+ const configured = configuredCliNames(availability, deps.detectConfigured());
93
+ if (configured.length === 0) {
94
+ throw new Error('No supported agent CLI is configured for Borg. Run `borg setup` to configure one, then run `borg` or `borg assimilate` again.');
95
+ }
96
+
66
97
  const stored = await deps.getPreference();
67
- if (stored && installed.includes(stored)) return stored;
98
+ if (stored && configured.includes(stored)) return stored;
68
99
 
69
- if (installed.length === 1) {
70
- await deps.setPreference(installed[0]);
71
- return installed[0];
100
+ if (configured.length === 1) {
101
+ await deps.setPreference(configured[0]);
102
+ return configured[0];
72
103
  }
73
104
 
74
105
  if (!deps.isTTY()) {
75
- throw new Error('Multiple agent CLIs detected. Pass --cli claude, --cli codex, or --cli opencode to choose.');
106
+ throw new Error('Multiple configured agent CLIs detected. Pass --cli claude, --cli codex, or --cli opencode to choose.');
76
107
  }
77
108
 
78
- const promptLines = installed.map((cli, i) => ` ${i + 1}) ${cli}`);
109
+ const promptLines = configured.map((cli, i) => ` ${i + 1}) ${cli}`);
79
110
  const answer = (await deps.prompt(`Use which CLI for this project?\n${promptLines.join('\n')}\n[1]: `)).trim();
80
- if (answer === '' || answer === '1') return setPreferenceAndReturn(installed[0], deps);
111
+ if (answer === '' || answer === '1') return setPreferenceAndReturn(configured[0], deps);
81
112
  const num = parseInt(answer, 10);
82
- if (!Number.isNaN(num) && num >= 1 && num <= installed.length) {
83
- return setPreferenceAndReturn(installed[num - 1], deps);
113
+ if (!Number.isNaN(num) && num >= 1 && num <= configured.length) {
114
+ return setPreferenceAndReturn(configured[num - 1], deps);
84
115
  }
85
116
  const lower = answer.toLowerCase();
86
- for (const cli of installed) {
117
+ for (const cli of configured) {
87
118
  if (lower === cli) return setPreferenceAndReturn(cli, deps);
88
119
  }
89
120
  throw new Error(`invalid CLI choice "${answer}"`);
@@ -92,6 +123,7 @@ export async function resolveCliChoice(
92
123
  export function defaultCliChoiceDeps(prompt: (message: string) => Promise<string>, isTTY: () => boolean): CliChoiceDeps {
93
124
  return {
94
125
  detectCli: detectCliAvailability,
126
+ detectConfigured: detectCliConfiguration,
95
127
  getPreference: getProjectCliPreference,
96
128
  setPreference: setProjectCliPreference,
97
129
  prompt,
package/src/cubes.ts CHANGED
@@ -84,6 +84,13 @@ interface LaunchFile {
84
84
  projects: Record<string, { cli: BorgCli }>;
85
85
  }
86
86
 
87
+ const UNREADABLE_STATE = Symbol('unreadable-state-file');
88
+ type StateFileRead<T> = T | null | typeof UNREADABLE_STATE;
89
+
90
+ function unreadableStateError(filePath: string): Error {
91
+ return new Error(`Borg state file is unreadable; refusing to overwrite it: ${filePath}`);
92
+ }
93
+
87
94
  export interface CodexWakeTargetRecord {
88
95
  threadId: string;
89
96
  socketPath: string;
@@ -225,7 +232,7 @@ function isLaunchFile(data: any): data is LaunchFile {
225
232
  );
226
233
  }
227
234
 
228
- async function readLaunchFile(): Promise<LaunchFile | null> {
235
+ async function readLaunchFile(): Promise<StateFileRead<LaunchFile>> {
229
236
  let raw: string;
230
237
  try {
231
238
  raw = await readFile(LAUNCH_FILE, 'utf8');
@@ -235,9 +242,9 @@ async function readLaunchFile(): Promise<LaunchFile | null> {
235
242
  }
236
243
  try {
237
244
  const parsed = JSON.parse(raw);
238
- return isLaunchFile(parsed) ? parsed : null;
245
+ return isLaunchFile(parsed) ? parsed : UNREADABLE_STATE;
239
246
  } catch {
240
- return null;
247
+ return UNREADABLE_STATE;
241
248
  }
242
249
  }
243
250
 
@@ -263,7 +270,7 @@ function isCodexWakeTargetsFile(data: any): data is CodexWakeTargetsFile {
263
270
  );
264
271
  }
265
272
 
266
- async function readCodexWakeTargetsFile(): Promise<CodexWakeTargetsFile | null> {
273
+ async function readCodexWakeTargetsFile(): Promise<StateFileRead<CodexWakeTargetsFile>> {
267
274
  let raw: string;
268
275
  try {
269
276
  raw = await readFile(CODEX_WAKE_TARGETS_FILE, 'utf8');
@@ -273,9 +280,9 @@ async function readCodexWakeTargetsFile(): Promise<CodexWakeTargetsFile | null>
273
280
  }
274
281
  try {
275
282
  const parsed = JSON.parse(raw);
276
- return isCodexWakeTargetsFile(parsed) ? parsed : null;
283
+ return isCodexWakeTargetsFile(parsed) ? parsed : UNREADABLE_STATE;
277
284
  } catch {
278
- return null;
285
+ return UNREADABLE_STATE;
279
286
  }
280
287
  }
281
288
 
@@ -574,6 +581,7 @@ export async function refreshActiveCubeMetadata(active: ActiveCubeInput): Promis
574
581
 
575
582
  export async function getProjectCliPreference(): Promise<BorgCli | null> {
576
583
  const data = await readLaunchFile();
584
+ if (data === UNREADABLE_STATE) throw unreadableStateError(LAUNCH_FILE);
577
585
  if (!data) return null;
578
586
  const entry = data.projects[findProjectRoot()];
579
587
  return entry?.cli === 'claude' || entry?.cli === 'codex' || entry?.cli === 'opencode' ? entry.cli : null;
@@ -586,6 +594,7 @@ export async function getProjectCliPreference(): Promise<BorgCli | null> {
586
594
  */
587
595
  export async function getProjectCliPreferenceForPath(dir: string): Promise<BorgCli | null> {
588
596
  const data = await readLaunchFile();
597
+ if (data === UNREADABLE_STATE) throw unreadableStateError(LAUNCH_FILE);
589
598
  if (!data) return null;
590
599
  const entry = data.projects[findProjectRoot(dir)];
591
600
  return entry?.cli === 'claude' || entry?.cli === 'codex' || entry?.cli === 'opencode' ? entry.cli : null;
@@ -617,9 +626,11 @@ export async function readAllProjectIdentities(): Promise<
617
626
  * sibling worktree but the process still began in the invoking checkout.
618
627
  */
619
628
  export async function setProjectCliPreference(cli: BorgCli, dir?: string): Promise<void> {
620
- const existing = (await readLaunchFile()) ?? { projects: {} };
621
- existing.projects[findProjectRoot(dir)] = { cli };
622
- await writeLaunchFile(existing);
629
+ const existing = await readLaunchFile();
630
+ if (existing === UNREADABLE_STATE) throw unreadableStateError(LAUNCH_FILE);
631
+ const next = existing ?? { projects: {} };
632
+ next.projects[findProjectRoot(dir)] = { cli };
633
+ await writeLaunchFile(next);
623
634
  }
624
635
 
625
636
  export async function setCodexWakeTarget(
@@ -627,12 +638,14 @@ export async function setCodexWakeTarget(
627
638
  droneId: string,
628
639
  target: Omit<CodexWakeTargetRecord, 'updatedAt'>
629
640
  ): Promise<void> {
630
- const existing = (await readCodexWakeTargetsFile()) ?? { targets: {} };
631
- existing.targets[codexWakeTargetKey(cubeId, droneId)] = {
641
+ const existing = await readCodexWakeTargetsFile();
642
+ if (existing === UNREADABLE_STATE) throw unreadableStateError(CODEX_WAKE_TARGETS_FILE);
643
+ const next = existing ?? { targets: {} };
644
+ next.targets[codexWakeTargetKey(cubeId, droneId)] = {
632
645
  ...target,
633
646
  updatedAt: new Date().toISOString(),
634
647
  };
635
- await writeCodexWakeTargetsFile(existing);
648
+ await writeCodexWakeTargetsFile(next);
636
649
  }
637
650
 
638
651
  export async function getCodexWakeTarget(
@@ -640,6 +653,7 @@ export async function getCodexWakeTarget(
640
653
  droneId: string
641
654
  ): Promise<CodexWakeTargetRecord | null> {
642
655
  const existing = await readCodexWakeTargetsFile();
656
+ if (existing === UNREADABLE_STATE) throw unreadableStateError(CODEX_WAKE_TARGETS_FILE);
643
657
  if (!existing) return null;
644
658
  const target = existing.targets[codexWakeTargetKey(cubeId, droneId)];
645
659
  if (!target || typeof target.threadId !== 'string' || typeof target.socketPath !== 'string') {
@@ -661,6 +675,7 @@ export async function pruneDeadCodexWakeTargets(
661
675
  socketLiveness: (socketPath: string) => boolean | null
662
676
  ): Promise<void> {
663
677
  const existing = await readCodexWakeTargetsFile();
678
+ if (existing === UNREADABLE_STATE) throw unreadableStateError(CODEX_WAKE_TARGETS_FILE);
664
679
  if (!existing) return;
665
680
  const { targets, changed } = pruneDeadWakeTargets(existing.targets, socketLiveness);
666
681
  if (changed) await writeCodexWakeTargetsFile({ ...existing, targets });
@@ -177,8 +177,11 @@ export async function offerFirstRunServerInstall(
177
177
  : decision === 'eof'
178
178
  ? 'Installation was cancelled because confirmation input ended.'
179
179
  : 'Installation was declined.';
180
+ const setupRecovery = options.initializeServer
181
+ ? ', and no agent configuration was written. Run `borg setup` again to configure your agents.'
182
+ : '.';
180
183
  deps.stderr(
181
- `${reason} No server package or server state was changed.\n` +
184
+ `${reason} No server package or server state was changed${setupRecovery}\n` +
182
185
  `To install it later, run \`${command}\`. Then run \`borg server setup\` and \`borg server start\`.\n`,
183
186
  );
184
187
  return { kind: 'declined' };
@@ -66,7 +66,7 @@ async function resolveTargetCube(
66
66
  return {
67
67
  error:
68
68
  `'${args.cubeName}' is ambiguous — ${matches.length} saved connections on this machine share that name:\n${list}\n` +
69
- 'cd into the intended project and re-run without --cube-name (resolves the active cube), ' +
69
+ 'cd into the intended project and re-run as `borg launch-all` without the positional cube name (resolves the active cube), ' +
70
70
  'or clear the stale connection(s) by running `borg reset-local-connection` from the worktree that holds each.',
71
71
  };
72
72
  }
@@ -28,6 +28,15 @@ interface LifecycleStateFile {
28
28
  entries: Record<string, LifecycleStateEntry>;
29
29
  }
30
30
 
31
+ const UNREADABLE_STATE = Symbol('unreadable-lifecycle-state');
32
+ type LifecycleStateRead = LifecycleStateFile | typeof UNREADABLE_STATE;
33
+
34
+ function unreadableStateError(): Error {
35
+ return new Error(
36
+ `Lifecycle log state is unreadable; refusing to overwrite it: ${STATE_FILE}`,
37
+ );
38
+ }
39
+
31
40
  export function lifecycleSignalForMessage(message: string): LifecycleSignal | null {
32
41
  if (message.startsWith('ARRIVAL: ')) return 'arrival';
33
42
  if (
@@ -44,7 +53,7 @@ function stateKey(subject: LifecycleLogSubject): string {
44
53
  return `${subject.cubeId}:${subject.droneId}`;
45
54
  }
46
55
 
47
- async function readState(): Promise<LifecycleStateFile> {
56
+ async function readState(): Promise<LifecycleStateRead> {
48
57
  try {
49
58
  const raw = await readFile(STATE_FILE, 'utf8');
50
59
  const parsed = JSON.parse(raw);
@@ -58,9 +67,10 @@ async function readState(): Promise<LifecycleStateFile> {
58
67
  return parsed as LifecycleStateFile;
59
68
  }
60
69
  } catch (err: any) {
61
- if (err?.code !== 'ENOENT') throw err;
70
+ if (err?.code === 'ENOENT') return { entries: {} };
71
+ return UNREADABLE_STATE;
62
72
  }
63
- return { entries: {} };
73
+ return UNREADABLE_STATE;
64
74
  }
65
75
 
66
76
  async function writeState(state: LifecycleStateFile): Promise<void> {
@@ -100,6 +110,7 @@ export async function shouldSuppressLifecycleLog(
100
110
  message: string
101
111
  ): Promise<{ suppress: boolean; signal: LifecycleSignal | null }> {
102
112
  const state = await readState();
113
+ if (state === UNREADABLE_STATE) throw unreadableStateError();
103
114
  return shouldSuppressLifecycleLogFromState(
104
115
  message,
105
116
  state.entries[stateKey(subject)]
@@ -138,6 +149,7 @@ export async function recordLifecycleLog(
138
149
  message: string
139
150
  ): Promise<void> {
140
151
  const state = await readState();
152
+ if (state === UNREADABLE_STATE) throw unreadableStateError();
141
153
  const key = stateKey(subject);
142
154
  state.entries[key] = nextLifecycleStateAfterLog(message, state.entries[key]);
143
155
  await writeState(state);