@vibe-commit/capture 0.6.0 → 0.7.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 (143) hide show
  1. package/README.md +84 -5
  2. package/dist/agent_hooks.d.ts +8 -0
  3. package/dist/agent_hooks.js +31 -1
  4. package/dist/agent_hooks.js.map +1 -1
  5. package/dist/agents/claude_code.d.ts +34 -0
  6. package/dist/agents/claude_code.js +141 -8
  7. package/dist/agents/claude_code.js.map +1 -1
  8. package/dist/agents/codex_cli.d.ts +13 -0
  9. package/dist/agents/codex_cli.js +241 -2
  10. package/dist/agents/codex_cli.js.map +1 -1
  11. package/dist/agents/cursor.d.ts +34 -0
  12. package/dist/agents/cursor.js +115 -1
  13. package/dist/agents/cursor.js.map +1 -1
  14. package/dist/agents/session_listing.d.ts +29 -0
  15. package/dist/agents/session_listing.js +49 -0
  16. package/dist/agents/session_listing.js.map +1 -0
  17. package/dist/agents/types.d.ts +118 -8
  18. package/dist/agents/types.js +17 -3
  19. package/dist/agents/types.js.map +1 -1
  20. package/dist/commands/approval_pending.d.ts +9 -0
  21. package/dist/commands/approval_pending.js +23 -0
  22. package/dist/commands/approval_pending.js.map +1 -0
  23. package/dist/commands/auth.js +31 -11
  24. package/dist/commands/auth.js.map +1 -1
  25. package/dist/commands/backfill.d.ts +160 -0
  26. package/dist/commands/backfill.js +748 -0
  27. package/dist/commands/backfill.js.map +1 -0
  28. package/dist/commands/browser_credential.d.ts +2 -0
  29. package/dist/commands/browser_credential.js +31 -14
  30. package/dist/commands/browser_credential.js.map +1 -1
  31. package/dist/commands/connect.d.ts +137 -0
  32. package/dist/commands/connect.js +203 -109
  33. package/dist/commands/connect.js.map +1 -1
  34. package/dist/commands/connect_picker.d.ts +27 -0
  35. package/dist/commands/connect_picker.js +415 -0
  36. package/dist/commands/connect_picker.js.map +1 -0
  37. package/dist/commands/context.d.ts +16 -0
  38. package/dist/commands/context.js +27 -0
  39. package/dist/commands/context.js.map +1 -1
  40. package/dist/commands/credential_problem.d.ts +15 -4
  41. package/dist/commands/credential_problem.js +29 -22
  42. package/dist/commands/credential_problem.js.map +1 -1
  43. package/dist/commands/device_credential.d.ts +2 -0
  44. package/dist/commands/device_credential.js +16 -14
  45. package/dist/commands/device_credential.js.map +1 -1
  46. package/dist/commands/finalize.d.ts +95 -0
  47. package/dist/commands/finalize.js +249 -74
  48. package/dist/commands/finalize.js.map +1 -1
  49. package/dist/commands/finish_mint.d.ts +2 -6
  50. package/dist/commands/finish_mint.js +10 -2
  51. package/dist/commands/finish_mint.js.map +1 -1
  52. package/dist/commands/report.js +38 -30
  53. package/dist/commands/report.js.map +1 -1
  54. package/dist/commands/scan.d.ts +162 -0
  55. package/dist/commands/scan.js +507 -0
  56. package/dist/commands/scan.js.map +1 -0
  57. package/dist/commands/status.js +119 -22
  58. package/dist/commands/status.js.map +1 -1
  59. package/dist/commands/status_hooks.d.ts +14 -0
  60. package/dist/commands/status_hooks.js +81 -0
  61. package/dist/commands/status_hooks.js.map +1 -0
  62. package/dist/commands/status_machine.d.ts +18 -0
  63. package/dist/commands/status_machine.js +149 -0
  64. package/dist/commands/status_machine.js.map +1 -0
  65. package/dist/commands/why.js +44 -31
  66. package/dist/commands/why.js.map +1 -1
  67. package/dist/consent.d.ts +111 -0
  68. package/dist/consent.js +203 -1
  69. package/dist/consent.js.map +1 -1
  70. package/dist/copy/error_codes.d.ts +222 -0
  71. package/dist/copy/error_codes.js +105 -0
  72. package/dist/copy/error_codes.js.map +1 -0
  73. package/dist/copy/index.d.ts +2 -2
  74. package/dist/copy/index.js +2 -2
  75. package/dist/copy/index.js.map +1 -1
  76. package/dist/copy/strings.d.ts +497 -29
  77. package/dist/copy/strings.js +601 -35
  78. package/dist/copy/strings.js.map +1 -1
  79. package/dist/copy/time.d.ts +11 -0
  80. package/dist/copy/time.js +18 -0
  81. package/dist/copy/time.js.map +1 -1
  82. package/dist/credential.d.ts +5 -1
  83. package/dist/credential.js +2 -2
  84. package/dist/credential.js.map +1 -1
  85. package/dist/git.d.ts +43 -0
  86. package/dist/git.js +95 -0
  87. package/dist/git.js.map +1 -1
  88. package/dist/hooks/entry.d.ts +18 -1
  89. package/dist/hooks/entry.js +110 -13
  90. package/dist/hooks/entry.js.map +1 -1
  91. package/dist/hooks/post_commit.js +3 -3
  92. package/dist/hooks/post_commit.js.map +1 -1
  93. package/dist/hooks/post_rewrite.js +6 -4
  94. package/dist/hooks/post_rewrite.js.map +1 -1
  95. package/dist/hooks/session_start.d.ts +93 -0
  96. package/dist/hooks/session_start.js +199 -0
  97. package/dist/hooks/session_start.js.map +1 -0
  98. package/dist/index.d.ts +1 -1
  99. package/dist/index.js +56 -8
  100. package/dist/index.js.map +1 -1
  101. package/dist/install.d.ts +57 -0
  102. package/dist/install.js +54 -20
  103. package/dist/install.js.map +1 -1
  104. package/dist/json.d.ts +32 -9
  105. package/dist/json.js +35 -8
  106. package/dist/json.js.map +1 -1
  107. package/dist/machine_state.d.ts +52 -0
  108. package/dist/machine_state.js +63 -0
  109. package/dist/machine_state.js.map +1 -0
  110. package/dist/oauth/session.d.ts +1 -0
  111. package/dist/org_pending.d.ts +52 -0
  112. package/dist/org_pending.js +109 -0
  113. package/dist/org_pending.js.map +1 -0
  114. package/dist/paths.d.ts +50 -0
  115. package/dist/paths.js +64 -0
  116. package/dist/paths.js.map +1 -1
  117. package/dist/picker.d.ts +180 -0
  118. package/dist/picker.js +477 -0
  119. package/dist/picker.js.map +1 -0
  120. package/dist/picker_checklist.d.ts +125 -0
  121. package/dist/picker_checklist.js +375 -0
  122. package/dist/picker_checklist.js.map +1 -0
  123. package/dist/policy.d.ts +54 -0
  124. package/dist/policy.js +47 -0
  125. package/dist/policy.js.map +1 -1
  126. package/dist/post.d.ts +50 -16
  127. package/dist/post.js +265 -58
  128. package/dist/post.js.map +1 -1
  129. package/dist/state.d.ts +6 -0
  130. package/dist/state.js +38 -1
  131. package/dist/state.js.map +1 -1
  132. package/dist/system_message.d.ts +8 -1
  133. package/dist/system_message.js +19 -1
  134. package/dist/system_message.js.map +1 -1
  135. package/dist/term.d.ts +28 -2
  136. package/dist/term.js +23 -2
  137. package/dist/term.js.map +1 -1
  138. package/dist/verb_help.d.ts +13 -0
  139. package/dist/verb_help.js +40 -0
  140. package/dist/verb_help.js.map +1 -0
  141. package/dist/version.d.ts +1 -1
  142. package/dist/version.js +1 -1
  143. package/package.json +5 -9
