borgmcp 2.2.0 → 2.4.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 (106) hide show
  1. package/README.md +36 -0
  2. package/dist/assimilate-cmd.d.ts +6 -0
  3. package/dist/assimilate-cmd.d.ts.map +1 -1
  4. package/dist/assimilate-cmd.js +31 -7
  5. package/dist/assimilate-cmd.js.map +1 -1
  6. package/dist/assimilate-deps.d.ts.map +1 -1
  7. package/dist/assimilate-deps.js +2 -0
  8. package/dist/assimilate-deps.js.map +1 -1
  9. package/dist/claude.d.ts.map +1 -1
  10. package/dist/claude.js +14 -0
  11. package/dist/claude.js.map +1 -1
  12. package/dist/cli-help.d.ts +2 -0
  13. package/dist/cli-help.d.ts.map +1 -1
  14. package/dist/cli-help.js +19 -0
  15. package/dist/cli-help.js.map +1 -1
  16. package/dist/cli-platform.d.ts +1 -0
  17. package/dist/cli-platform.d.ts.map +1 -1
  18. package/dist/cli-platform.js +5 -1
  19. package/dist/cli-platform.js.map +1 -1
  20. package/dist/console-prefix.d.ts +9 -10
  21. package/dist/console-prefix.d.ts.map +1 -1
  22. package/dist/console-prefix.js +23 -20
  23. package/dist/console-prefix.js.map +1 -1
  24. package/dist/cubes.d.ts +11 -0
  25. package/dist/cubes.d.ts.map +1 -1
  26. package/dist/cubes.js +10 -0
  27. package/dist/cubes.js.map +1 -1
  28. package/dist/display-identity.d.ts +34 -0
  29. package/dist/display-identity.d.ts.map +1 -0
  30. package/dist/display-identity.js +88 -0
  31. package/dist/display-identity.js.map +1 -0
  32. package/dist/docs-sections.d.ts.map +1 -1
  33. package/dist/docs-sections.js +9 -0
  34. package/dist/docs-sections.js.map +1 -1
  35. package/dist/drone-management.d.ts.map +1 -1
  36. package/dist/drone-management.js +6 -0
  37. package/dist/drone-management.js.map +1 -1
  38. package/dist/inbox-monitor.d.ts.map +1 -1
  39. package/dist/inbox-monitor.js +12 -0
  40. package/dist/inbox-monitor.js.map +1 -1
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +58 -16
  43. package/dist/index.js.map +1 -1
  44. package/dist/log-stream.d.ts.map +1 -1
  45. package/dist/log-stream.js +41 -15
  46. package/dist/log-stream.js.map +1 -1
  47. package/dist/parse-assimilate-args.d.ts +1 -1
  48. package/dist/parse-assimilate-args.d.ts.map +1 -1
  49. package/dist/parse-assimilate-args.js +5 -2
  50. package/dist/parse-assimilate-args.js.map +1 -1
  51. package/dist/regen-format.d.ts +2 -2
  52. package/dist/regen-format.d.ts.map +1 -1
  53. package/dist/regen-format.js +6 -5
  54. package/dist/regen-format.js.map +1 -1
  55. package/dist/regen.js +6 -2
  56. package/dist/regen.js.map +1 -1
  57. package/dist/remote-client.d.ts.map +1 -1
  58. package/dist/remote-client.js +8 -1
  59. package/dist/remote-client.js.map +1 -1
  60. package/dist/reset-local-seat-cmd.d.ts +8 -0
  61. package/dist/reset-local-seat-cmd.d.ts.map +1 -1
  62. package/dist/reset-local-seat-cmd.js +21 -2
  63. package/dist/reset-local-seat-cmd.js.map +1 -1
  64. package/dist/seat-reattach-guard.d.ts +21 -0
  65. package/dist/seat-reattach-guard.d.ts.map +1 -0
  66. package/dist/seat-reattach-guard.js +83 -0
  67. package/dist/seat-reattach-guard.js.map +1 -0
  68. package/dist/seats.d.ts +6 -2
  69. package/dist/seats.d.ts.map +1 -1
  70. package/dist/seats.js +37 -14
  71. package/dist/seats.js.map +1 -1
  72. package/dist/unknown-subcommand.d.ts +1 -1
  73. package/dist/unknown-subcommand.d.ts.map +1 -1
  74. package/dist/unknown-subcommand.js +1 -0
  75. package/dist/unknown-subcommand.js.map +1 -1
  76. package/dist/update-cmd.d.ts +58 -0
  77. package/dist/update-cmd.d.ts.map +1 -0
  78. package/dist/update-cmd.js +801 -0
  79. package/dist/update-cmd.js.map +1 -0
  80. package/docs/EXTRACTION_PROVENANCE.md +3 -3
  81. package/docs/LOCAL_SERVER.md +43 -0
  82. package/docs/RELEASING.md +145 -4
  83. package/docs/SEAT_LIFECYCLE.md +242 -0
  84. package/package.json +6 -3
  85. package/src/assimilate-cmd.ts +45 -7
  86. package/src/assimilate-deps.ts +2 -0
  87. package/src/claude.ts +15 -0
  88. package/src/cli-help.ts +22 -0
  89. package/src/cli-platform.ts +5 -2
  90. package/src/console-prefix.ts +25 -18
  91. package/src/cubes.ts +16 -0
  92. package/src/display-identity.ts +130 -0
  93. package/src/docs-sections.ts +9 -0
  94. package/src/drone-management.ts +6 -0
  95. package/src/inbox-monitor.ts +19 -0
  96. package/src/index.ts +66 -20
  97. package/src/log-stream.ts +38 -14
  98. package/src/parse-assimilate-args.ts +4 -2
  99. package/src/regen-format.ts +6 -5
  100. package/src/regen.ts +11 -2
  101. package/src/remote-client.ts +8 -0
  102. package/src/reset-local-seat-cmd.ts +26 -1
  103. package/src/seat-reattach-guard.ts +113 -0
  104. package/src/seats.ts +36 -14
  105. package/src/unknown-subcommand.ts +1 -0
  106. package/src/update-cmd.ts +1006 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-cmd.js","sourceRoot":"","sources":["../src/update-cmd.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ The extraction copied the monorepo's `client/src/` production boundary and top-l
