@vibe-commit/capture 0.7.0 → 0.9.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 (152) hide show
  1. package/README.md +238 -7
  2. package/dist/account_not_here.d.ts +15 -0
  3. package/dist/account_not_here.js +25 -0
  4. package/dist/account_not_here.js.map +1 -0
  5. package/dist/agents/claude_code.js +13 -0
  6. package/dist/agents/claude_code.js.map +1 -1
  7. package/dist/agents/codex_cli.js +11 -0
  8. package/dist/agents/codex_cli.js.map +1 -1
  9. package/dist/agents/cursor.js +7 -1
  10. package/dist/agents/cursor.js.map +1 -1
  11. package/dist/agents/registry.d.ts +7 -0
  12. package/dist/agents/registry.js +9 -0
  13. package/dist/agents/registry.js.map +1 -1
  14. package/dist/agents/types.d.ts +32 -0
  15. package/dist/agents/types.js.map +1 -1
  16. package/dist/bounded_id.d.ts +29 -0
  17. package/dist/bounded_id.js +42 -0
  18. package/dist/bounded_id.js.map +1 -0
  19. package/dist/codex_folders.d.ts +340 -0
  20. package/dist/codex_folders.js +1448 -0
  21. package/dist/codex_folders.js.map +1 -0
  22. package/dist/commands/auth.d.ts +7 -0
  23. package/dist/commands/auth.js +21 -0
  24. package/dist/commands/auth.js.map +1 -1
  25. package/dist/commands/backfill.d.ts +29 -7
  26. package/dist/commands/backfill.js +387 -109
  27. package/dist/commands/backfill.js.map +1 -1
  28. package/dist/commands/browser_credential.d.ts +4 -2
  29. package/dist/commands/browser_credential.js +5 -2
  30. package/dist/commands/browser_credential.js.map +1 -1
  31. package/dist/commands/connect.d.ts +10 -1
  32. package/dist/commands/connect.js +14 -9
  33. package/dist/commands/connect.js.map +1 -1
  34. package/dist/commands/connect_account.d.ts +135 -0
  35. package/dist/commands/connect_account.js +321 -0
  36. package/dist/commands/connect_account.js.map +1 -0
  37. package/dist/commands/connect_picker.js +204 -29
  38. package/dist/commands/connect_picker.js.map +1 -1
  39. package/dist/commands/device_credential.d.ts +3 -1
  40. package/dist/commands/device_credential.js +1 -0
  41. package/dist/commands/device_credential.js.map +1 -1
  42. package/dist/commands/finalize.d.ts +67 -0
  43. package/dist/commands/finalize.js +450 -114
  44. package/dist/commands/finalize.js.map +1 -1
  45. package/dist/commands/finish_mint.d.ts +28 -0
  46. package/dist/commands/finish_mint.js +16 -4
  47. package/dist/commands/finish_mint.js.map +1 -1
  48. package/dist/commands/scan.d.ts +28 -0
  49. package/dist/commands/scan.js +11 -0
  50. package/dist/commands/scan.js.map +1 -1
  51. package/dist/commands/status.d.ts +19 -1
  52. package/dist/commands/status.js +123 -14
  53. package/dist/commands/status.js.map +1 -1
  54. package/dist/commands/status_machine.d.ts +12 -3
  55. package/dist/commands/status_machine.js +111 -13
  56. package/dist/commands/status_machine.js.map +1 -1
  57. package/dist/commands/sync_reason.d.ts +17 -0
  58. package/dist/commands/sync_reason.js +25 -0
  59. package/dist/commands/sync_reason.js.map +1 -0
  60. package/dist/consent.d.ts +131 -3
  61. package/dist/consent.js +248 -14
  62. package/dist/consent.js.map +1 -1
  63. package/dist/copy/strings.d.ts +165 -4
  64. package/dist/copy/strings.js +190 -7
  65. package/dist/copy/strings.js.map +1 -1
  66. package/dist/folder_grants.d.ts +44 -0
  67. package/dist/folder_grants.js +101 -0
  68. package/dist/folder_grants.js.map +1 -0
  69. package/dist/git.d.ts +26 -4
  70. package/dist/git.js +82 -11
  71. package/dist/git.js.map +1 -1
  72. package/dist/grants_sync.d.ts +165 -0
  73. package/dist/grants_sync.js +289 -0
  74. package/dist/grants_sync.js.map +1 -0
  75. package/dist/grants_verb.d.ts +70 -0
  76. package/dist/grants_verb.js +121 -0
  77. package/dist/grants_verb.js.map +1 -0
  78. package/dist/hooks/entry.d.ts +30 -50
  79. package/dist/hooks/entry.js +601 -561
  80. package/dist/hooks/entry.js.map +1 -1
  81. package/dist/hooks/fire_lock.d.ts +31 -0
  82. package/dist/hooks/fire_lock.js +120 -12
  83. package/dist/hooks/fire_lock.js.map +1 -1
  84. package/dist/hooks/session_grants.d.ts +59 -0
  85. package/dist/hooks/session_grants.js +91 -0
  86. package/dist/hooks/session_grants.js.map +1 -0
  87. package/dist/hooks/session_start.d.ts +28 -7
  88. package/dist/hooks/session_start.js +55 -11
  89. package/dist/hooks/session_start.js.map +1 -1
  90. package/dist/index.js +22 -5
  91. package/dist/index.js.map +1 -1
  92. package/dist/machine_state.d.ts +44 -1
  93. package/dist/machine_state.js +75 -12
  94. package/dist/machine_state.js.map +1 -1
  95. package/dist/oauth/discovery.js +2 -1
  96. package/dist/oauth/discovery.js.map +1 -1
  97. package/dist/oauth/pkce.js +2 -1
  98. package/dist/oauth/pkce.js.map +1 -1
  99. package/dist/oauth/retire.d.ts +10 -0
  100. package/dist/oauth/retire.js +13 -0
  101. package/dist/oauth/retire.js.map +1 -1
  102. package/dist/paths.d.ts +54 -1
  103. package/dist/paths.js +88 -12
  104. package/dist/paths.js.map +1 -1
  105. package/dist/pending_revoke.d.ts +117 -0
  106. package/dist/pending_revoke.js +233 -0
  107. package/dist/pending_revoke.js.map +1 -0
  108. package/dist/pending_revoke_file.d.ts +55 -0
  109. package/dist/pending_revoke_file.js +74 -0
  110. package/dist/pending_revoke_file.js.map +1 -0
  111. package/dist/physical_path.d.ts +46 -0
  112. package/dist/physical_path.js +151 -0
  113. package/dist/physical_path.js.map +1 -0
  114. package/dist/picker.d.ts +82 -5
  115. package/dist/picker.js +183 -10
  116. package/dist/picker.js.map +1 -1
  117. package/dist/picker_checklist.d.ts +27 -3
  118. package/dist/picker_checklist.js +81 -6
  119. package/dist/picker_checklist.js.map +1 -1
  120. package/dist/policy.d.ts +24 -1
  121. package/dist/policy.js +30 -2
  122. package/dist/policy.js.map +1 -1
  123. package/dist/post.d.ts +55 -2
  124. package/dist/post.js +72 -22
  125. package/dist/post.js.map +1 -1
  126. package/dist/project.d.ts +89 -0
  127. package/dist/project.js +123 -0
  128. package/dist/project.js.map +1 -1
  129. package/dist/redact.d.ts +77 -2
  130. package/dist/redact.js +713 -47
  131. package/dist/redact.js.map +1 -1
  132. package/dist/session_targets.d.ts +713 -0
  133. package/dist/session_targets.js +2602 -0
  134. package/dist/session_targets.js.map +1 -0
  135. package/dist/spool.d.ts +12 -0
  136. package/dist/spool.js +29 -1
  137. package/dist/spool.js.map +1 -1
  138. package/dist/spool_union.d.ts +51 -0
  139. package/dist/spool_union.js +57 -0
  140. package/dist/spool_union.js.map +1 -0
  141. package/dist/state.d.ts +5 -0
  142. package/dist/state.js +19 -1
  143. package/dist/state.js.map +1 -1
  144. package/dist/system_message.d.ts +25 -2
  145. package/dist/system_message.js +29 -5
  146. package/dist/system_message.js.map +1 -1
  147. package/dist/text_tail.d.ts +8 -0
  148. package/dist/text_tail.js +19 -0
  149. package/dist/text_tail.js.map +1 -0
  150. package/dist/version.d.ts +1 -1
  151. package/dist/version.js +1 -1
  152. package/package.json +3 -3