package/dist/post.js CHANGED
@@ -22,7 +22,8 @@ import { agentForTranscript } from "./agents/registry.js";
22
22
  import { UNKNOWN_AGENT_ID } from "./agents/types.js";
23
23
  import { headerSafe, sessionIdSafe } from "./header_safety.js";
24
24
  import { recordInferredSkipped } from "./inferred_tally.js";
25
- import { classify, markDelivered, markHeld, markSkipped, nextSpan, resolveCaps, } from "./policy.js";
25
+ 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";
26
27
  import { fileState, isStopped, loadSessionState, saveSessionState, withFileState, } from "./state.js";
27
28
  import { INFERRED_SET_ASIDE_AFTER, dropInferredGroups, dropRewrites, dropSpooled, isFullSha, recordInferredAttempt, setAsideInferredGroup, settleSpooled, } from "./spool.js";
28
29
  import { CLIENT_VERSION, CLIENT_VERSION_HEADER } from "./version.js";
@@ -304,25 +305,12 @@ const MAX_ERROR_BODY_BYTES = 64 * 1024;
304
305
  * opts in to reading ONE field of a 2xx body through `readConversationId`
305
306
  * below; nothing else ever calls that.
306
307
  */
307
- async function readErrorDetail(res) {
308
+ async function readErrorDetail(res, signal) {
308
309
  if (res.ok)
309
310
  return null;
310
- // The declared length, when there is one. The abort signal already bounds the
311
- // read in TIME; this bounds it in BYTES for a fast, huge response.
312
- const declared = Number(res.headers.get("content-length"));
313
- if (Number.isFinite(declared) && declared > MAX_ERROR_BODY_BYTES)
314
- return null;
315
- let body;
316
- try {
317
- const text = await res.text();
318
- if (text.length > MAX_ERROR_BODY_BYTES)
319
- return null;
320
- body = JSON.parse(text);
321
- }
322
- catch {
323
- return null;
324
- }
325
- if (body === null || typeof body !== "object" || Array.isArray(body))
311
+ // Bounded in BYTES (declared or streamed) and in TIME (raced against `signal`) by `readCappedJson`.
312
+ const body = await readCappedJson(res, signal);
313
+ if (body === null || body === undefined || typeof body !== "object" || Array.isArray(body))
326
314
  return null;
327
315
  const { error, owners_notified: owners } = body;
328
316
  if (typeof error !== "string" || error === "")
@@ -333,33 +321,29 @@ async function readErrorDetail(res) {
333
321
  const ownersNotified = owners === null ? null : typeof owners === "number" && Number.isFinite(owners) ? owners : undefined;
334
322
  return { code: error, ownersNotified };
335
323
  }
336
- /** A UUID, any version. The only shape `conversation_id` is believed in, so nothing else reaches a terminal. */
337
- const UUID_SHAPE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
338
324
  /**
339
- * ⭐ `conversation_id` from a 2xx body, for `connect`'s session link — or `undefined`.
340
- * **NEVER THROWS, on any input, and never changes the outcome.**
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.
341
327
  *
342
- * ⛔ **ONLY `connect` CALLS THIS** (`SendOptions.readConversationId`, eng-2 D2 = A). The hook's
343
- * hot path never reads a 2xx body — that property is why it cannot stall or throw on one —
344
- * and an unconditional read here would put a new wait and a new failure point on the hook that
345
- * runs after every turn, to serve a line only `connect` prints.
328
+ * Returns the parsed JSON (which may legitimately be `null`, an array or a scalar — the caller shapes it), or
329
+ * `undefined` for EVERY failure: no body, a declared length over the cap, a streamed body that crosses the cap,
330
+ * an abort, a stalled or reset stream, invalid JSON. **NEVER THROWS, on any input.**
346
331
  *
347
- * Bounded like `readErrorDetail` in bytes (here by streaming and cancelling, so a response with
348
- * no `content-length` cannot be buffered whole) and in time (the caller's own abort timer). A
349
- * stalled or reset body lands in the `catch` and reads as "no id": the 2xx stays a 2xx.
350
- * Only a UUID-shaped string is believed, which also keeps a terminal escape sequence out.
332
+ * - 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
334
+ * buffered whole before a post-hoc check (the old `await res.text()` did exactly that, contradicting
335
+ * `readErrorDetail`'s own comment that a hostile endpoint cannot make a hook buffer an arbitrary response).
336
+ * - TIME: every read is RACED against the request's abort signal rather than trusting the abort to reach the
337
+ * stream. Aborting is supposed to reject a pending `reader.read()` (it does, in a direct probe), but the
338
+ * bound is then a property of this function and not of the HTTP client's internals.
351
339
  */
352
- async function readConversationId(res, signal) {
353
- if (!res.ok || res.body === null)
340
+ async function readCappedJson(res, signal) {
341
+ if (res.body === null)
354
342
  return undefined;
355
343
  const declared = Number(res.headers.get("content-length"));
356
344
  if (Number.isFinite(declared) && declared > MAX_ERROR_BODY_BYTES)
357
345
  return undefined;
358
346
  const reader = res.body.getReader();
359
- // ⛔ THE TIMER IS RACED EXPLICITLY, not trusted to reach the stream. Aborting the request's signal is
360
- // supposed to reject a pending `reader.read()`, and mostly does — but measured here, a body that stalls
361
- // after the headers could leave the read pending past the abort, which would hang `connect` for good.
362
- // Racing the signal ourselves makes the bound a property of THIS function.
363
347
  let onAbort;
364
348
  const aborted = new Promise((_resolve, reject) => {
365
349
  onAbort = () => reject(new Error("aborted"));
@@ -378,19 +362,15 @@ async function readConversationId(res, signal) {
378
362
  break;
379
363
  size += value.byteLength;
380
364
  if (size > MAX_ERROR_BODY_BYTES) {
365
+ // Not awaited: a cancel on a stalled stream is the other thing that may never settle.
381
366
  reader.cancel().catch(() => undefined);
382
367
  return undefined;
383
368
  }
384
369
  chunks.push(value);
385
370
  }
386
- const body = JSON.parse(Buffer.concat(chunks).toString("utf8"));
387
- if (body === null || typeof body !== "object" || Array.isArray(body))
388
- return undefined;
389
- const id = body.conversation_id;
390
- return typeof id === "string" && UUID_SHAPE.test(id) ? id.toLowerCase() : undefined;
371
+ return JSON.parse(Buffer.concat(chunks).toString("utf8"));
391
372
  }
392
373
  catch {
393
- // Not awaited: a cancel on a stalled stream is the other thing that may never settle.
394
374
  reader.cancel().catch(() => undefined);
395
375
  return undefined;
396
376
  }
@@ -399,6 +379,30 @@ async function readConversationId(res, signal) {
399
379
  signal.removeEventListener("abort", onAbort);
400
380
  }
401
381
  }
382
+ /** A UUID, any version. The only shape `conversation_id` is believed in, so nothing else reaches a terminal. */
383
+ const UUID_SHAPE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
384
+ /**
385
+ * ⭐ `conversation_id` from a 2xx body, for `connect`'s session link — or `undefined`.
386
+ * **NEVER THROWS, on any input, and never changes the outcome.**
387
+ *
388
+ * ⛔ **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 —
390
+ * 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.
392
+ *
393
+ * Reads through `readCappedJson`, the same capped, signal-raced reader `readErrorDetail` uses, so the byte
394
+ * and time bounds are one definition. A stalled or reset body reads as "no id": the 2xx stays a 2xx.
395
+ * Only a UUID-shaped string is believed, which also keeps a terminal escape sequence out.
396
+ */
397
+ async function readConversationId(res, signal) {
398
+ if (!res.ok)
399
+ return undefined;
400
+ const body = await readCappedJson(res, signal);
401
+ if (body === null || body === undefined || typeof body !== "object" || Array.isArray(body))
402
+ return undefined;
403
+ const id = body.conversation_id;
404
+ return typeof id === "string" && UUID_SHAPE.test(id) ? id.toLowerCase() : undefined;
405
+ }
402
406
  /**
403
407
  * `X-Commits-Retry` → the shas to keep, or `null` when the header is absent.
404
408
  * **NEVER THROWS** — the same hot-path property `readErrorDetail` keeps. Only
@@ -458,7 +462,7 @@ export async function send(url, headers, body, timeoutMs, options = {}) {
458
462
  return {
459
463
  kind: "response",
460
464
  status: res.status,
461
- detail: await readErrorDetail(res),
465
+ detail: await readErrorDetail(res, controller.signal),
462
466
  ...(conversationId === undefined ? {} : { conversationId }),
463
467
  // `null` when the server does not send it at all — see `captureId` above.
464
468
  captureId: res.headers.get("x-capture-id"),
@@ -495,6 +499,15 @@ function parseFinalAck(raw) {
495
499
  const v = raw?.trim().toLowerCase();
496
500
  return v === "sealed" || v === "already" || v === "refused" ? v : null;
497
501
  }
502
+ /**
503
+ * PR 4a — below this much remaining hook budget, do not START another delta. The same floor the sub-agent loop uses
504
+ * (`MIN_SUBAGENT_BUDGET_MS`, `hooks/entry.ts`), for the same reason: a request that small can only time out.
505
+ */
506
+ const MIN_NEXT_DELTA_BUDGET_MS = 400;
507
+ /** The floor under one attempt's timeout once the hook budget is nearly or fully spent — `MIN_SEND_TIMEOUT_MS` in `hooks/entry.ts`. */
508
+ const MIN_ATTEMPT_TIMEOUT_MS = 50;
509
+ /** The share of what is left one further attempt may take — `SEND_BUDGET_FRACTION`'s value in `hooks/entry.ts`. */
510
+ const NEXT_DELTA_BUDGET_FRACTION = 0.6;
498
511
  /**
499
512
  * Build the delta, reduce it to the deny-list set when `lean`, validate every
500
513
  * resulting header value, and only then call `send()` — `TODOS[182]`.
@@ -505,7 +518,12 @@ function parseFinalAck(raw) {
505
518
  * by elimination, always names a REQUIRED header — there is no second
506
519
  * optional one for the caller to drop.
507
520
  */
508
- async function attemptSend(ctx, agent, seq, span, body, lean) {
521
+ async function attemptSend(ctx, agent, seq, span, body, lean,
522
+ // PR 4a. ⛔ ONLY THE DELTA THAT ENDS AT EOF CARRIES THE SESSION-LEVEL HEADERS. `X-Session-Final` seals the open turn, and
523
+ // sealing before the rest of the span has arrived would seal a poorer turn (`finalize.ts`'s docblock). The commits,
524
+ // rewrites and head describe the END of the session, and `capture_commits`' PK admits one row per (capture, sha), so they
525
+ // ride on one delta and not on every one. A delta that is not the last sends none of them, and the spool keeps them.
526
+ isLast = true) {
509
527
  const full = buildIngestHeaders(ctx.credential, {
510
528
  sessionId: ctx.sessionId,
511
529
  seq,
@@ -513,11 +531,11 @@ async function attemptSend(ctx, agent, seq, span, body, lean) {
513
531
  fileKey: ctx.fileKey,
514
532
  repoSlug: ctx.repoSlug,
515
533
  agent,
516
- final: ctx.final === true,
517
- head: ctx.head,
518
- commits: ctx.commits,
519
- rewrites: ctx.rewrites,
520
- inferredRewrites: ctx.inferredRewrites,
534
+ final: ctx.final === true && isLast,
535
+ head: isLast ? ctx.head : undefined,
536
+ commits: isLast ? ctx.commits : undefined,
537
+ rewrites: isLast ? ctx.rewrites : undefined,
538
+ inferredRewrites: isLast ? ctx.inferredRewrites : undefined,
521
539
  });
522
540
  const headers = lean ? leanHeaders(full) : full;
523
541
  const badHeader = firstUnsafeHeader(headers);
@@ -590,8 +608,10 @@ function holdLean(ctx, key, session, current, span, caps) {
590
608
  /**
591
609
  * Send the undelivered span of one transcript file and apply the failure policy.
592
610
  *
593
- * **At most one NETWORK attempt per hook, still — exactly D56 §D8's rule.** A
594
- * `finalize` lean retry (below) is the one exception D56 §D8 itself does not
611
+ * **At most one NETWORK attempt per hook, still — exactly D56 §D8's rule — FOR ONE DELTA.** PR 4a:
612
+ * `deliver()` (below) calls this once per delta, and a hook calls it again only while its budget lasts; a 413 split's
613
+ * retry is budget-gated the same way and is a DIFFERENT, smaller body, so it is not the retry of the same bytes §D8
614
+ * forbids. A `finalize` lean retry (below) is the one exception D56 §D8 itself does not
595
615
  * cover: it governs HOOKS, and `finalize` is a synchronous, user-invoked verb
596
616
  * that already makes 1 + up to `FINALIZE_DRAIN_MAX_ITERATIONS` requests by
597
617
  * design (VL's explicit ruling, `TODOS[182]`). On the hook path, `later` still
@@ -605,7 +625,7 @@ function holdLean(ctx, key, session, current, span, caps) {
605
625
  * is the one that has confined `transcript_path` to the Claude Code root
606
626
  * (`/cso` finding 1). This module never opens a file.
607
627
  */
608
- export async function deliver(ctx, eof, readBody) {
628
+ async function deliverChunk(ctx, eof, readBody, cutter) {
609
629
  // `CR-017d`. The consent gate already refuses a `cwd` outside a work tree, so
610
630
  // the hook cannot reach this — but the ledger's isolation must not rest on a
611
631
  // check in another module, the same discipline `consent.ts` states about its
@@ -627,10 +647,41 @@ export async function deliver(ctx, eof, readBody) {
627
647
  }
628
648
  if (span === null)
629
649
  return { kind: "nothing-to-send" };
630
- const body = readBody(span.from, span.to);
650
+ const caps = resolveCaps(ctx.env);
651
+ const limits = ctx.limits ?? { rawBytes: MAX_DELTA_RAW_BYTES, frameBytes: MAX_DELTA_FRAME_BYTES };
652
+ // ⭐ PR 4a — ONE DELTA, NOT THE WHOLE SPAN TO EOF. Without a `cutter` this is the old single-span path, byte for byte.
653
+ //
654
+ // The delta is cut on a record boundary (the server drops a trailing partial line), at most `limits.rawBytes` raw, and
655
+ // measured AFTER compression: a frame over `limits.frameBytes` is halved at a boundary and measured again. A record that
656
+ // alone exceeds either limit cannot be split, so it is skipped and COUNTED (`markSkipped`: the gap counters `status`
657
+ // reports as "skipped … will not be sent later"), never retried — retrying the same bytes cannot work.
658
+ //
659
+ // A cut that is NOT at EOF is not the last delta (`isLast`), so it carries none of the session-level headers.
660
+ if (cutter !== undefined && span.to > span.from) {
661
+ const plan = planChunk(cutter, span.from, span.to, limits.rawBytes);
662
+ // An unterminated record longer than the limit, still at EOF: it may be growing. Leave it for the next event.
663
+ if (plan.kind === "wait")
664
+ return { kind: "nothing-to-send" };
665
+ if (plan.kind === "oversize")
666
+ return recordTooLarge(ctx, key, session, current, { from: span.from, to: plan.to }, caps);
667
+ span = { from: span.from, to: plan.to };
668
+ }
669
+ let body = readBody(span.from, span.to);
631
670
  if (body === null)
632
671
  return { kind: "nothing-to-send" };
633
- const caps = resolveCaps(ctx.env);
672
+ if (cutter !== undefined) {
673
+ while (body.length > limits.frameBytes) {
674
+ const at = splitPoint(cutter, span.from, span.to);
675
+ if (at === null)
676
+ return recordTooLarge(ctx, key, session, current, span, caps);
677
+ span = { from: span.from, to: at };
678
+ body = readBody(span.from, span.to);
679
+ if (body === null)
680
+ return { kind: "nothing-to-send" };
681
+ }
682
+ }
683
+ // An empty span (a `final` with nothing new) is the last delta by definition.
684
+ let isLast = cutter === undefined || span.to >= eof || span.to === span.from;
634
685
  // `seq` is claimed BEFORE the attempt and persisted by the SWITCH below (every ordinary disposition —
635
686
  // "ok"/"later"/"never"/"fatal" — builds `next` from `{ ...session, seq, … }`), so it is monotonic per
636
687
  // session across retries once a request was actually classified. A seq reused after a failure would read
@@ -670,7 +721,7 @@ export async function deliver(ctx, eof, readBody) {
670
721
  // full and lean requests depending on what the NEXT turn happens to contain,
671
722
  // which nobody can debug.
672
723
  let lean = current.lean;
673
- let attempt = await attemptSend(ctx, agent, seq, span, body, lean);
724
+ let attempt = await attemptSend(withinBudget(ctx), agent, seq, span, body, lean, isLast);
674
725
  if (attempt.kind === "unsafe") {
675
726
  return refuse(ctx, key, session, current, span, caps, attempt.header === "authorization" ? "fatal" : "never", lean);
676
727
  }
@@ -685,7 +736,7 @@ export async function deliver(ctx, eof, readBody) {
685
736
  if (outcome.kind === "response" && outcome.status === 431) {
686
737
  if (lean) {
687
738
  // Already lean and STILL 431: nothing client-side can shrink this
688
- // further. `never`, exactly as 413 — the one case `never` is correct
739
+ // further. `never`, exactly as an UNSPLITTABLE 413 (a single record) — the one case `never` is correct
689
740
  // here, because it really is per-body now.
690
741
  return refuse(ctx, key, session, current, span, caps, "never", true);
691
742
  }
@@ -697,7 +748,7 @@ export async function deliver(ctx, eof, readBody) {
697
748
  // in-process retry here does not reopen D56 §D8, which governs hooks. Go
698
749
  // lean and retry ONCE, within this same invocation.
699
750
  lean = true;
700
- attempt = await attemptSend(ctx, agent, seq, span, body, lean);
751
+ attempt = await attemptSend(withinBudget(ctx), agent, seq, span, body, lean, isLast);
701
752
  if (attempt.kind === "unsafe") {
702
753
  // Unreachable in practice — every lean header is already proven safe, or
703
754
  // it would never have reached the full build either — but stated rather
@@ -715,6 +766,35 @@ export async function deliver(ctx, eof, readBody) {
715
766
  // true — the `"ok"` case's accounting reads it to skip settling data this
716
767
  // attempt never put on the wire.
717
768
  }
769
+ // ⭐ PR 4a — A 413 IS NO LONGER A WRITE-OFF WHEN THE SPAN CAN BE SPLIT. Halve it at a record boundary and send the first half
770
+ // as a different, smaller request. A 413 is refused before the server applies anything (`server.ts`'s body limit, then the
771
+ // decompressed-size check), so the SAME `seq` is reused: the server never recorded it, and it is not a replay.
772
+ //
773
+ // ⛔ Only a span that is a single record falls through to `classify`, where 413 is `never`: the bytes cannot be made
774
+ // smaller, so skipping them is correct and the record is counted. Everything else here sends bytes the 413 did not see.
775
+ //
776
+ // Each retry is gated on the hook's remaining budget (`budgetLeftMs`), so this is not D56 §D8's forbidden synchronous
777
+ // retry of the SAME bytes: it is bounded by the budget the hook already has, and out of budget it HOLDS the span.
778
+ let splitTooLarge = false;
779
+ while (cutter !== undefined && outcome.kind === "response" && outcome.status === 413) {
780
+ const at = splitPoint(cutter, span.from, span.to);
781
+ if (at === null) {
782
+ splitTooLarge = true;
783
+ break;
784
+ }
785
+ if (budgetLeftMs(ctx) < MIN_NEXT_DELTA_BUDGET_MS)
786
+ return holdSpan(ctx, key, session, current, span, caps, lean);
787
+ span = { from: span.from, to: at };
788
+ isLast = false;
789
+ const half = readBody(span.from, span.to);
790
+ if (half === null)
791
+ return { kind: "nothing-to-send" };
792
+ attempt = await attemptSend(withinBudget(ctx), agent, seq, span, half, lean, false);
793
+ if (attempt.kind === "unsafe") {
794
+ return refuse(ctx, key, session, current, span, caps, attempt.header === "authorization" ? "fatal" : "never", lean);
795
+ }
796
+ outcome = attempt.outcome;
797
+ }
718
798
  const disposition = classify(outcome);
719
799
  let next = ctx.byHook ? { ...session, seq, liveAt: ctx.nowMs } : { ...session, seq };
720
800
  let inferredSetAsidePairs = 0;
@@ -794,7 +874,9 @@ export async function deliver(ctx, eof, readBody) {
794
874
  // sendable, for a reason unrelated to `lean`) entries are UNAFFECTED by this gate: they are consumed
795
875
  // only via a NORMAL, non-lean call's `capSpool`/`capSuccessors`/`capInferred`, which this gate does not
796
876
  // touch, so a lean session's held lines still drain exactly as soon as a non-lean request reads them.
797
- if (!lean) {
877
+ // PR 4a: AND ONLY ON THE DELTA THAT CARRIED THEM (`isLast`). A delta earlier in the span sent none of the commits,
878
+ // rewrites or inferred pairs, so a 2xx for it says nothing about them and the spool must keep them for the delta that did.
879
+ if (!lean && isLast) {
798
880
  const retry = outcome.kind === "response" ? outcome.commitsRetry : null;
799
881
  const nothingLanded = outcome.kind === "response" && outcome.captureId === "";
800
882
  const holdForNextDelta = nothingLanded && (ctx.commits?.shas.length ?? 0) > 0;
@@ -877,6 +959,14 @@ export async function deliver(ctx, eof, readBody) {
877
959
  break;
878
960
  }
879
961
  saveSessionState(ctx.home, key, next);
962
+ // 0.7.0: remember, for `status`, that THIS repo's upload was refused because its org has not approved capture — and
963
+ // forget it on the next delivery. Only that one error code sets it; a 5xx or a timeout neither sets nor clears it.
964
+ if (disposition === "ok")
965
+ clearOrgPending(ctx.home, ctx.repoSlug);
966
+ else if (disposition === "later" && outcome.kind === "response" && outcome.detail?.code === CAPTURE_NOT_APPROVED) {
967
+ // The slug is the CLIENT's (`ctx.repoSlug`), never the response body's: the 403 names nobody.
968
+ markOrgPending(ctx.home, ctx.nowMs, outcome.detail.ownersNotified ?? null, ctx.repoSlug);
969
+ }
880
970
  // `outcome.detail` is null on every path except a non-2xx with a parseable
881
971
  // error body, so this is a pass-through and not a second decision.
882
972
  return {
@@ -891,6 +981,123 @@ export async function deliver(ctx, eof, readBody) {
891
981
  ...(outcome.kind === "response" && disposition === "ok" && outcome.conversationId !== undefined
892
982
  ? { conversationId: outcome.conversationId }
893
983
  : {}),
984
+ ...(outcome.kind === "unreachable" ? { unreachable: true } : {}),
985
+ // PR 4a: a 413 that no split could shrink was skipped by the `never` arm above; say so, so the caller can count it.
986
+ ...(splitTooLarge && disposition === "never" ? { recordsTooLarge: 1 } : {}),
894
987
  };
895
988
  }
989
+ /**
990
+ * PR 4a — a single record that alone exceeds a delta limit. Nothing is sent: the same bytes would be refused, so the record
991
+ * is skipped, the gap is stamped (`markSkipped`, which `status` reports), and the offset moves past it. `refuse` does
992
+ * exactly that and persists it; this adds the count.
993
+ */
994
+ function recordTooLarge(ctx, key, session, current, span, caps) {
995
+ const skipped = refuse(ctx, key, session, current, span, caps, "never", current.lean);
996
+ return skipped.kind === "attempted" ? { ...skipped, recordsTooLarge: 1 } : skipped;
997
+ }
998
+ /**
999
+ * PR 4a — out of hook budget in the middle of a 413 split: hold the span the failed request covered, as a `later` does. The
1000
+ * `seq` is not persisted for the same reason the split reuses it: the 413 was refused before the server applied it.
1001
+ */
1002
+ function holdSpan(ctx, key, session, current, span, caps, lean) {
1003
+ saveSessionState(ctx.home, key, withFileState(session, ctx.fileKey, { ...markHeld(current, span, ctx.nowMs, caps), lean }));
1004
+ return { kind: "attempted", disposition: "later", detail: null, finalAck: null, inferredStored: null, inferredSetAsidePairs: 0 };
1005
+ }
1006
+ /** Hook budget left for further sends, ms. `Infinity` when the caller set no deadline (`finalize`, `connect`). */
1007
+ function budgetLeftMs(ctx) {
1008
+ return ctx.deadlineAtMs === undefined ? Infinity : ctx.deadlineAtMs - (ctx.clock ?? Date.now)();
1009
+ }
1010
+ /**
1011
+ * `ctx` with this attempt's timeout trimmed to what is left of the hook budget (unchanged when there is no deadline).
1012
+ *
1013
+ * ⛔ CALLED RIGHT BEFORE EACH `attemptSend`, never ahead of the read. The read, the redaction and the compression of a delta
1014
+ * (and every halving pass) take real time, and a timeout fixed before them lets the last delta end past `deadlineAtMs` by
1015
+ * exactly that. Floored like `sendTimeoutMs` (`hooks/entry.ts`): when the budget is already gone the watchdog is the real
1016
+ * limit, and a zero timeout would only abort a send that was about to be refused anyway.
1017
+ */
1018
+ function withinBudget(ctx) {
1019
+ const left = budgetLeftMs(ctx);
1020
+ if (!Number.isFinite(left))
1021
+ return ctx;
1022
+ return { ...ctx, timeoutMs: Math.max(MIN_ATTEMPT_TIMEOUT_MS, Math.min(ctx.timeoutMs, Math.floor(left * NEXT_DELTA_BUDGET_FRACTION))) };
1023
+ }
1024
+ /**
1025
+ * Send the undelivered span of one transcript file, in deltas — PR 4a.
1026
+ *
1027
+ * Without a `cutter` this is the single request it always was: everything from the offset to EOF, at most one attempt.
1028
+ * With one (every production caller), the span goes out as record-aligned deltas, each acknowledged before the offset
1029
+ * moves past it:
1030
+ *
1031
+ * - **A hook sends deltas only while its budget lasts** (`ctx.deadlineAtMs`) and leaves the rest for its next event or
1032
+ * `vibecommit finalize`; `Delivery.more` says it stopped early. `finalize` and `connect` set no deadline and run on.
1033
+ * - **It stops at the first delta that is not `ok`** and returns that delta's outcome: `later` and `fatal` hold exactly
1034
+ * the bytes that failed, so a resume starts at the next unacknowledged delta, with no resend and no gap. A
1035
+ * `capture_not_approved` 403 on any delta is such a stop, so its pending beat is printed once.
1036
+ * - **A skipped oversize record does not stop it.** The records after it still go out.
1037
+ * - **`connect`'s conversation id survives a partial run** (DX D8): it is read from the first 2xx that carries it, no later
1038
+ * delta reads a body, and it is returned even when a later delta came back `later`.
1039
+ *
1040
+ * ⛔ A 2xx never changes a delta's outcome, and a hook reads no body (eng-2 D2): the only body read is `connect`'s opt-in.
1041
+ */
1042
+ export async function deliver(ctx, eof, readBody, cutter) {
1043
+ if (cutter === undefined)
1044
+ return deliverChunk(ctx, eof, readBody, undefined);
1045
+ const key = { repoKey: ctx.repoKey, sessionId: ctx.sessionId };
1046
+ let chunkCtx = ctx;
1047
+ let conversationId;
1048
+ let tooLarge = 0;
1049
+ let deltas = 0;
1050
+ let last = null;
1051
+ const carry = (d, more = false) => d.kind !== "attempted"
1052
+ ? d
1053
+ : {
1054
+ ...d,
1055
+ ...(d.conversationId === undefined && conversationId !== undefined ? { conversationId } : {}),
1056
+ ...(tooLarge > 0 ? { recordsTooLarge: tooLarge } : {}),
1057
+ ...(deltas > 1 ? { deltas } : {}),
1058
+ ...(more ? { more: true } : {}),
1059
+ };
1060
+ for (;;) {
1061
+ const before = fileState(loadSessionState(ctx.home, key), ctx.fileKey).sentOffset;
1062
+ let delivery;
1063
+ try {
1064
+ delivery = await deliverChunk(chunkCtx, eof, readBody, cutter);
1065
+ }
1066
+ catch {
1067
+ // The cutter reads the file and a read can fail. That must read as "could not tell where the record ends", never as
1068
+ // "it does not end" (which would skip a record). Nothing was persisted for this delta, so the next event retries it.
1069
+ delivery = { kind: "nothing-to-send" };
1070
+ }
1071
+ if (delivery.kind !== "attempted")
1072
+ return last === null ? delivery : carry(last);
1073
+ deltas += 1;
1074
+ tooLarge += delivery.recordsTooLarge ?? 0;
1075
+ conversationId ??= delivery.conversationId;
1076
+ // `ok`, or a record skipped as too large, moved the offset on; anything else is a stop, and its outcome is the answer.
1077
+ if (delivery.disposition !== "ok" && delivery.recordsTooLarge === undefined)
1078
+ return carry(delivery);
1079
+ const after = fileState(loadSessionState(ctx.home, key), ctx.fileKey).sentOffset;
1080
+ // No progress is a bug somewhere below; end the loop rather than spin on it.
1081
+ if (after <= before)
1082
+ return carry(delivery);
1083
+ // ⛔ EVERY BYTE IS ACCOUNTED FOR, BUT THE LAST DELTA WAS SKIPPED RATHER THAN SENT, AND THE SESSION-LEVEL HEADERS RODE
1084
+ // ON IT. A skipped record (too large by the raw limit, the frame limit, or a 413 no split can shrink) puts nothing on
1085
+ // the wire, so the `final` assertion, the commits, the head and the rewrites that belong to the delta ending at EOF
1086
+ // never landed. Run ONE more pass: `nextSpan` is null at EOF, so the existing `span === null && final` branch of
1087
+ // `deliverChunk` sends the empty delta that carries them (`isLast` is true for an empty span). Without this a
1088
+ // `finalize` whose last record was oversize reported `notDelivered` after every byte had been sent or written off.
1089
+ // Hooks never set `final`, and their commits ride the next event as they always did.
1090
+ const tailSkipped = delivery.recordsTooLarge !== undefined && after >= eof && ctx.final === true;
1091
+ if (after >= eof && !tailSkipped)
1092
+ return carry(delivery);
1093
+ if (budgetLeftMs(ctx) < MIN_NEXT_DELTA_BUDGET_MS)
1094
+ return carry(delivery, true);
1095
+ last = delivery;
1096
+ chunkCtx = {
1097
+ ...ctx,
1098
+ // Stop reading bodies once the id is in hand: a later delta never needs one.
1099
+ readConversationId: ctx.readConversationId === true && conversationId === undefined,
1100
+ };
1101
+ }
1102
+ }
896
1103
  //# sourceMappingURL=post.js.map
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/state.d.ts CHANGED
@@ -179,6 +179,12 @@ export interface LastSend {
179
179
  * recorded yet" rather than as a date.
180
180
  */
181
181
  export declare function lastSendForRepo(home: string, repoKey: string): LastSend | null;
182
+ /**
183
+ * When did ANY repo on this machine last deliver — the machine-level `status` (0.7.0, D6). The same scan as
184
+ * `lastSendForRepo`, one directory up: every repo's session files live under `<state>/sessions/<digest>/`, and the digest is
185
+ * one-way, so this can say WHEN and cannot say WHICH repo. Null when nothing was ever delivered.
186
+ */
187
+ export declare function lastSendOnMachine(home: string): LastSend | null;
182
188
  /** What this repo's sessions advanced past WITHOUT delivering — `CR-228`. */
183
189
  export interface WrittenOff {
184
190
  /** Σ `gapBytes` across every stream of every session for the repo. */