22
22
  recovery, `2.0.2`, `2.0.3`, `2.0.4`, `2.0.5`, and `2.0.6` successors were
23
23
  published and registry-verified. The immutable `2.0.7` workflow failed before
24
24
  package creation or npm publication. The `2.0.8`, `2.0.9`, `2.0.10`, `2.0.11`,
25
- `2.1.0`, and `2.1.1` successors were published, so the next candidate identity is `2.2.0`. Extraction and
25
+ `2.1.0`, and `2.1.1` successors were published, and `2.2.0` was subsequently published, and `2.3.0` was subsequently published, so the next candidate identity is `2.4.0`. Extraction and
26
26
  versioning do not authorize publication.
27
27
 
28
28
  ## Review Holds
@@ -42,7 +42,7 @@ resolves to the audited registry `borgmcp-shared@0.6.4` with integrity
42
42
  `sha512-Wm4b0uoOAw9JCz5OTHD0Q2uXKkeWYdkVksdeZvRG8l62XGMY+G8GkNEsZT9L533LbVbQ29GhgF0htjDenQThDg==`.
43
43
  The matching `borgmcp-server@0.1.21` release is published with integrity
44
44
  `sha512-g0QH4cKcsKuDyZs1MvBmvCoCLaZ4wVI04yHCGSvcAeWghWxSBH0IIF8Q5OFi1pLB7TZXOVP6D3QAabUQ2eJTFg==`
45
- and pins the same `borgmcp-shared@0.6.4` contract. Client `borgmcp@2.1.1` is published. The immutable `v2.0.7`
45
+ and pins the same `borgmcp-shared@0.6.4` contract. Client `borgmcp@2.3.0` is published. The immutable `v2.0.7`
46
46
  attempt failed before publication and remains preserved. Publication of the next
47
- candidate remains gated by reviewed `v2.2.0` source, a fresh annotated tag, and
47
+ candidate remains gated by reviewed `v2.4.0` source, a fresh annotated tag, and
48
48
  the exact-artifact and protected-publication gates.
@@ -129,6 +129,45 @@ create distinct bounded cubes. An ordinary enrolled client is denied before a
129
129
  create request is sent. Cloud-only capabilities fail explicitly rather than
130
130
  being redirected.
131
131
 