package/dist/post.d.ts CHANGED
@@ -21,6 +21,7 @@ import { type SelectedAgentId } from "./agents/types.js";
21
21
  import type { IngestCredential } from "./credential.js";
22
22
  import { type Disposition, type RecordCutter } from "./policy.js";
23
23
  import { type InferredGroupId, type Observed } from "./spool.js";
24
+ import type { SpoolSources } from "./spool_union.js";
24
25
  /** Production data plane. Overridable for tests and for a self-hosted server. */
25
26
  export declare const DEFAULT_INGEST_URL = "https://api.vibecommit.ai/ingest/v1/session";
26
27
  /**
@@ -230,8 +231,10 @@ export type SendOutcome = {
230
231
  * ⚠ Read from the HEADER, never the body: `readErrorDetail` states that a
231
232
  * 2xx body is not read, not awaited and not parsed ON THE HOOK PATH, and
232
233
  * that property is why the hook's hot path cannot throw on a response. A
233
- * header costs a map lookup. (`connect` alone opts in to a 2xx body read,
234
- * for `conversation_id` — see `readConversationId`.)
234
+ * header costs a map lookup. (`connect` alone opts in to a 2xx body read of an
235
+ * INGEST reply, for `conversation_id` — see `readConversationId`. The only other 2xx
236
+ * body a hook reads is SessionStart's one bounded `GET /ingest/v1/grants`, which is
237
+ * not an ingest reply and does not go through `send` — see `hooks/session_grants.ts`.)
235
238
  */
236
239
  readonly captureId: string | null;
