@telora/daemon 0.21.0 → 0.21.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/build-info.json +6 -3
  2. package/dist/delivery-lifecycle.d.ts.map +1 -1
  3. package/dist/delivery-lifecycle.js +4 -0
  4. package/dist/delivery-lifecycle.js.map +1 -1
  5. package/dist/git/merge.d.ts.map +1 -1
  6. package/dist/git/merge.js +16 -0
  7. package/dist/git/merge.js.map +1 -1
  8. package/dist/heartbeat.d.ts +21 -0
  9. package/dist/heartbeat.d.ts.map +1 -1
  10. package/dist/heartbeat.js +42 -0
  11. package/dist/heartbeat.js.map +1 -1
  12. package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
  13. package/dist/prompt-sections/execution-sections.js +34 -5
  14. package/dist/prompt-sections/execution-sections.js.map +1 -1
  15. package/dist/queries/deliveries.d.ts +41 -0
  16. package/dist/queries/deliveries.d.ts.map +1 -1
  17. package/dist/queries/deliveries.js +56 -0
  18. package/dist/queries/deliveries.js.map +1 -1
  19. package/dist/queries/delivery-gate-state.d.ts +30 -0
  20. package/dist/queries/delivery-gate-state.d.ts.map +1 -1
  21. package/dist/resolvers/index.d.ts +2 -1
  22. package/dist/resolvers/index.d.ts.map +1 -1
  23. package/dist/resolvers/index.js +1 -1
  24. package/dist/resolvers/index.js.map +1 -1
  25. package/dist/resolvers/shared/git-diff.d.ts +147 -4
  26. package/dist/resolvers/shared/git-diff.d.ts.map +1 -1
  27. package/dist/resolvers/shared/git-diff.js +351 -5
  28. package/dist/resolvers/shared/git-diff.js.map +1 -1
  29. package/dist/verification-deps.d.ts +25 -0
  30. package/dist/verification-deps.d.ts.map +1 -1
  31. package/dist/verification-engine.d.ts.map +1 -1
  32. package/dist/verification-engine.js +144 -23
  33. package/dist/verification-engine.js.map +1 -1
  34. package/dist/verification-evidence.d.ts +1 -1
  35. package/dist/verification-evidence.d.ts.map +1 -1
  36. package/dist/verification-evidence.js +8 -7
  37. package/dist/verification-evidence.js.map +1 -1
  38. package/dist/verification-feedback.d.ts.map +1 -1
  39. package/dist/verification-feedback.js +35 -10
  40. package/dist/verification-feedback.js.map +1 -1
  41. package/package.json +2 -2
@@ -189,6 +189,65 @@ export function resolveRecordedCommitRange(worktreePath, commitShas) {
189
189
  }
190
190
  return `${oldest}^1...${newest}`;
191
191
  }