132
+ ## Updating Borg
133
+
134
+ For an npm-global installation, use the whole-product command:
135
+
136
+ ```bash
137
+ borg update
138
+ ```
139
+
140
+ The command performs a zero-mutation registry preflight for the exact proposed
141
+ `borgmcp` and `borgmcp-server` versions, their SHA-512 integrity values, and an
142
+ identical exact `borgmcp-shared` dependency pin. Lookup and installation are
143
+ bound to the canonical `https://registry.npmjs.org/` authority and one proven npm
144
+ executable, global prefix, and global root. An alternate configured registry,
145
+ changed npm context, registry failure, malformed manifest, mismatched or ranged
146
+ shared pin, unsupported package manager, or ambiguous binary fails before
147
+ confirmation and mutation with manual-update guidance.
148
+
149
+ The client is installed first. Borg then verifies and re-enters through the new
150
+ client binary before any server mutation. If that install, verification, or
151
+ re-entry fails, the server controller and runtime are untouched. When a server
152
+ was already installed, the new client installs the target controller before
153
+ invoking `borg-mcp-server update --json`; this ensures the runtime phase uses the
154
+ current structured contract rather than the stale controller being replaced.
155
+ The client strictly decodes server update and status JSON and never executes a
156
+ rendered `next_action` string.
157
+
158
+ Final verification requires the installed client and server manifests, their
159
+ installed shared packages, controller identity, prepared artifact and integrity,
160
+ and any running artifact and pinned-TLS protocol identity to agree. A previously
161
+ stopped server remains stopped; matching controller and prepared runtime are
162
+ reported as `prepared; still stopped` without inventing a live protocol check.
163
+ An absent server is skipped rather than installed. Partial completion prints the
164
+ safe retry command `borg update --yes`. Borg never starts a stopped server,
165
+ daemonizes, or restarts agent processes.
166
+
167
+ `borg server update` remains the server-runtime-only command. It verifies and
168
+ activates the server artifact but deliberately does not rewrite the global
169
+ controller executable that is running it.
170
+
132
171
  After the first attach, the launched agent should run `borg_whoami` and
133
172
  `borg_roster` to verify its seat and begin coordinating. To create a second seat,
134
173
  the operator runs the explicit local assimilation command from the intended
@@ -144,6 +183,10 @@ replacement; only an authoritative eviction mints a fresh bearer and permits a
144
183
  remint. (The `retry_key` idempotency key applies to enrollment and cube-creation
145
184
  only — never to seat re-attach, which is idempotent through the bearer itself.)
146
185
 
186
+ The complete persisted-state model, exact recovery output, duplicate-session
187
+ guard, in-session re-attach contract, and deterministic multi-seat selection
188
+ order are documented in [`SEAT_LIFECYCLE.md`](SEAT_LIFECYCLE.md).
189
+
147
190
  The default discovery endpoint is `https://127.0.0.1:7091`. Explicit `--host` values may include another port but must pass the same trust and endpoint policy.
148
191
 
149
192
  ## Recovery commands
package/docs/RELEASING.md CHANGED
@@ -118,8 +118,18 @@ The annotated `v2.1.1` tag object
118
118
  `db0a6a76744928e0067eb03b8a236076c56ae758`. Workflow run `30174878044`, attempt 1,
119
119
  successfully published that exact source as `borgmcp@2.1.1`; the same-run artifact report records integrity
120
120
  `sha512-nZJ3i6LBIj/4743mqVRJTUH3YGmC8HfC/NuQb7eOv+/K/dyBogDnwZ3opiZiZSe4LE5CXuG72Sip7cPRoCoZrA==`.
121
+ Never move, replace, reuse, or rerun that tag or workflow. The annotated `v2.2.0` tag object
122
+ `edf12fcd4c56eb0ad59917269aaeee223b36bd53` peels to protected-main commit
123
+ `db4f374e88c24dadee47d5400537890cad1e5f40`. Workflow run `30195666955`, attempt 1,
124
+ successfully published that exact source as `borgmcp@2.2.0`; the same-run artifact report records integrity
125
+ `sha512-Pi3rpQH6f+V67OPoRIwyKjOFrCJ5y/39knCayExBmnMC5Urb8m+m9UQVNV7cWMuhd3S3WMM6JOkgcIYOVhWnxg==`.
126
+ Never move, replace, reuse, or rerun that tag or workflow. The annotated `v2.3.0` tag object
127
+ `24b1f8622a0a0b542dbac26c70662f5b499d3426` peels to protected-main commit
128
+ `9e708b7233486abdcd7fbc893a2d5bc818241d87`. Workflow run `30218208664`, attempt 1,
129
+ successfully published that exact source as `borgmcp@2.3.0`; the same-run artifact report records integrity
130
+ `sha512-xyiyC/HXvWnSiii621WdA4qBKehmBzZSaLGN6PZvf82FQUqVONrRyhl1SmOLzPlPXX9boNKSA1EuaVJrtUv6zA==`.
121
131
  Never move, replace, reuse, or rerun that tag or workflow. The next candidate
122
- uses the unused `v2.2.0` identity from a fresh reviewed protected-main commit
132
+ uses the unused `v2.4.0` identity from a fresh reviewed protected-main commit
123
133
  and requires the complete release gate again.