237
240
  /**
@@ -277,11 +280,48 @@ export type SendOutcome = {
277
280
  * credential-meta sidecar so state 5 can warn before the 365-day cap; it changes no disposition.
278
281
  */
279
282
  readonly credentialExpires?: string | null;
283
+ /**
284
+ * `X-Grant-Epoch` (slice 2, `CR-259`): the version of the user's account grants, on every credential-lane ingest 2xx and on a
285
+ * grants refusal. `null` when absent (a server that predates it) or not a non-negative integer.
286
+ *
287
+ * Read from the HEADER, like the others. It changes no disposition: `deliver` hands it to `noteGrantEpoch`, which marks
288
+ * `grants-account.json` stale when it is not the epoch this machine last recorded, and SessionStart's one bounded GET
289
+ * (`hooks/session_grants.ts`) is what answers that.
290
+ */
291
+ readonly grantEpoch?: number | null;
280
292
  }
281
293
  /** No response at all — DNS, refused, TLS, timeout. Not an HTTP status. */
282
294
  | {
283
295
  readonly kind: "unreachable";
284
296
  };
297
+ /**
298
+ * An error body is a handful of bytes by contract. Anything larger is not one
299
+ * this client parses — a cap so a misconfigured or hostile endpoint cannot make
300
+ * a hook buffer an arbitrary response into memory.
301
+ */
302
+ export declare const MAX_ERROR_BODY_BYTES: number;
303
+ /**
304
+ * ⛔ THE ONE CAPPED, TIMED BODY READER — `readErrorDetail` (non-2xx), `readConversationId` (`connect`'s opt-in
305
+ * 2xx) and `grants_sync.ts`'s two grants reads all read through it, so no bound can drift from another.
306
+ *
307
+ * Returns the parsed JSON (which may legitimately be `null`, an array or a scalar — the caller shapes it), or
308
+ * `undefined` for EVERY failure: no body, a declared length over the cap, a streamed body that crosses the cap,
309
+ * an abort, a stalled or reset stream, invalid JSON. **NEVER THROWS, on any input.**
310
+ *
311
+ * - BYTES: the declared `content-length` is checked first, and the stream is then counted chunk by chunk and
312
+ * CANCELLED the moment it crosses `maxBytes` (`MAX_ERROR_BODY_BYTES`, 64 KiB, unless a CLI verb asks for more) — so a chunked body with no length cannot be
313
+ * buffered whole before a post-hoc check (the old `await res.text()` did exactly that, contradicting
314
+ * `readErrorDetail`'s own comment that a hostile endpoint cannot make a hook buffer an arbitrary response).
315
+ * - TIME: every read is RACED against the request's abort signal rather than trusting the abort to reach the
316
+ * stream. Aborting is supposed to reject a pending `reader.read()` (it does, in a direct probe), but the
317
+ * bound is then a property of this function and not of the HTTP client's internals.
318
+ */
319
+ export declare function readCappedJson(res: Response, signal: AbortSignal, maxBytes?: number): Promise<unknown>;
320
+ /**
321
+ * `X-Grant-Epoch`: a non-negative integer, or null. Digits only (and a sane length), so a header that is not one reads as
322
+ * "the server did not say" and never as `NaN`, a negative, or a float that could equal nothing.
323
+ */
324
+ export declare function parseGrantEpoch(raw: string | null): number | null;
285
325
  /**
286
326
  * `X-Credential-Expires`: an ISO 8601 instant, or null. Only a string that parses as a date is believed —
287
327
  * the value is printed (as a date) to a person and compared against the clock, so a header that is not one
@@ -446,6 +486,12 @@ export interface DeliveryContext {
446
486
  * `undefined` here means the same as an empty `inferredRewrites`: nothing to drop.
447
487
  */
448
488
  readonly inferredGroups?: readonly InferredGroupId[];
489
+ /**
490
+ * ⛔ WHERE EACH ACKNOWLEDGEMENT GOES (any-folder capture, O7). A target's spools are the union of its repo's work trees' spools
491
+ * (`spool_union.ts`), and a union cannot be truncated "by the first N lines". When absent, the ledger's own spool is the one
492
+ * source and every drop below is exactly what it always was.
493
+ */
494
+ readonly spoolSources?: SpoolSources;
449
495
  /**
450
496
  * ⭐ `TODOS[146]` — assert the session is over (`X-Session-Final: 1`) and send EVEN WHEN THE
451
497
  * OFFSET IS AT EOF, as an empty delta: the common one-shot case is a session whose bytes all
@@ -478,6 +524,13 @@ export interface DeliveryContext {
478
524
  readonly rawBytes: number;
479
525
  readonly frameBytes: number;
480
526
  };
527
+ /**
528
+ * C25 — THE CALLER'S LOCK HEARTBEAT, called right BEFORE every request this delivery makes (the first attempt of a delta, its
529
+ * lean retry, each halving of a 413). `true`: the session's writer lock is still ours and was just re-stamped. `false`: it is
530
+ * not, and NO request is made and nothing is persisted: the delivery returns `nothing-to-send` and the caller, which asked
531
+ * the question, knows why. Set by `finalize` and `backfill` only; a hook is ended by its own watchdog and sets none.
532
+ */
533
+ readonly beforeRequest?: () => boolean;
481
534
  }