192
+ /**
193
+ * Derive a delivery's diff range from the durable PRE-MERGE boundary recorded at
194
+ * merge time (focus_merges.pre_merge_ref -- the integration HEAD captured just
195
+ * before the branch merged back) and its recorded merge-back sha
196
+ * (focus_merges.merge_commit_sha). The range is `<preMergeRef>...<sha>`.
197
+ *
198
+ * This is the FAST-FORWARD-safe source. When the merge-back fast-forwards -- the
199
+ * daemon's normal path (mergeToIntegration tries --ff-only first) -- no merge
200
+ * commit is produced, so resolveRecordedMergeRange refuses the recorded (ordinary,
201
+ * single-parent) ff HEAD, getCommitsAhead reads 0 (branch level with base), and
202
+ * findDeliveryMergeCommit finds nothing. The recorded pre-merge boundary survives
203
+ * all three failures: `<preMergeRef>...<sha>` still spans exactly the commits
204
+ * merged back, because a fast-forward makes the recorded sha a descendant of the
205
+ * pre-merge boundary.
206
+ *
207
+ * Returns null when either ref is blank/absent, either is unreachable in the
208
+ * worktree, the boundary and the sha are the same commit (an empty range --
209
+ * nothing merged), or the sha is NOT a descendant of the boundary (not a
210
+ * fast-forward shape -- e.g. history was rewritten). null makes the caller fall
211
+ * through to its remaining sources rather than fabricate a range.
212
+ *
213
+ * Independent of the recorded commit SET (resolveRecordedCommitRange): it uses two
214
+ * scalar boundaries, so it still yields a range when the commit_shas array is
215
+ * empty -- the failure mode observed in the 2026-08-15 fast-forward incident, and
216
+ * the reason this source exists rather than deriving the boundary from that array.
217
+ */
218
+ export function resolveRecordedFastForwardRange(worktreePath, preMergeRef, mergeBackSha) {
219
+ const base = (preMergeRef ?? '').trim();
220
+ const tip = (mergeBackSha ?? '').trim();
221
+ if (base === '' || tip === '')
222
+ return null;
223
+ let baseSha;
224
+ let tipSha;
225
+ try {
226
+ baseSha = execSync(`git rev-parse --verify --quiet ${base}^{commit}`, {
227
+ cwd: worktreePath, maxBuffer: 1024 * 1024, encoding: 'utf-8',
228
+ }).trim();
229
+ tipSha = execSync(`git rev-parse --verify --quiet ${tip}^{commit}`, {
230
+ cwd: worktreePath, maxBuffer: 1024 * 1024, encoding: 'utf-8',
231
+ }).trim();
232
+ }
233
+ catch {
234
+ return null;
235
+ }
236
+ if (baseSha === '' || tipSha === '' || baseSha === tipSha)
237
+ return null;
238
+ try {
239
+ // The recorded sha must be a DESCENDANT of the pre-merge boundary -- the
240
+ // fast-forward shape. `--is-ancestor base tip` exits 0 when base is an
241
+ // ancestor of tip, and non-zero (caught here) otherwise.
242
+ execSync(`git merge-base --is-ancestor ${baseSha} ${tipSha}`, {
243
+ cwd: worktreePath, maxBuffer: 1024 * 1024, encoding: 'utf-8',
244
+ });
245
+ }
246
+ catch {
247
+ return null;
248
+ }
249
+ return `${baseSha}...${tipSha}`;
250
+ }
192
251
  /**
193
252
  * The git trailer key that attributes a commit to the delivery whose work it is.
194
253
  * Stamped by agents at commit time (see execution-sections / the agent CLAUDE.md
@@ -217,6 +276,97 @@ export function readDeliveryTrailer(worktreePath, sha) {
217
276
  return '';
218
277
  }
219
278
  }
279
+ /**
280
+ * The intended delivery id carried by a commit whose `Telora-Delivery` trailer
281
+ * did NOT parse -- recovered from a `Telora-Delivery:` line sitting in the commit
282
+ * BODY (a voided position: git parses only the last paragraph as trailers, so a
283
+ * line separated from the trailer block by a blank line renders but does not
284
+ * parse). Returns '' when no such line exists. This is how a write-time check
285
+ * recovers the id to re-stamp without the caller having to supply it.
286
+ */
287
+ function readVoidedDeliveryLine(worktreePath, sha) {
288
+ const clean = (sha ?? '').trim();
289
+ if (clean === '')
290
+ return '';
291
+ try {
292
+ const body = execSync(`git show -s --format=%B ${clean}^{commit}`, { cwd: worktreePath, maxBuffer: 1024 * 1024, encoding: 'utf-8' });
293
+ const m = body.match(/^\s*Telora-Delivery:\s*(\S+)\s*$/m);
294
+ return m ? (m[1] ?? '').trim() : '';
295
+ }
296
+ catch {
297
+ return '';
298
+ }
299
+ }
300
+ /**
301
+ * Confirm the `Telora-Delivery` trailer of a just-made commit AT WRITE TIME, and
302
+ * self-heal a voided one before it can enter a recorded merge batch.
303
+ *
304
+ * The read side (filterCommitsByDelivery / the verify gate) only ever runs long
305
+ * after merge, when a voided trailer is unrepairable. This check runs where the
306
+ * trailer is WRITTEN: it reads the trailer back with the SAME `git show` invocation
307
+ * the gate uses (readDeliveryTrailer -- not a re-derived command), and when the
308
+ * trailer does not parse but the intended id is recoverable, it amends the commit
309
+ * so the trailer lands in git's single trailer block (via `git commit --amend
310
+ * --trailer`), where it parses -- adjacent to any Co-Authored-By line.
311
+ *
312
+ * SAFE-AMEND INVARIANT: only HEAD is amended. Amending a non-HEAD commit would
313
+ * rewrite history the branch has already built on, so a voided non-HEAD commit
314
+ * returns ok:false / reason:'not_head' rather than a dangerous rebase. The
315
+ * intended caller runs this immediately after each commit, when the voided commit
316
+ * IS HEAD -- the earliest, safest point, in the agent's own worktree.
317
+ *
318
+ * Pure-ish (shells out to git in `worktreePath`); no DB or network. Idempotent:
319
+ * a commit whose trailer already parses returns ok:true, amended:false untouched.
320
+ */
321
+ export function confirmDeliveryTrailer(worktreePath, sha, expectedDeliveryId) {
322
+ const parsed = readDeliveryTrailer(worktreePath, sha);
323
+ if (parsed !== '') {
324
+ return { ok: true, amended: false, deliveryId: parsed };
325
+ }
326
+ // No parseable trailer. Recover the intended id: prefer the caller's expected
327
+ // id, else a Telora-Delivery line stranded in the body (the voided case).
328
+ const intended = (expectedDeliveryId ?? '').trim() || readVoidedDeliveryLine(worktreePath, sha);
329
+ if (intended === '') {
330
+ return { ok: false, amended: false, deliveryId: '', reason: 'no_id' };
331
+ }
332
+ // Only HEAD can be amended safely.
333
+ let head = '';
334
+ try {
335
+ head = execSync('git rev-parse HEAD', {
336
+ cwd: worktreePath, maxBuffer: 1024 * 1024, encoding: 'utf-8',
337
+ }).trim();
338
+ }
339
+ catch {
340
+ head = '';
341
+ }
342
+ const target = (sha ?? '').trim();
343
+ const targetResolved = (() => {
344
+ try {
345
+ return execSync(`git rev-parse ${target}^{commit}`, {
346
+ cwd: worktreePath, maxBuffer: 1024 * 1024, encoding: 'utf-8',
347
+ }).trim();
348
+ }
349
+ catch {
350
+ return target;
351
+ }
352
+ })();
353
+ if (head === '' || head !== targetResolved) {
354
+ return { ok: false, amended: false, deliveryId: intended, reason: 'not_head' };
355
+ }
356
+ try {
357
+ // `--trailer` inserts into git's trailer block (adjacent to Co-Authored-By),
358
+ // so the re-stamped trailer parses. `--no-edit` keeps the existing message.
359
+ execSync(`git commit --amend --no-edit --trailer "${DELIVERY_TRAILER_KEY}: ${intended}"`, { cwd: worktreePath, maxBuffer: 1024 * 1024, encoding: 'utf-8' });
360
+ }
361
+ catch {
362
+ return { ok: false, amended: false, deliveryId: intended, reason: 'amend_failed' };
363
+ }
364
+ const reparsed = readDeliveryTrailer(worktreePath, 'HEAD');
365
+ if (reparsed === '') {
366
+ return { ok: false, amended: true, deliveryId: intended, reason: 'amend_failed' };
367
+ }
368
+ return { ok: true, amended: true, deliveryId: reparsed };
369
+ }
220
370
  /**
221
371
  * Partition a RECORDED batch commit set (focus_merges.commit_shas, which spans
222
372
  * every delivery merged together) down to the commits attributable to ONE
@@ -250,6 +400,69 @@ export function filterCommitsByDelivery(worktreePath, commitShas, deliveryId) {
250
400
  return shas; // no delivery to filter by -> do not silently drop work
251
401
  return trailers.filter((t) => t.delivery === wanted).map((t) => t.sha);
252
402
  }
403
+ /**
404
+ * From a focus's WHOLE recorded merge history (every batch's commit set), return
405
+ * exactly THIS delivery's own commits -- the commits whose `Telora-Delivery`
406
+ * trailer matches deliveryId, unioned across every batch that carried any of
407
+ * them, order-preserving (newest-batch-first, newest-within-batch-first) and
408
+ * deduped.
409
+ *
410
+ * This is the batch-and-fast-forward-agnostic read path. A delivery's stamped
411
+ * merge_commit_sha names the batch merged in its session, which is NOT
412
+ * necessarily the batch that carried its OWN commits (a delivery whose work
413
+ * landed in an EARLIER batch, or SPLIT across more than one, is filtered to zero
414
+ * by a single-row lookup -- the 2026-08-15 blindness). Searching every batch by
415
+ * the per-commit trailer fact recovers the delivery's commits regardless of
416
+ * which batch its row points at.
417
+ *
418
+ * Returns null when NO commit anywhere in the supplied batches carries a trailer
419
+ * (a total legacy / pre-convention focus): the history is un-partitionable, so
420
+ * the caller falls back to the single-row legacy behavior rather than this
421
+ * function guessing which batch is the delivery's. A TRAILERED focus in which
422
+ * THIS delivery simply contributed nothing returns [] (not null) -- the fix must
423
+ * not manufacture work where none exists.
424
+ *
425
+ * The returned set forms the same newest-first shape resolveRecordedCommitRange
426
+ * expects; a delivery split across batches is non-contiguous and resolves to a
427
+ * `commits` source (diffed commit-by-commit) downstream.
428
+ */
429
+ export function selectDeliveryCommitsAcrossBatches(worktreePath, batches, deliveryId) {
430
+ const wanted = (deliveryId ?? '').trim();
431
+ const seen = new Set();
432
+ const flat = [];
433
+ for (const batch of batches ?? []) {
434
+ for (const raw of batch ?? []) {
435
+ const sha = (raw ?? '').trim();
436
+ if (sha === '' || seen.has(sha))
437
+ continue;
438
+ seen.add(sha);
439
+ flat.push(sha);
440
+ }
441
+ }
442
+ if (flat.length === 0)
443
+ return null; // nothing recorded -> caller uses single-row fallback
444
+ const trailers = flat.map((sha) => ({ sha, delivery: readDeliveryTrailer(worktreePath, sha) }));
445
+ const anyTrailered = trailers.some((t) => t.delivery !== '');
446
+ if (!anyTrailered)
447
+ return null; // un-partitionable legacy focus -> single-row fallback
448
+ if (wanted === '')
449
+ return null; // no delivery to attribute by -> single-row fallback
450
+ return trailers.filter((t) => t.delivery === wanted).map((t) => t.sha);
451
+ }
452
+ /**
453
+ * Does ANY commit in a batch carry a parseable `Telora-Delivery` trailer?
454
+ *
455
+ * This is the batch-level fact that distinguishes a partitionable batch (>=1
456
+ * trailered commit) from an un-partitionable one (0 trailered). It does NOT by
457
+ * itself distinguish a genuine legacy pre-convention batch from a TOTAL
458
+ * ATTRIBUTION FAILURE -- that requires the focus's delivery count too (a
459
+ * single-delivery focus is legitimately unpartitionable; a multi-delivery focus
460
+ * with zero trailers is broken). The caller combines this with that count.
461
+ */
462
+ export function batchHasAnyTrailer(worktreePath, commitShas) {
463
+ const shas = (commitShas ?? []).map((s) => s.trim()).filter((s) => s !== '');
464
+ return shas.some((sha) => readDeliveryTrailer(worktreePath, sha) !== '');
465
+ }
253
466
  /**
254
467
  * The commit SHAs contained in a diff range (`git rev-list <range>`). Empty on
255
468
  * failure. Used by the verify COMPLETENESS check to prove the resolved range
@@ -304,6 +517,11 @@ function spanCoversRecordedExactly(worktreePath, span, shas) {
304
517
  * 2. RECORDED merge commit present -> `{range: <sha>^1...<sha>}`, ONLY for a real
305
518
  * >=2-parent merge (single-parent ff commits are refused -- see
306
519
  * resolveRecordedMergeRange).
520
+ * 2b. RECORDED pre-merge boundary present -> `{range: <preMergeRef>...<sha>}` (the
521
+ * FAST-FORWARD-safe source, resolveRecordedFastForwardRange). A fast-forward
522
+ * merge-back produces NO merge commit, so 2 refuses the recorded (ordinary) ff
523
+ * HEAD, 3 reads zero, and 4 finds nothing -- but the recorded pre-merge
524
+ * boundary still bounds the merged contribution.
307
525
  * 3. branch AHEAD of base -> `{range: base...HEAD}` (an unmerged branch has no
308
526
  * focus_merges row; topology is correct and byte-identical to the old path).
309
527
  * 4. branch LEVEL/BEHIND after merge -> `{range: <merge>^1...<merge>}` (searched
@@ -314,12 +532,22 @@ function spanCoversRecordedExactly(worktreePath, span, shas) {
314
532
  * branch that has since taken one new commit (routine: every spawn rebases onto
315
533
  * integration) is NOT truncated to that single trailing commit.
316
534
  *
535
+ * BOUNDARY-SHAPE DECISION (why source 2b uses a recorded scalar, not the commit
536
+ * set's oldest^1): the fast-forward boundary is persisted as its OWN durable
537
+ * scalar (focus_merges.pre_merge_ref) rather than derived from
538
+ * resolveRecordedCommitRange's `<oldest>^1`. The alternative -- deriving the
539
+ * boundary from the recorded commit SET -- was rejected because that set is source
540
+ * 1, and source 1 is exactly what came back EMPTY in the 2026-08-15 fast-forward
541
+ * incident; a boundary derived from it would inherit the same failure. Two scalar
542
+ * boundaries give a source that survives an empty commit_shas array. The cost is a
543
+ * schema column; the redundancy is the point of the delivery.
544
+ *
317
545
  * `recordedCommitShas` is the delivery's OWN commit set (focus_merges.commit_shas
318
546
  * already partitioned per-delivery by the Telora-Delivery trailer); `recordedMergeSha`
319
- * is the row's merge_commit_sha. Callers without a record (assembly resolvers) pass
320
- * neither and get the topology path.
547
+ * is the row's merge_commit_sha; `recordedPreMergeRef` is the row's pre_merge_ref.
548
+ * Callers without a record (assembly resolvers) pass none and get the topology path.
321
549
  */