124
134
 
125
135
  ## Release Prerequisites
@@ -149,6 +159,55 @@ Before creating the release tag, independently verify all of these conditions:
149
159
  machine-checkable. A release tag created before they are resolved fails before
150
160
  dependency installation or publication.
151
161
 
162
+ ### Release identity preparation
163
+
164
+ Prepare the next stable identity only from a clean protected-main checkout. The
165
+ command requires evidence for the version being superseded because a workflow
166
+ run and artifact integrity cannot be derived from the repository tree:
167
+
168
+ ```sh
169
+ npm run release:prepare -- 2.3.0 \
170
+ --workflow-run-id 30195666955 \
171
+ --workflow-run-attempt 1 \
172
+ --artifact-integrity 'sha512-...'
173
+ ```
174
+
175
+ The command independently verifies the annotated tag, its peeled commit, the
176
+ exact successful tag-workflow attempt, and npm artifact integrity before writing
177
+ anything. It then deterministically updates only the manifest version, the two
178
+ root lockfile version fields, the extraction ledger, this document's immutable
179
+ release record, and the release-lane current-version/evidence assertions.
180
+
181
+ Release branches use the `release/` prefix and enter protected `main` through a
182
+ pull request. A direct push only updates the staging branch; it does
183
+ not produce a release-identity verdict and grants no review skip, merge
184
+ authority, or release authority.
185
+
186
+ For a pull request from a same-repository `release/` branch, the dedicated
187
+ release-identity workflow is loaded from the exact protected base commit. It
188
+ checks out that base, fetches the exact candidate commit into the Git object
189
+ database without checking it out, and invokes the base commit's verifier with
190
+ explicit base and candidate SHAs. It does not install or execute candidate
191
+ dependencies, package scripts, workflow code, actions, or verifier code. The
192
+ candidate is treated only as Git tree and blob data.
193
+
194
+ To reproduce the classification locally, resolve and pass exact commit SHAs:
195
+
196
+ ```sh
197
+ base_sha=$(git rev-parse origin/main)
198
+ candidate_sha=$(git rev-parse HEAD)
199
+ npm run verify:release-identity -- --base "$base_sha" --candidate "$candidate_sha"
200
+ ```
201
+
202
+ The verifier rechecks the recorded provenance against GitHub, npm, and Git. It
203
+ reconstructs the expected tree in a temporary Git index and requires exact tree
204
+ equality, exact changed paths, and exact per-file shapes. The release-identity
205
+ allowlist must remain byte-identical. The generated no-cloud occurrence allowlist
206
+ must also remain byte-identical; any source-line renumbering makes the commit a
207
+ code change rather than a release-identity change. A commit the classifier
208
+ rejects follows the full code review chain and must never be manually declared
209
+ identity-only.
210
+
152
211
  ## Repository Controls
153
212
 
154
213
  Repository settings are operator-owned and are not changed by this workflow.
@@ -172,6 +231,74 @@ Before preparing a candidate, independently verify:
172
231
 
173
232
  ## Release Workflow
174
233
 