482
535
  /**
483
536
  * Send the undelivered span of one transcript file, in deltas — PR 4a.
package/dist/post.js CHANGED
@@ -20,10 +20,11 @@
20
20
  import { createHash } from "node:crypto";
21
21
  import { agentForTranscript } from "./agents/registry.js";
22
22
  import { UNKNOWN_AGENT_ID } from "./agents/types.js";
23
+ import { noteGrantEpoch, recordRefused } from "./consent.js";
23
24
  import { headerSafe, sessionIdSafe } from "./header_safety.js";
24
25
  import { recordInferredSkipped } from "./inferred_tally.js";
25
26
  import { clearOrgPending, markOrgPending } from "./org_pending.js";
26
- import { MAX_DELTA_FRAME_BYTES, MAX_DELTA_RAW_BYTES, classify, markDelivered, markHeld, markSkipped, nextSpan, planChunk, resolveCaps, splitPoint, } from "./policy.js";
27
+ import { MAX_DELTA_FRAME_BYTES, MAX_DELTA_RAW_BYTES, REPOSITORY_EXCLUDED, classify, markDelivered, markHeld, markSkipped, nextSpan, planChunk, resolveCaps, splitPoint, } from "./policy.js";
27
28
  import { fileState, isStopped, loadSessionState, saveSessionState, withFileState, } from "./state.js";
28
29
  import { INFERRED_SET_ASIDE_AFTER, dropInferredGroups, dropRewrites, dropSpooled, isFullSha, recordInferredAttempt, setAsideInferredGroup, settleSpooled, } from "./spool.js";
29
30
  import { CLIENT_VERSION, CLIENT_VERSION_HEADER } from "./version.js";
@@ -288,7 +289,7 @@ export const CAPTURE_NOT_APPROVED = "capture_not_approved";
288
289
  * this client parses — a cap so a misconfigured or hostile endpoint cannot make
289
290
  * a hook buffer an arbitrary response into memory.
290
291
  */
291
- const MAX_ERROR_BODY_BYTES = 64 * 1024;
292
+ export const MAX_ERROR_BODY_BYTES = 64 * 1024;
292
293
  /**
293
294
  * Parse an error body, or return null. **NEVER THROWS, on any input.**
294
295
  *
@@ -300,10 +301,12 @@ const MAX_ERROR_BODY_BYTES = 64 * 1024;
300
301
  * caller to the branch that asserts nothing. That is the honest default,
301
302
  * because `null` already means *not determinable*.
302
303
  *
303
- * ⚠ Read ONLY on a non-2xx. On the hook path a 2xx body is not read, not
304
+ * ⚠ Read ONLY on a non-2xx. On the hook path an INGEST reply's 2xx body is not read, not
304
305
  * awaited, and not parsed, so the hook's hot path is untouched. `connect`
305
306
  * opts in to reading ONE field of a 2xx body through `readConversationId`
306
- * below; nothing else ever calls that.
307
+ * below; nothing else ever calls that. (Slice 2: SessionStart's one bounded GET of the
308
+ * account's grants reads a 2xx body too, through `readCappedJson` in `fetchAccountGrants` —
309
+ * a separate request, once an hour at most, never on an ingest reply.)
307
310
  */