322
- export function resolveDeliveryDiffSource(worktreePath, baseBranch, recordedMergeSha, recordedCommitShas) {
550
+ export function resolveDeliveryDiffSource(worktreePath, baseBranch, recordedMergeSha, recordedCommitShas, recordedPreMergeRef) {
323
551
  const shas = (recordedCommitShas ?? []).map((s) => s.trim()).filter((s) => s !== '');
324
552
  if (shas.length > 0) {
325
553
  const span = resolveRecordedCommitRange(worktreePath, shas);
@@ -339,6 +567,12 @@ export function resolveDeliveryDiffSource(worktreePath, baseBranch, recordedMerg
339
567
  const recordedMerge = resolveRecordedMergeRange(worktreePath, recordedMergeSha);
340
568
  if (recordedMerge)
341
569
  return { kind: 'range', range: recordedMerge };
570
+ // FAST-FORWARD-safe: the recorded pre-merge boundary + recorded merge-back sha
571
+ // bound the merged contribution even when the merge-back produced no merge
572
+ // commit (so resolveRecordedMergeRange refused the ff HEAD just above).
573
+ const ffRange = resolveRecordedFastForwardRange(worktreePath, recordedPreMergeRef, recordedMergeSha);
574
+ if (ffRange)
575
+ return { kind: 'range', range: ffRange };
342
576
  if (getCommitsAhead(worktreePath, baseBranch) > 0)
343
577
  return { kind: 'range', range: `${baseBranch}...HEAD` };
344
578
  const merge = findDeliveryMergeCommit(worktreePath, baseBranch);
@@ -346,6 +580,118 @@ export function resolveDeliveryDiffSource(worktreePath, baseBranch, recordedMerg
346
580
  return { kind: 'range', range: `${merge}^1...${merge}` };
347
581
  return null;
348
582
  }
583
+ /**
584
+ * Diagnose WHY {@link resolveDeliveryDiffSource} found no source, by re-walking
585
+ * the SAME four sources in the SAME order and recording the reason each yielded
586
+ * nothing. Pure diagnostic: it does NOT change what resolveDeliveryDiffSource
587
+ * returns and never renders a verdict -- call it ONLY after the resolver already
588
+ * returned null, to make the gate's blindness legible in the daemon log.
589
+ *
590
+ * This is the record the fast-forward incident (2026-08-15) needed and did not
591
+ * have: when the merge-back fast-forwards, all four sources structurally fail
592
+ * (no recorded merge commit exists, the branch is level with base, the merge
593
+ * search finds nothing), and the fault reported only the outcome ("no evidence"),
594
+ * not which source was consulted or why. Each probe names one source and its
595
+ * empty-reason, e.g. "recorded commit set empty", "recorded sha refused as
596
+ * non-merge", "zero commits ahead", "no merge commit found".
597
+ */
598
+ export function diagnoseEmptyDiffSource(worktreePath, baseBranch, recordedMergeSha, recordedCommitShas, recordedPreMergeRef) {
599
+ const probes = [];
600
+ // 1. RECORDED commit set (focus_merges.commit_shas, trailer-filtered per delivery).
601
+ const shas = (recordedCommitShas ?? []).map((s) => s.trim()).filter((s) => s !== '');
602
+ if (shas.length === 0) {
603
+ probes.push({
604
+ source: 'recorded_commit_set',
605
+ reason: 'no recorded commit set (focus_merges.commit_shas empty, or none attributable to this delivery)',
606
+ });
607
+ }
608
+ else if (!resolveRecordedCommitRange(worktreePath, shas) && !shas.every((s) => commitExists(worktreePath, s))) {
609
+ probes.push({
610
+ source: 'recorded_commit_set',
611
+ reason: `recorded commit set present (${shas.length} commit(s)) but its span boundary AND the commits ` +
612
+ `themselves are unreachable in the worktree (e.g. --squash rewrote history)`,
613
+ });
614
+ }
615
+ else {
616
+ // The set was resolvable: resolveDeliveryDiffSource would have returned it, so
617
+ // reaching diagnoseEmptyDiffSource here is unexpected -- report it honestly.
618
+ probes.push({
619
+ source: 'recorded_commit_set',
620
+ reason: `recorded commit set present (${shas.length} commit(s)) and resolvable -- unexpected in an empty-source diagnosis`,
621
+ });
622
+ }
623
+ // 2. RECORDED merge commit (must be a real >= 2-parent merge).
624
+ const mergeSha = (recordedMergeSha ?? '').trim();
625
+ if (mergeSha === '') {
626
+ probes.push({
627
+ source: 'recorded_merge_commit',
628
+ reason: 'no recorded merge_commit_sha for a merged-back git state',
629
+ });
630
+ }
631
+ else if (!resolveRecordedMergeRange(worktreePath, mergeSha)) {
632
+ probes.push({
633
+ source: 'recorded_merge_commit',
634
+ reason: `recorded sha ${mergeSha.slice(0, 12)} refused: absent, or not a >= 2-parent merge commit ` +
635
+ `(a fast-forward merge-back leaves no merge commit)`,
636
+ });
637
+ }
638
+ else {
639
+ probes.push({
640
+ source: 'recorded_merge_commit',
641
+ reason: `recorded merge sha ${mergeSha.slice(0, 12)} resolvable -- unexpected in an empty-source diagnosis`,
642
+ });
643
+ }
644
+ // 2b. RECORDED pre-merge boundary (fast-forward-safe range).
645
+ const preRef = (recordedPreMergeRef ?? '').trim();
646
+ if (preRef === '') {
647
+ probes.push({
648
+ source: 'recorded_fast_forward_range',
649
+ reason: 'no recorded pre_merge_ref boundary (row predates the column, or the merge did not capture it)',
650
+ });
651
+ }
652
+ else if (!resolveRecordedFastForwardRange(worktreePath, preRef, mergeSha)) {
653
+ probes.push({
654
+ source: 'recorded_fast_forward_range',
655
+ reason: `recorded pre_merge_ref ${preRef.slice(0, 12)} present but no fast-forward range resolved ` +
656
+ `(boundary or merge sha unreachable, equal, or not a fast-forward shape)`,
657
+ });
658
+ }
659
+ else {
660
+ probes.push({
661
+ source: 'recorded_fast_forward_range',
662
+ reason: `recorded pre_merge_ref ${preRef.slice(0, 12)} resolvable -- unexpected in an empty-source diagnosis`,
663
+ });
664
+ }
665
+ // 3. branch AHEAD of base.
666
+ const ahead = getCommitsAhead(worktreePath, baseBranch);
667
+ if (ahead === 0) {
668
+ probes.push({
669
+ source: 'commits_ahead',
670
+ reason: `zero commits ahead of ${baseBranch} (branch level or behind -- already merged, fast-forwarded away, or no work)`,
671
+ });
672
+ }
673
+ else {
674
+ probes.push({
675
+ source: 'commits_ahead',
676
+ reason: `${ahead} commit(s) ahead of ${baseBranch} -- unexpected in an empty-source diagnosis`,
677
+ });
678
+ }
679
+ // 4. searched merge commit on base whose non-first parent is HEAD.
680
+ const merge = findDeliveryMergeCommit(worktreePath, baseBranch);
681
+ if (!merge) {
682
+ probes.push({
683
+ source: 'searched_merge_commit',
684
+ reason: `no merge commit on ${baseBranch} whose non-first parent is HEAD (a fast-forward merge-back leaves none to find)`,
685
+ });
686
+ }
687
+ else {
688
+ probes.push({
689
+ source: 'searched_merge_commit',
690
+ reason: `merge commit ${merge.slice(0, 12)} found -- unexpected in an empty-source diagnosis`,
691
+ });
692
+ }
693
+ return probes;
694
+ }
349
695
  /**
350
696
  * String-range view of {@link resolveDeliveryDiffSource}, for consumers that need
351
697
  * a single range expression (assembly resolvers). Those callers pass no recorded
@@ -353,8 +699,8 @@ export function resolveDeliveryDiffSource(worktreePath, baseBranch, recordedMerg
353
699
  * (interleaved per-delivery set) degrades to its best-effort span here -- only the
354
700
  * verify path, which uses the source API directly, isolates interleaved commits.
355
701
  */
356
- export function resolveDeliveryDiffRange(worktreePath, baseBranch, recordedMergeSha, recordedCommitShas) {
357
- const source = resolveDeliveryDiffSource(worktreePath, baseBranch, recordedMergeSha, recordedCommitShas);
702
+ export function resolveDeliveryDiffRange(worktreePath, baseBranch, recordedMergeSha, recordedCommitShas, recordedPreMergeRef) {
703
+ const source = resolveDeliveryDiffSource(worktreePath, baseBranch, recordedMergeSha, recordedCommitShas, recordedPreMergeRef);
358
704
  if (!source)
359
705
  return null;
360
706
  if (source.kind === 'range')
@@ -1 +1 @@
1
- {"version":3,"file":"git-diff.js","sourceRoot":"","sources":["../../../src/resolvers/shared/git-diff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-diff.js","sourceRoot":"","sources":["../../../src/resolvers/shared/git-diff.ts"],"names":[],"mappings":"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"}
@@ -145,6 +145,31 @@ export interface VerificationDeps {
145
145
  * resolver then falls through to topology). Optional; defaultDeps provides it.
146
146
  */
147
147
  resolveRecordedCommitShas?: (v: PendingVerification) => Promise<string[]>;
148
+ /**
149
+ * Resolve the delivery's RECORDED pre-merge boundary (focus_merges.pre_merge_ref)
150
+ * for the merge_commit_sha the row carries. The verify diff resolver uses
151
+ * `<preMergeRef>...<mergeCommitSha>` as a FAST-FORWARD-safe range when the
152
+ * merge-back produced no merge commit -- an INDEPENDENT source from
153
+ * resolveRecordedCommitShas (a scalar that survives an empty commit_shas array).
154
+ * Returns null when no boundary was recorded (the resolver then falls through to
155
+ * its remaining sources). Optional; defaultDeps provides it.
156
+ */
157
+ resolveRecordedPreMergeRef?: (v: PendingVerification) => Promise<string | null>;
158
+ /**
159
+ * Detect a TOTAL ATTRIBUTION FAILURE: the recorded merge batch carries ZERO
160
+ * parseable Telora-Delivery trailers on a focus with MORE THAN ONE delivery.
161
+ * Such a batch is un-partitionable AND cannot be the genuine single-delivery
162
+ * legacy case, so returning the whole set as this delivery's evidence would
163
+ * judge it against the combined sibling diff (a confident verdict on the wrong
164
+ * evidence). Returns the batch/deliveries sizes when it IS such a failure, or
165
+ * null otherwise (partitionable batch, single-delivery focus, or no record).
166
+ * The engine forces the evidence-unavailable non-verdict path on non-null.
167
+ * Optional; defaultDeps provides it.
168
+ */
169
+ resolveAttributionFailure?: (v: PendingVerification) => Promise<{
170
+ batch: number;
171
+ deliveries: number;
172
+ } | null>;
148
173
  /** Baseline-diff attribution; null => no baseline resolvable (gate all). Optional. */
149
174
  attributeFailures?: (v: PendingVerification, result: StrategyResult) => Promise<FailureClassification | null>;
150
175
  }
@@ -1 +1 @@
1
- {"version":3,"file":"verification-deps.d.ts","sourceRoot":"","sources":["../src/verification-deps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verification-deps.d.ts","sourceRoot":"","sources":["../src/verification-deps.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"verification-engine.d.ts","sourceRoot":"","sources":["../src/verification-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAA4B,KAAK,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAChG,OAAO,EAAE,wBAAwB,EAAE,KAAK,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AACzG,OAAO,EAKL,KAAK,mBAAmB,EAGzB,MAAM,2BAA2B,CAAC;AAWnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAe/C,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,gCAAgC,EAChC,qBAAqB,EACrB,qBAAqB,EACrB,kCAAkC,EAClC,6BAA6B,EAC7B,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,2BAA2B,CAAC;AAiBnC,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,cAAc,CAAC,CAKrE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,gBAAgB,EACtB,CAAC,EAAE,mBAAmB,GACrB,OAAO,CAAC,cAAc,GAAG;IAAE,UAAU,CAAC,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAmB7D;AAMD;;;;GAIG;AACH,YAAY,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,KAAK,EAA8B,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAgF3F;;;;;;GAMG;AACH,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,KAAK,kBAAkB,GACxB,MAAM,4BAA4B,CAAC;AAWpC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,0BAA0B,CAC9C,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,cAAc,CAAC,CA8SzB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,YAAY,EACpB,IAAI,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAC/B,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAwFlG"}
1
+ {"version":3,"file":"verification-engine.d.ts","sourceRoot":"","sources":["../src/verification-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAA4B,KAAK,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAChG,OAAO,EAAE,wBAAwB,EAAE,KAAK,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AACzG,OAAO,EAKL,KAAK,mBAAmB,EAGzB,MAAM,2BAA2B,CAAC;AAWnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAe/C,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,gCAAgC,EAChC,qBAAqB,EACrB,qBAAqB,EACrB,kCAAkC,EAClC,6BAA6B,EAC7B,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,2BAA2B,CAAC;AAiBnC,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,cAAc,CAAC,CAKrE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,gBAAgB,EACtB,CAAC,EAAE,mBAAmB,GACrB,OAAO,CAAC,cAAc,GAAG;IAAE,UAAU,CAAC,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAmB7D;AAMD;;;;GAIG;AACH,YAAY,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,KAAK,EAA8B,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAqI3F;;;;;;GAMG;AACH,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,KAAK,kBAAkB,GACxB,MAAM,4BAA4B,CAAC;AAYpC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,0BAA0B,CAC9C,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,cAAc,CAAC,CAwXzB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,YAAY,EACpB,IAAI,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAC/B,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAwFlG"}