234
+ ### Pre-tag composed exercise
235
+
236
+ Before creating a release tag, exercise the packed client against the selected
237
+ server artifact:
238
+
239
+ ```sh
240
+ npm run release:exercise -- \
241
+ --server /absolute/path/to/borgmcp-server.tgz \
242
+ --server-integrity 'sha512-...'
243
+ ```
244
+
245
+ The server integrity must come from the reviewed producer of that artifact. Run
246
+ the command once with the published counterpart. When the client and server are
247
+ being released together, run it again with the co-releasing server candidate.
248
+ The default path builds and packs the current client; `--client-tarball` exists
249
+ only for reproducing a reviewed packed client or running a negative control.
250
+
251
+ This harness exercises reviewed release candidates and their published
252
+ counterparts. It is not a containment sandbox for hostile or otherwise untrusted
253
+ packages and must not be used as one. The temporary install and data directories
254
+ isolate the reviewed exercise from normal product state; they are not an
255
+ operating-system security boundary.
256
+
257
+ The harness requires Node.js 22, npm 11.18.0, Python 3, and macOS or Linux. It
258
+ installs both tarballs into a private temporary project, bootstraps isolated
259
+ server data, and starts the installed server directly. It never uses
260
+ `borg server setup`, because registry-backed activation would select the
261
+ previously published server instead of a candidate.
262
+
263
+ Both composed terminal journeys run under a real PTY:
264
+
265
+ - `borg server dashboard` must render the attached-viewer footer, exit cleanly
266
+ on Ctrl-C, restore the cursor and alternate screen, and leave the server's
267
+ pinned-TLS process healthy at `GET /healthz` (204, empty body).
268
+ - `borg server start` must render the foreground-server footer, exit cleanly on
269
+ Ctrl-C, restore the terminal, stop the server, and release its health endpoint.
270
+
271
+ The client facade resolves `borg-mcp-server` by bare name. The harness therefore
272
+ uses a controlled shim only to arrange resolution, then verifies the outcome:
273
+ before trusting a frame, it reads the live process command and requires the
274
+ absolute installed server entry. Every client or server executable must resolve
275
+ inside the installed package root covered by the SRI cited for that role. Its
276
+ JSON report records the absolute path, version, and independently supplied
277
+ integrity for the client, dashboard listener, dashboard viewer, and foreground
278
+ listener/viewer roles. PATH ordering alone is never accepted as identity evidence.
279
+
280
+ The harness is a fail-closed release gate. A missing frame, non-PTY execution,
281
+ wrong journey footer, substituted artifact, nonzero exit, absent terminal
282
+ restore sequence, failed post-exit health assertion, timeout, or oversized
283
+ transcript fails the command. Its controls must remain demonstrably bidirectional:
284
+ the current client/server pairing passes; and a deliberately wrong server
285
+ integrity fails before either journey starts.
286
+
287
+ The terminal-restore negative control is specifically the packed pre-#146 client
288
+ from commit `81da7b970ffb4e76a35c7bc551c419fec702a3b6` composed with published
289
+ `borgmcp-server@0.2.0`, registry integrity
290
+ `sha512-squb0+vdy0q7l/4FeV7OTvSm7OiFWGsAjGhcVEXYrQc9K/8jJYduqPS90VBwaJRT6z221Gxf3xQ5SeZe/Qoncw==`.
291
+ That composition must fail on the missing cursor-restore sequence. A newer server
292
+ candidate can mask the old client's defect and is not a valid counterpart for
293
+ this negative control.
294
+
295
+ ```sh
296
+ npm run release:exercise -- \
297
+ --server borgmcp-server@0.2.0 \
298
+ --server-integrity 'sha512-squb0+vdy0q7l/4FeV7OTvSm7OiFWGsAjGhcVEXYrQc9K/8jJYduqPS90VBwaJRT6z221Gxf3xQ5SeZe/Qoncw==' \
299
+ --client-tarball /absolute/path/to/pre-146-borgmcp-2.1.1.tgz
300
+ ```
301
+
175
302
  The only trigger is a protected annotated `v<package version>` tag. Manual
176
303
  dispatch is intentionally absent so a second run cannot rebuild or publish an
177
304
  existing tag. The workflow rejects reruns, root `.npmrc`
@@ -194,6 +321,12 @@ The unprivileged `verify` job performs one sequence:
194
321
  7. Upload only the tarball and its verifier-generated report as the same-run
195
322
  release artifact.
196
323
 
324
+ After `verify` succeeds, the designated Queen operator alone approves the
325
+ `npm-publish` environment. There is no separate pre-publication exact-artifact
326
+ Security gate: the verify job is the mechanical authority for the exact bytes
327
+ that the publish job consumes. Environment approval authorizes publication; it
328
+ does not permit a rerun, a rebuilt artifact, or approval by another actor.
329
+
197
330
  The protected `publish` job alone receives `id-token: write`. It downloads the
198
331
  same-run artifact and rejects a report whose package name or version differs
199
332
  from the release, a version that already exists, an unclaimed package, or an
@@ -208,13 +341,21 @@ is no post-publication registry readback job: registry metadata and install
208
341
  visibility propagate asynchronously and cannot invalidate an immutable
209
342
  publication after npm accepts it.
210
343
 
344
+ Separately, once the release is installable from the canonical registry, install
345
+ it into an isolated prefix and exercise the real user update path end to end.
346
+ This is product verification, not publication validation: failure routes a new
347
+ reviewed fix and never invalidates, rebuilds, retags, or reruns the immutable
348
+ release. Do not repeat byte comparisons, integrity/SRI checks, packed-version
349
+ checks, source-tree verification, dist-tag readback, or provenance readback that
350
+ the exact-artifact `verify` and publish jobs already completed.
351
+
211
352
  No separate checksum file is needed: the tarball verifier records canonical
212
353
  SHA-512 SRI in the artifact report. GitHub's same-run artifact transport and the
213
354
  report bind the reviewed candidate without repeated SHA512 choreography.
214
355
 