308
311
  async function readErrorDetail(res, signal) {
309
312
  if (res.ok)
@@ -322,26 +325,26 @@ async function readErrorDetail(res, signal) {
322
325
  return { code: error, ownersNotified };
323
326
  }
324
327
  /**
325
- * ⛔ THE ONE CAPPED, TIMED BODY READER — `readErrorDetail` (non-2xx) and `readConversationId` (`connect`'s opt-in
326
- * 2xx) both read through it, so neither bound can drift from the other.
328
+ * ⛔ THE ONE CAPPED, TIMED BODY READER — `readErrorDetail` (non-2xx), `readConversationId` (`connect`'s opt-in
329
+ * 2xx) and `grants_sync.ts`'s two grants reads all read through it, so no bound can drift from another.
327
330
  *
328
331
  * Returns the parsed JSON (which may legitimately be `null`, an array or a scalar — the caller shapes it), or
329
332
  * `undefined` for EVERY failure: no body, a declared length over the cap, a streamed body that crosses the cap,
330
333
  * an abort, a stalled or reset stream, invalid JSON. **NEVER THROWS, on any input.**
331
334
  *
332
335
  * - BYTES: the declared `content-length` is checked first, and the stream is then counted chunk by chunk and
333
- * CANCELLED the moment it crosses `MAX_ERROR_BODY_BYTES` — so a chunked body with no length cannot be
336
+ * CANCELLED the moment it crosses `maxBytes` (`MAX_ERROR_BODY_BYTES`, 64 KiB, unless a CLI verb asks for more) — so a chunked body with no length cannot be
334
337
  * buffered whole before a post-hoc check (the old `await res.text()` did exactly that, contradicting
335
338
  * `readErrorDetail`'s own comment that a hostile endpoint cannot make a hook buffer an arbitrary response).
336
339
  * - TIME: every read is RACED against the request's abort signal rather than trusting the abort to reach the
337
340
  * stream. Aborting is supposed to reject a pending `reader.read()` (it does, in a direct probe), but the
338
341
  * bound is then a property of this function and not of the HTTP client's internals.
339
342
  */
340
- async function readCappedJson(res, signal) {
343
+ export async function readCappedJson(res, signal, maxBytes = MAX_ERROR_BODY_BYTES) {
341
344
  if (res.body === null)
342
345
  return undefined;
343
346
  const declared = Number(res.headers.get("content-length"));
344
- if (Number.isFinite(declared) && declared > MAX_ERROR_BODY_BYTES)
347
+ if (Number.isFinite(declared) && declared > maxBytes)
345
348
  return undefined;
346
349
  const reader = res.body.getReader();
347
350
  let onAbort;
@@ -361,7 +364,7 @@ async function readCappedJson(res, signal) {
361
364
  if (done)
362
365
  break;
363
366
  size += value.byteLength;
364
- if (size > MAX_ERROR_BODY_BYTES) {
367
+ if (size > maxBytes) {
365
368
  // Not awaited: a cancel on a stalled stream is the other thing that may never settle.
366
369
  reader.cancel().catch(() => undefined);
367
370
  return undefined;
@@ -386,9 +389,10 @@ const UUID_SHAPE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12
386
389
  * **NEVER THROWS, on any input, and never changes the outcome.**
387
390
  *
388
391
  * ⛔ **ONLY `connect` CALLS THIS** (`SendOptions.readConversationId`, eng-2 D2 = A). The hook's
389
- * hot path never reads a 2xx body — that property is why it cannot stall or throw on one —
392
+ * hot path never reads an ingest reply's 2xx body — that property is why it cannot stall or throw on one —
390
393
  * and an unconditional read here would put a new wait and a new failure point on the hook that
391
- * runs after every turn, to serve a line only `connect` prints.
394
+ * runs after every turn, to serve a line only `connect` prints. (The one 2xx body a hook does read is
395
+ * SessionStart's GET of the account's grants — a different request, bounded at 1,000 ms and 64 KiB.)
392
396
  *
393
397
  * Reads through `readCappedJson`, the same capped, signal-raced reader `readErrorDetail` uses, so the byte
394
398
  * and time bounds are one definition. A stalled or reset body reads as "no id": the 2xx stays a 2xx.
@@ -416,6 +420,18 @@ function parseCommitsRetry(raw) {
416
420
  .map((s) => s.trim().toLowerCase())
417
421
  .filter((s) => isFullSha(s));
418
422
  }
423
+ /**
424
+ * `X-Grant-Epoch`: a non-negative integer, or null. Digits only (and a sane length), so a header that is not one reads as
425
+ * "the server did not say" and never as `NaN`, a negative, or a float that could equal nothing.
426
+ */
427
+ export function parseGrantEpoch(raw) {
428
+ if (raw === null)
429
+ return null;
430
+ const value = raw.trim();
431
+ if (!/^\d{1,15}$/.test(value))
432
+ return null;
433
+ return Number(value);
434
+ }
419
435
  /**
420
436
  * `X-Credential-Expires`: an ISO 8601 instant, or null. Only a string that parses as a date is believed —
421
437
  * the value is printed (as a date) to a person and compared against the clock, so a header that is not one
@@ -470,6 +486,7 @@ export async function send(url, headers, body, timeoutMs, options = {}) {
470
486
  finalAck: parseFinalAck(res.headers.get("x-session-final")),
471
487
  inferredStored: parseInferredStored(res.headers.get("x-rewrites-inferred-stored")),
472
488
  credentialExpires: parseCredentialExpires(res.headers.get("x-credential-expires")),
489
+ grantEpoch: parseGrantEpoch(res.headers.get("x-grant-epoch")),
473
490
  };
474
491
  }
475
492
  catch {
@@ -634,6 +651,11 @@ async function deliverChunk(ctx, eof, readBody, cutter) {
634
651
  const key = { repoKey: ctx.repoKey, sessionId: ctx.sessionId };
635
652
  if (key.repoKey === "")
636
653
  return { kind: "no-repo" };
654
+ // ⛔ C25 addendum: THE FIRST BEAT IS HERE, before any disposition that PERSISTS can run. An oversize record is skipped (its offset
655
+ // written) and an unsafe session id refused ("never") before the per-request beat below, so a holder that stalled past its lock's
656
+ // bound could otherwise write several skips with nobody checking it still owned the session. No request, no write.
657
+ if (ctx.beforeRequest !== undefined && !ctx.beforeRequest())
658
+ return { kind: "nothing-to-send" };
637
659
  const session = loadSessionState(ctx.home, key);
638
660
  if (isStopped(session, credentialFingerprint(ctx.credential)))
639
661
  return { kind: "stopped" };
@@ -721,6 +743,8 @@ async function deliverChunk(ctx, eof, readBody, cutter) {
721
743
  // full and lean requests depending on what the NEXT turn happens to contain,
722
744
  // which nobody can debug.
723
745
  let lean = current.lean;
746
+ if (ctx.beforeRequest !== undefined && !ctx.beforeRequest())
747
+ return { kind: "nothing-to-send" };
724
748
  let attempt = await attemptSend(withinBudget(ctx), agent, seq, span, body, lean, isLast);
725
749
  if (attempt.kind === "unsafe") {
726
750
  return refuse(ctx, key, session, current, span, caps, attempt.header === "authorization" ? "fatal" : "never", lean);
@@ -748,6 +772,10 @@ async function deliverChunk(ctx, eof, readBody, cutter) {
748
772
  // in-process retry here does not reopen D56 §D8, which governs hooks. Go
749
773
  // lean and retry ONCE, within this same invocation.
750
774
  lean = true;
775
+ // ⛔ A lock lost between the 431 and its retry stops here with NOTHING persisted: the first attempt recorded nothing either, so
776
+ // the span is simply unsent and whoever holds the session now resends it.
777
+ if (ctx.beforeRequest !== undefined && !ctx.beforeRequest())
778
+ return { kind: "nothing-to-send" };
751
779
  attempt = await attemptSend(withinBudget(ctx), agent, seq, span, body, lean, isLast);
752
780
  if (attempt.kind === "unsafe") {
753
781
  // Unreachable in practice — every lean header is already proven safe, or
@@ -789,6 +817,8 @@ async function deliverChunk(ctx, eof, readBody, cutter) {
789
817
  const half = readBody(span.from, span.to);
790
818
  if (half === null)
791
819
  return { kind: "nothing-to-send" };
820
+ if (ctx.beforeRequest !== undefined && !ctx.beforeRequest())
821
+ return { kind: "nothing-to-send" };
792
822
  attempt = await attemptSend(withinBudget(ctx), agent, seq, span, half, lean, false);
793
823
  if (attempt.kind === "unsafe") {
794
824
  return refuse(ctx, key, session, current, span, caps, attempt.header === "authorization" ? "fatal" : "never", lean);
@@ -881,11 +911,16 @@ async function deliverChunk(ctx, eof, readBody, cutter) {
881
911
  const nothingLanded = outcome.kind === "response" && outcome.captureId === "";
882
912
  const holdForNextDelta = nothingLanded && (ctx.commits?.shas.length ?? 0) > 0;
883
913
  if (ctx.commits !== undefined && ctx.commits.count > 0) {
884
- if (retry !== null) {
885
- settleSpooled(ctx.home, key, ctx.commits.count, new Set(retry));
886
- }
887
- else if (!holdForNextDelta) {
888
- dropSpooled(ctx.home, key, ctx.commits.count);
914
+ // Each source is truncated by ITS OWN consumed count (O7); a single-source delivery is the ledger's spool alone.
915
+ const sources = ctx.spoolSources?.commits ?? [{ repoKey: key.repoKey, count: ctx.commits.count }];
916
+ for (const source of sources) {
917
+ const sourceKey = { repoKey: source.repoKey, sessionId: key.sessionId };
918
+ if (retry !== null) {
919
+ settleSpooled(ctx.home, sourceKey, source.count, new Set(retry));
920
+ }
921
+ else if (!holdForNextDelta) {
922
+ dropSpooled(ctx.home, sourceKey, source.count);
923
+ }
889
924
  }
890
925
  }
891
926
  // The rewrite spool is its own file with its own cap, so its own drop.
@@ -897,7 +932,9 @@ async function deliverChunk(ctx, eof, readBody, cutter) {
897
932
  // keeps a squash-merged commit reachable." A `commit_sha_successors` row
898
933
  // names no turn, so `X-Capture-Id` says nothing about whether it landed.
899
934
  if (ctx.rewrites !== undefined && ctx.rewrites.length > 0) {
900
- dropRewrites(ctx.home, key, ctx.rewrites.length);
935
+ const sources = ctx.spoolSources?.rewrites ?? [{ repoKey: key.repoKey, count: ctx.rewrites.length }];
936
+ for (const source of sources)
937
+ dropRewrites(ctx.home, { repoKey: source.repoKey, sessionId: key.sessionId }, source.count);
901
938
  }
902
939
  // `TODOS[177]` — the INFERRED pairs have their own file and their own drop. ⛔ UNLIKE `rewrites` above, this one is
903
940
  // CONDITIONAL on the server's per-request ack (`x-rewrites-inferred-stored`): a 2xx alone is "the delta was
@@ -914,9 +951,11 @@ async function deliverChunk(ctx, eof, readBody, cutter) {
914
951
  // attempt is counted (an attempt means a signal was RECEIVED), nothing is set aside.
915
952
  if (ctx.inferredRewrites !== undefined && ctx.inferredRewrites.length > 0 && ctx.inferredGroups !== undefined && ctx.inferredGroups.length > 0) {
916
953
  const group = ctx.inferredGroups[0];
954
+ // The group lives in exactly ONE source's file (a squash was made in one work tree): every mark below goes there.
955
+ const groupKey = { repoKey: ctx.spoolSources?.inferred?.repoKey ?? key.repoKey, sessionId: key.sessionId };
917
956
  const stored = outcome.kind === "response" ? outcome.inferredStored : null;
918
957
  if (stored === ctx.inferredRewrites.length) {
919
- dropInferredGroups(ctx.home, key, [group]);
958
+ dropInferredGroups(ctx.home, groupKey, [group]);
920
959
  }
921
960
  else if (stored !== null) {
922
961
  // ⛔⛔ `stored !== null` ALONE, never `stored !== null && stored > 0` (VG's mutant G5, 2026-10-08): the
@@ -925,15 +964,15 @@ async function deliverChunk(ctx, eof, readBody, cutter) {
925
964
  // never answers `n-1`. An ack of `0` is a real signal ("the server saw this and stored none of it") and
926
965
  // must count an attempt exactly like any other short ack, or a persistently-refused group is never set
927
966
  // aside and head-of-line blocking comes back on the realistic path.
928
- const attempts = recordInferredAttempt(ctx.home, key, group);
967
+ const attempts = recordInferredAttempt(ctx.home, groupKey, group);
929
968
  if (attempts >= INFERRED_SET_ASIDE_AFTER) {
930
- setAsideInferredGroup(ctx.home, key, group, "short_ack");
969
+ setAsideInferredGroup(ctx.home, groupKey, group, "short_ack");
931
970
  // `TODOS[177]` follow-up (VL, 2026-10-08, VG's silent-loss finding): tally BEFORE any deletion can
932
971
  // happen — `finalize` may delete this session's `.inferred.jsonl` outright once every group in it is
933
972
  // resolved, and this tally is the ONLY record of `set_aside` left once that file is gone (VG's
934
973
  // follow-up finding: an earlier version of this fix also kept a live gauge reading that same file,
935
974
  // which double-counted these pairs once the group aged into the 7-day prune — removed).
936
- recordInferredSkipped(ctx.home, key.repoKey, "set_aside", ctx.nowMs, ctx.inferredRewrites.length);
975
+ recordInferredSkipped(ctx.home, groupKey.repoKey, "set_aside", ctx.nowMs, ctx.inferredRewrites.length);
937
976
  inferredSetAsidePairs = ctx.inferredRewrites.length;
938
977
  }
939
978
  }
@@ -959,6 +998,11 @@ async function deliverChunk(ctx, eof, readBody, cutter) {
959
998
  break;
960
999
  }
961
1000
  saveSessionState(ctx.home, key, next);
1001
+ // Slice 2: the server's grants epoch rides every credential-lane ingest answer. A different one than this machine last recorded marks
1002
+ // `grants-account.json` stale, which is all SessionStart's one bounded GET waits for — nothing else changes, and nothing here reads
1003
+ // a body. A write only on a change, `grants-account.json` only (never `grants.json`), and `noteGrantEpoch` cannot throw.
1004
+ if (outcome.kind === "response")
1005
+ noteGrantEpoch(ctx.home, outcome.grantEpoch);
962
1006
  // 0.7.0: remember, for `status`, that THIS repo's upload was refused because its org has not approved capture — and
963
1007
  // forget it on the next delivery. Only that one error code sets it; a 5xx or a timeout neither sets nor clears it.
964
1008
  if (disposition === "ok")
@@ -967,6 +1011,12 @@ async function deliverChunk(ctx, eof, readBody, cutter) {
967
1011
  // The slug is the CLIENT's (`ctx.repoSlug`), never the response body's: the 403 names nobody.
968
1012
  markOrgPending(ctx.home, ctx.nowMs, outcome.detail.ownersNotified ?? null, ctx.repoSlug);
969
1013
  }
1014
+ else if (disposition === "never" && outcome.kind === "response" && outcome.detail?.code === REPOSITORY_EXCLUDED) {
1015
+ // Slice 2: the account turned this repo off. Remember it in `grants-account.json` — NEVER `grants.json`, which a hook does not
1016
+ // write (`consent.ts`) — so the next hook's gate stops before it reads this repo's transcript. Same rule as above: the slug is
1017
+ // the client's. `recordRefused` cannot throw.
1018
+ recordRefused(ctx.home, ctx.repoSlug);
1019
+ }
970
1020
  // `outcome.detail` is null on every path except a non-2xx with a parseable
971
1021
  // error body, so this is a pass-through and not a second decision.
972
1022
  return {
package/dist/post.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"post.js","sourceRoot":"","sources":["../src/post.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"post.js","sourceRoot":"","sources":["../src/post.ts"],"names":[],"mappings":"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"}
package/dist/project.d.ts CHANGED
@@ -97,3 +97,92 @@ export declare function resolveProjectKeys(dir: string): ProjectKeys | null;
97
97
  * see in `vibecommit status`.
98
98
  */
99
99
  export declare function resolveProjectKey(dir: string): string | null;
100
+ /**
101
+ * The MAIN work tree of the repository whose common dir this is, or **null**.
102
+ *
103
+ * ## ⛔ `rev-parse --show-toplevel` CANNOT ANSWER THIS, measured
104
+ *
105
+ * `D184 §4` mandates `git -C <common-dir> rev-parse --show-toplevel`. Measured
106
+ * on git 2.39.5 against real repositories, that command exits **128** —
107
+ * *"fatal: this operation must be run in a work tree"* — for **every shape a
108
+ * consent key takes**, because a consent key is always a git DIRECTORY and
109
+ * `--is-inside-work-tree` is `false` inside one:
110
+ *
111
+ * | `-C` | `--show-toplevel` |
112
+ * |---|---|
113
+ * | `<main>/.git` (main clone, and every worktree linked to it) | ⛔ ec 128 |
114
+ * | `<repos>/project.git` (bare) | ⛔ ec 128 |
115
+ *
116
+ * Implemented literally, "a failure means no second root" would fire 100% of
117
+ * the time: the set would be the singleton it is today, forever, and a
118
+ * main-clone file read from a worktree session would come back a marker. The
119
+ * whole change would pass its own tests while doing nothing.
120
+ *
121
+ * ## What answers instead, and why it is not a guess
122
+ *
123
+ * `git worktree list --porcelain` DOES run from a git dir and from a bare
124
+ * directory, and its FIRST record is the main work tree. Bare repositories say
125
+ * so in the record itself — `bare`, with no work tree of their own.
126
+ *
127
+ * ⛔ **The answer is then validated by CONTENT, never trusted by position:**
128
+ * `realpath(<candidate>/.git)` must BE the consented common dir. That check is
129
+ * independently fatal to every wrong answer this could produce — a bare repo
130
+ * (`<repos>/.git` does not exist), a linked worktree returned first by some
131
+ * future git (its `.git` is a FILE, so the realpath is the file, not the common
132
+ * dir), a submodule work tree (same). `D184 §4`'s hazard is what it is for: in a
133
+ * worktree of a bare repo the common dir is `…/repos/project.git`, whose parent
134
+ * is **the folder holding every other repository on the machine**, and a root
135
+ * derived by stripping a suffix would transmit every sibling repo's file
136
+ * contents verbatim.
137
+ *
138
+ * Every failure yields NO SECOND ROOT. Never a fallback, never a parent, never a
139
+ * suffix strip.
140
+ */
141
+ export declare function mainWorkTree(commonDir: string): string | null;
142
+ /**
143
+ * ⛔ **The redaction confinement ROOT SET — `D184 §3`.**
144
+ *
145
+ * ```
146
+ * isInsideAny([worktree, mainToplevel], candidate)
147
+ * ```
148
+ *
149
+ * ## Why it is a set, and why the common dir is not in it
150
+ *
151
+ * `D184` moved the consent key to the git common dir so that a session inside a
152
+ * `git worktree` is admitted at all. ⛔ **The confinement root MUST NOT follow
153
+ * it there.** `isInside` realpaths both sides and fail-closes anything it cannot
154
+ * place to *outside* — which here means REDACT — so a root at `<main>/.git`
155
+ * would judge every file of an external worktree to be outside the main clone
156
+ * and replace its `content`, `oldString`, `newString` and `structuredPatch` with
157
+ * markers. **The capture still succeeds. The turn counts still look right. The
158
+ * content is gone**, and a test asserting *"worktree sessions capture now"*
159
+ * passes on an empty payload.
160
+ *
161
+ * Two roots, because both are genuinely the user's own tree: the worktree the
162
+ * session is running in, and the main clone it was cut from — a builder in a
163
+ * worktree reads the main clone's files constantly.
164
+ *
165
+ * ## ⛔ The `paths.ts:487-489` prohibition, answered — `D184 §5`
166
+ *
167
+ * > *"`roots` comes from the REGISTRY. It must never be derived from input."*
168
+ *
169
+ * **That prohibition is about PROVENANCE, and both members have the right one.**
170
+ * The named hazard is *anything on hook stdin* — attacker-supplied. Neither of
171
+ * these is: `keys` can only be produced by `resolveProjectKeys`, which is git's
172
+ * own answer about the directory the session runs in; `mainToplevel` is git's
173
+ * answer about the repository **the consent gate already approved**, and it is
174
+ * content-validated by `mainWorkTree` above. The worktree root has exactly the
175
+ * same provenance and has been used this way since `CR-024d`.
176
+ *
177
+ * ⚠ **Provenance is the whole argument, so this code preserves it:** nothing
178
+ * here is read from stdin, the derivation is validated by content, and a failure
179
+ * yields no second root rather than a fallback. An empty set would refuse
180
+ * everything (`paths.ts:491-492`), which is the correct direction — but this
181
+ * function cannot return one, because `keys.worktree` is always a member.
182
+ *
183
+ * ⚠ The dedup is cosmetic. `isInsideAny` over a repeated root is a union with
184
+ * itself; it is dropped so that a main-clone session reads as the single root it
185
+ * has always had, and so a cell asserting "no second root" is asserting
186
+ * something.
187
+ */
188
+ export declare function confinementRoots(keys: ProjectKeys): readonly string[];