215
- Rely on npm Trusted Publishing and provenance at publication time. Do not add a
216
- post-publication registry readback, reconstruct DSSE, in-toto, SLSA,
217
- workflow-ref, or builder statements locally.
356
+ Rely on npm Trusted Publishing. Do not perform post-publication provenance
357
+ readback or reconstruct DSSE, in-toto, SLSA, workflow-ref, or builder statements
358
+ locally.
218
359
  Do not add cross-run tuple variables, cross-run artifact selection, duplicate
219
360
  builds, duplicate package verification, checksum bundles, or SBOM ceremony.
220
361
 
@@ -0,0 +1,242 @@
1
+ # Seat Lifecycle and Recovery
2
+
3
+ This guide describes the local seat behavior shipped by the client. A seat is
4
+ one server-side drone identity plus its client-generated session bearer and
5
+ worktree binding. The bearer and binding are stored together in the private
6
+ `seats.json` store; commands never reconstruct one from the other.
7
+
8
+ ## Stored states
9
+
10
+ Only two seat states are persisted:
11
+
12
+ | State | Meaning | What can use it |
13
+ | --- | --- | --- |
14
+ | `pending` | The client persisted a fresh bearer before attach completed. It may be unbound, or bound to a worktree after a recoverable finalize failure. | Retry logic only. It is never hydrated as a live seat. |
15
+ | `active` | Attach completed and the server session metadata, display metadata, and worktree binding were committed together. | Normal coordination and re-attach. |
16
+
17
+ `revoked`, `superseded`, and `evicted` are server verdicts, not values written
18
+ to `seats.json`. Revocation and supersession do not silently delete local
19
+ state. An authoritative eviction is the sole verdict that permits the terminal
20
+ assimilation flow to replace a rejected seat. `borg reset-local-seat` is the
21
+ explicit offline deletion path.
22
+
23
+ Seat sessions do not expire. A legacy `expiresAt` field is ignored, and current
24
+ attach responses containing `expires_at` are rejected. An enrollment
25
+ invitation can expire; recovery is to request a new invitation. An expired
26
+ stream cursor is also separate from seat identity and is recovered by resetting
27
+ the cursor and reconnecting.
28
+
29
+ The whole seat store fails closed if any persisted record is malformed. The
30
+ store reader raises:
31
+
32
+ ```text
33
+ Borg seat store is malformed or has an unsupported version; refusing to read it
34
+ ```
35
+
36
+ The file is not rewritten and no bearer material is included in the error.
37
+
38
+ ## Enrollment, attach, and retry
39
+
40
+ Enrollment establishes the authority-bound parent credential used to request
41
+ seat attachment. Invitation enrollment persists its retry tuple before network
42
+ I/O; a rejected or expired invitation requires a new invitation.
43
+
44
+ For a seat attach, the client:
45
+
46
+ 1. Mints a 32-byte base64url session bearer and persists a `pending` record
47
+ before sending it.
48
+ 2. Sends that bearer to the server. The server stores only its digest.
49
+ 3. On success, atomically changes the same record to `active` and adds the
50
+ server metadata and worktree binding.
51
+
52
+ An ambiguous retry reuses the same persisted bearer, so the server resolves the
53
+ same seat instead of minting a duplicate. A crash after server acceptance but
54
+ before local finalization is also resumed from that pending record. If a
55
+ sibling worktree was already created when activation failed, Borg binds the
56
+ still-pending record to that worktree without making it live; rerunning from
57
+ there resends the same bearer.
58
+
59
+ Only an `implicit-sibling:<id>` pending operation is eligible for automatic
60
+ implicit retry adoption. A `named-sibling:<name>` operation remains distinct
61
+ and is never silently adopted by an unnamed sibling launch.
62
+
63
+ If activation fails and the exact pending record is successfully bound to the
64
+ spawned worktree, Borg preserves that worktree and the printed retry reuses the
65
+ same seat. If the record is missing, replaced, or unavailable, Borg removes the
66
+ spawned worktree and does not print a client retry command: the server may
67
+ already have accepted the seat, and the current protocol has no client-side
68
+ operation identifier or cleanup endpoint that can prove reuse or remove it.
69
+
70
+ ## Re-attaching from a terminal
71
+
72
+ `borg assimilate --here` first resolves this worktree's saved active seat and
73
+ probes it. A live seat is reattached with the identical bearer; its saved role
74
+ is authoritative, and no new drone is minted. The success line is:
75
+
76
+ ```text
77
+ re-attached to existing seat <drone-label> (same session, no new drone minted)
78
+ ```
79
+
80
+ Before relaunch, Borg checks the seat's inbox-monitor PID. A live holder refuses
81
+ the relaunch, names its PID, and gives both the safe fresh-worktree path and the
82
+ explicit one-time override:
83
+
84
+ ```text
85
+ This worktree's Borg seat already has a live session (inbox monitor pid <pid>).
86
+ No agent was launched. Stop the existing session or use a fresh worktree with `borg assimilate --worktree <name>`. If the live monitor is wedged, override once with `borg assimilate --here --force`.
87
+ ```
88
+
89
+ For a stale or missing heartbeat, the first line adds:
90
+
91
+ ```text
92
+ Its heartbeat is <stale|missing>, so the process may be wedged.
93
+ ```
94
+
95
+ A dead, absent, malformed, or unreadable PID file is not evidence of a live
96
+ holder, so ordinary crash recovery proceeds without `--force`. The probe is
97
+ read-only; it does not reap, kill, rewrite, or clear monitor state.
98
+
99
+ If a second monitor reaches the singleton after launch, it exits successfully
100
+ without tailing and prints:
101
+
102
+ ```text
103
+ borg-inbox-monitor: seat inbox "<path>" is already monitored by a live instance (pid <pid>); yielding — another session likely holds this seat.
104
+ ```
105
+
106
+ The existing monitor remains the sole inbox reader.
107
+
108
+ ## Re-attaching from an agent session
109
+
110
+ The `borg_assimilate` MCP tool is re-attach-only. It can reuse this worktree's
111
+ saved seat for the requested cube, but it cannot create a seat or switch the
112
+ worktree to another cube.
113
+
114
+ With no saved identity, it returns:
115
+
116
+ ```text
117
+ ◼ This session has no drone seat for this worktree, and in-session borg_assimilate is re-attach-only (it never creates seats — gh#780). To create a seat for cube "<cube>", run `borg assimilate` in a terminal — it spawns the worktree, persists the identity, and launches the agent in one step.
118
+ ```
119
+
120
+ For another cube, it returns:
121
+
122
+ ```text
123
+ ◼ This worktree is attached to cube "<active-cube>"; in-session borg_assimilate is re-attach-only and cannot switch to "<requested-cube>" (gh#780). To work in "<requested-cube>", run `borg assimilate` in a terminal from that project (or spawn a fresh worktree for it).
124
+ ```
125
+
126
+ A successful in-session re-attach begins:
127
+
128
+ ```text
129
+ # Re-attached to cube: <cube>
130
+
131
+ **Drone label:** <drone-label>
132
+ **Seat:** existing identity reused — no new drone minted (gh#780)
133
+ ```
134
+
135
+ If the server no longer accepts the saved seat, the tool fails rather than
136
+ reminting:
137
+
138
+ ```text
139
+ ◼ Re-attach failed — this worktree's saved seat is unreachable (likely evicted or its session was revoked). Server said: <server-error>
140
+ Recover by running `borg assimilate` in a terminal to create a fresh seat; in-session borg_assimilate never re-mints (gh#780).
141
+ ```
142
+
143
+ ## Terminal verdicts and recovery
144
+
145
+ ### Revoked or superseded session
146
+
147
+ A pin-matched `SESSION_REVOKED` or `SESSION_REJECTED` is diagnosis only. Attach
148
+ does not mutate the saved seat. The exact output is one of:
149
+
150
+ ```text
151
+ Local session was revoked.
152
+ Next: run borg reset-local-seat, then borg assimilate --host <server> --enroll.
153
+ ```
154
+
155
+ ```text
156
+ Local session was superseded by a newer enrollment.
157
+ Next: run borg reset-local-seat, then borg assimilate --host <server> --enroll.
158
+ ```
159
+
160
+ Run the named offline reset, obtain a new invitation, and enroll again.
161
+
162
+ ### Evicted seat
163
+
164
+ Only an authoritative `410 DRONE_EVICTED` permits replacement of a rejected
165
+ saved seat. If the pre-attach probe establishes eviction, the terminal
166
+ assimilation flow may replace the bearer and attach a fresh seat. Ambiguous
167
+ transport, trust, endpoint, credential, or server failures never authorize that
168
+ replacement.
169
+
170
+ If the attach itself returns the eviction after re-attach began, Borg does not
171
+ claim recovery. It prints:
172
+
173
+ ```text
174
+ This worktree's saved seat on <server> was evicted. Remove this worktree, or from a fresh worktree run `borg assimilate --host <server>`.
175
+ ```
176
+
177
+ The stream path also treats typed `DRONE_EVICTED` as terminal: it marks that
178
+ exact local candidate rejected, stops retrying that seat, and does not restart
179
+ the loop as though the failure were transient.
180
+
181
+ ### Rejected or expired invitation
182
+
183
+ An invitation failure is enrollment recovery, not a seat reset:
184
+
185
+ ```text
186
+ The enrollment invitation for <server> was rejected or expired. Ask the server operator for a replacement invitation — the server can stay running: for an unclaimed owner client run `borg-mcp-server owner-invite`; for an ordinary client run `borg-mcp-server client-invite`. Then rerun `borg assimilate --host <server> --enroll`.
187
+ ```
188
+
189
+ ## Offline reset
190
+
191
+ `borg reset-local-seat` clears only the current worktree's saved credential and
192
+ cube binding. It makes no network call, revokes nothing server-side, and leaves
193
+ the server, trust anchor, cube, and sibling worktrees unchanged.
194
+
195
+ Its shipped help describes the command as:
196
+
197
+ ```text
198
+ borg reset-local-seat (borgmcp <version>) — clear ONLY this worktree's saved local seat
199
+
200
+ Usage:
201
+ borg reset-local-seat Reset this worktree's saved seat (TTY confirms [y/N])
202
+ borg reset-local-seat --host <host> No-op unless this worktree's seat is on <host>
203
+ borg reset-local-seat --yes Reset without a prompt (required when non-interactive)
204
+ borg reset-local-seat --help Show this help
205
+ ```
206
+
207
+ The command snapshots the exact binding and token-safe bearer observation,
208
+ prompts outside the store lock, then revalidates the same seat before deleting
209
+ it. If another process replaced or reset the seat, the command is an honest
210
+ no-op rather than deleting the successor. After a successful reset, Borg reads
211
+ the same worktree again without hydrating any bearer. If another saved active
212
+ seat remains on the same server, the command points to
213
+ `borg assimilate --host <server> --here` and states that the server will
214
+ revalidate it before launch. Otherwise it gives the fresh-enrollment path:
215
+
216
+ ```text
217
+ borg assimilate --host <server> --enroll
218
+ ```
219
+
220
+ ## Multiple seats and deterministic selection
221
+
222
+ An in-place seat uses operation kind `seat` and operation key
223
+ `current-worktree`. A sibling uses operation kind `sibling`; named siblings key
224
+ on their worktree name, while implicit siblings receive a unique operation key.
225
+ These operations derive distinct credential references and distinct bearers.
226
+ Creating a sibling therefore never moves or overwrites the original
227
+ worktree's active seat.
228
+
229
+ Historical recovery or interrupted operations can leave more than one active
230
+ record bound to one worktree. Every process uses the same total order:
231
+
232
+ 1. A candidate not definitively rejected in this process comes before a
233
+ rejected, revoked, or evicted candidate.
234
+ 2. A `sibling` candidate finalized into this worktree comes before an older
235
+ in-place `seat` candidate.
236
+ 3. Remaining ties use the credential reference's lexical order.
237
+
238
+ Only `active` records participate in normal selection. A bound `pending` record
239
+ is discoverable only by the convergence path that resends its exact bearer.
240
+ This ordering is shared by SessionStart, kickoff construction, MCP children,
241
+ stream ownership, and normal active-cube hydration, so one process does not
242
+ select different seats for different surfaces.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "borgmcp",
3
- "version": "2.2.0",
3
+ "version": "2.4.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",
@@ -29,14 +29,17 @@
29
29
  "start": "node dist/index.js",
30
30
  "test": "npm run test:unit && npm run test:release",
31
31
  "test:unit": "vitest run --config vitest.config.ts",
32
- "test:release": "node --test test/release-lane.test.mjs",
32
+ "test:release": "node --test test/release-lane.test.mjs test/release-identity.test.mjs",
33
33
  "onboarding:smoke": "node scripts/onboarding-smoke.mjs",
34
+ "release:prepare": "node scripts/release-identity.mjs prepare",
35
+ "release:exercise": "npm run build && node scripts/release-exercise.mjs",
34
36
  "release:check": "npm run verify:public-source && npm run verify:release && npm run verify:lock && npm run check && npm test && npm run build && npm run onboarding:smoke && npm run verify:package",
35
37
  "verify:artifact": "node scripts/verify-packed-artifact.mjs",
36
38
  "verify:public-source": "node scripts/verify-public-source.mjs",
37
39
  "verify:package": "node scripts/verify-local-package.mjs",
38
40
  "verify:release": "node scripts/verify-release-readiness.mjs",
39
- "verify:lock": "node scripts/verify-lock-registry.mjs"
41
+ "verify:lock": "node scripts/verify-lock-registry.mjs",
42
+ "verify:release-identity": "node scripts/release-identity.mjs verify"
40
43
  },
41
44
  "files": [
42
45
  "dist",