@telora/daemon 0.20.60 → 0.20.89

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 (163) hide show
  1. package/build-info.json +4 -3
  2. package/dist/ai-inspection-context.d.ts.map +1 -1
  3. package/dist/ai-inspection-context.js +4 -2
  4. package/dist/ai-inspection-context.js.map +1 -1
  5. package/dist/audit-phase.d.ts +12 -18
  6. package/dist/audit-phase.d.ts.map +1 -1
  7. package/dist/audit-phase.js +17 -60
  8. package/dist/audit-phase.js.map +1 -1
  9. package/dist/audit-prompt.d.ts +44 -0
  10. package/dist/audit-prompt.d.ts.map +1 -0
  11. package/dist/audit-prompt.js +198 -0
  12. package/dist/audit-prompt.js.map +1 -0
  13. package/dist/ci-sensor-loop.d.ts +38 -1
  14. package/dist/ci-sensor-loop.d.ts.map +1 -1
  15. package/dist/ci-sensor-loop.js +49 -5
  16. package/dist/ci-sensor-loop.js.map +1 -1
  17. package/dist/completion/completion-decision.d.ts +3 -29
  18. package/dist/completion/completion-decision.d.ts.map +1 -1
  19. package/dist/completion/completion-decision.js +3 -15
  20. package/dist/completion/completion-decision.js.map +1 -1
  21. package/dist/completion/event-phases.d.ts +0 -8
  22. package/dist/completion/event-phases.d.ts.map +1 -1
  23. package/dist/completion/event-phases.js +4 -52
  24. package/dist/completion/event-phases.js.map +1 -1
  25. package/dist/completion/event.d.ts +1 -11
  26. package/dist/completion/event.d.ts.map +1 -1
  27. package/dist/completion/event.js +1 -3
  28. package/dist/completion/event.js.map +1 -1
  29. package/dist/delivery-artifacts.d.ts.map +1 -1
  30. package/dist/delivery-artifacts.js +9 -8
  31. package/dist/delivery-artifacts.js.map +1 -1
  32. package/dist/delivery-reconciler.d.ts +3 -0
  33. package/dist/delivery-reconciler.d.ts.map +1 -1
  34. package/dist/delivery-reconciler.js +16 -0
  35. package/dist/delivery-reconciler.js.map +1 -1
  36. package/dist/focus-engine.d.ts.map +1 -1
  37. package/dist/focus-engine.js +12 -1
  38. package/dist/focus-engine.js.map +1 -1
  39. package/dist/focus-executor.d.ts.map +1 -1
  40. package/dist/focus-executor.js +4 -1
  41. package/dist/focus-executor.js.map +1 -1
  42. package/dist/focus-merge.d.ts.map +1 -1
  43. package/dist/focus-merge.js +37 -3
  44. package/dist/focus-merge.js.map +1 -1
  45. package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts.map +1 -1
  46. package/dist/focus-stage-lifecycle/wedge-watchdog.js +9 -1
  47. package/dist/focus-stage-lifecycle/wedge-watchdog.js.map +1 -1
  48. package/dist/listener-auto-advance.d.ts.map +1 -1
  49. package/dist/listener-auto-advance.js +58 -10
  50. package/dist/listener-auto-advance.js.map +1 -1
  51. package/dist/merge-back-loop.d.ts +8 -2
  52. package/dist/merge-back-loop.d.ts.map +1 -1
  53. package/dist/merge-back-loop.js +17 -11
  54. package/dist/merge-back-loop.js.map +1 -1
  55. package/dist/merge-failure-classify.d.ts +39 -0
  56. package/dist/merge-failure-classify.d.ts.map +1 -0
  57. package/dist/merge-failure-classify.js +58 -0
  58. package/dist/merge-failure-classify.js.map +1 -0
  59. package/dist/prompt-sections/execution-sections.d.ts +20 -14
  60. package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
  61. package/dist/prompt-sections/execution-sections.js +97 -141
  62. package/dist/prompt-sections/execution-sections.js.map +1 -1
  63. package/dist/prompt-sections/scoping-sections.d.ts +30 -0
  64. package/dist/prompt-sections/scoping-sections.d.ts.map +1 -0
  65. package/dist/prompt-sections/scoping-sections.js +187 -0
  66. package/dist/prompt-sections/scoping-sections.js.map +1 -0
  67. package/dist/prompt-sections/shared.d.ts +7 -0
  68. package/dist/prompt-sections/shared.d.ts.map +1 -1
  69. package/dist/prompt-sections/shared.js.map +1 -1
  70. package/dist/queries/agent-resolvable-promotion.d.ts +87 -0
  71. package/dist/queries/agent-resolvable-promotion.d.ts.map +1 -0
  72. package/dist/queries/agent-resolvable-promotion.js +152 -0
  73. package/dist/queries/agent-resolvable-promotion.js.map +1 -0
  74. package/dist/queries/cause-key.d.ts +64 -0
  75. package/dist/queries/cause-key.d.ts.map +1 -0
  76. package/dist/queries/cause-key.js +79 -0
  77. package/dist/queries/cause-key.js.map +1 -0
  78. package/dist/queries/deliveries.d.ts +20 -153
  79. package/dist/queries/deliveries.d.ts.map +1 -1
  80. package/dist/queries/deliveries.js +26 -0
  81. package/dist/queries/deliveries.js.map +1 -1
  82. package/dist/queries/delivery-gate-state.d.ts +192 -0
  83. package/dist/queries/delivery-gate-state.d.ts.map +1 -0
  84. package/dist/queries/delivery-gate-state.js +23 -0
  85. package/dist/queries/delivery-gate-state.js.map +1 -0
  86. package/dist/queries/escalation-suppression.d.ts +89 -0
  87. package/dist/queries/escalation-suppression.d.ts.map +1 -0
  88. package/dist/queries/escalation-suppression.js +98 -0
  89. package/dist/queries/escalation-suppression.js.map +1 -0
  90. package/dist/queries/holds.d.ts +52 -59
  91. package/dist/queries/holds.d.ts.map +1 -1
  92. package/dist/queries/holds.js +60 -68
  93. package/dist/queries/holds.js.map +1 -1
  94. package/dist/queries/issues.d.ts +40 -2
  95. package/dist/queries/issues.d.ts.map +1 -1
  96. package/dist/queries/issues.js +55 -2
  97. package/dist/queries/issues.js.map +1 -1
  98. package/dist/queries/verification.d.ts +11 -0
  99. package/dist/queries/verification.d.ts.map +1 -1
  100. package/dist/queries/verification.js.map +1 -1
  101. package/dist/reality-pole.d.ts +5 -3
  102. package/dist/reality-pole.d.ts.map +1 -1
  103. package/dist/reality-pole.js +13 -4
  104. package/dist/reality-pole.js.map +1 -1
  105. package/dist/resolvers/git-diff-against-base.d.ts.map +1 -1
  106. package/dist/resolvers/git-diff-against-base.js +12 -5
  107. package/dist/resolvers/git-diff-against-base.js.map +1 -1
  108. package/dist/resolvers/index.d.ts +1 -1
  109. package/dist/resolvers/index.d.ts.map +1 -1
  110. package/dist/resolvers/index.js +1 -1
  111. package/dist/resolvers/index.js.map +1 -1
  112. package/dist/resolvers/shared/git-diff.d.ts +152 -10
  113. package/dist/resolvers/shared/git-diff.d.ts.map +1 -1
  114. package/dist/resolvers/shared/git-diff.js +292 -14
  115. package/dist/resolvers/shared/git-diff.js.map +1 -1
  116. package/dist/spawn/prompt-assembly.d.ts +3 -0
  117. package/dist/spawn/prompt-assembly.d.ts.map +1 -1
  118. package/dist/spawn/prompt-assembly.js +2 -1
  119. package/dist/spawn/prompt-assembly.js.map +1 -1
  120. package/dist/spawn/worktree-session.d.ts +2 -0
  121. package/dist/spawn/worktree-session.d.ts.map +1 -1
  122. package/dist/spawn/worktree-session.js +20 -1
  123. package/dist/spawn/worktree-session.js.map +1 -1
  124. package/dist/staleness-sensor.d.ts +24 -1
  125. package/dist/staleness-sensor.d.ts.map +1 -1
  126. package/dist/staleness-sensor.js +31 -4
  127. package/dist/staleness-sensor.js.map +1 -1
  128. package/dist/stall-detectors.d.ts +13 -9
  129. package/dist/stall-detectors.d.ts.map +1 -1
  130. package/dist/stall-detectors.js +14 -13
  131. package/dist/stall-detectors.js.map +1 -1
  132. package/dist/team-prompt-base.d.ts +1 -1
  133. package/dist/team-prompt-base.d.ts.map +1 -1
  134. package/dist/team-prompt-base.js +4 -2
  135. package/dist/team-prompt-base.js.map +1 -1
  136. package/dist/templates/claude-md.d.ts +1 -1
  137. package/dist/templates/claude-md.d.ts.map +1 -1
  138. package/dist/templates/claude-md.js +20 -0
  139. package/dist/templates/claude-md.js.map +1 -1
  140. package/dist/verification-default-on.d.ts.map +1 -1
  141. package/dist/verification-default-on.js +5 -0
  142. package/dist/verification-default-on.js.map +1 -1
  143. package/dist/verification-deps.d.ts +151 -0
  144. package/dist/verification-deps.d.ts.map +1 -0
  145. package/dist/verification-deps.js +19 -0
  146. package/dist/verification-deps.js.map +1 -0
  147. package/dist/verification-engine.d.ts +18 -112
  148. package/dist/verification-engine.d.ts.map +1 -1
  149. package/dist/verification-engine.js +90 -103
  150. package/dist/verification-engine.js.map +1 -1
  151. package/dist/verification-evidence.d.ts +106 -0
  152. package/dist/verification-evidence.d.ts.map +1 -0
  153. package/dist/verification-evidence.js +158 -0
  154. package/dist/verification-evidence.js.map +1 -0
  155. package/dist/verification-feedback.d.ts +31 -26
  156. package/dist/verification-feedback.d.ts.map +1 -1
  157. package/dist/verification-feedback.js +77 -76
  158. package/dist/verification-feedback.js.map +1 -1
  159. package/dist/verify-restatement.d.ts +12 -9
  160. package/dist/verify-restatement.d.ts.map +1 -1
  161. package/dist/verify-restatement.js +11 -9
  162. package/dist/verify-restatement.js.map +1 -1
  163. package/package.json +3 -3
@@ -28,16 +28,16 @@ import { getPendingVerifications, recordDeliveryVerificationOutcome, verifyInjec
28
28
  import { configForProduct } from './config.js';
29
29
  import { authorTargetRestatements as defaultAuthorTargetRestatements, } from './verify-restatement.js';
30
30
  import { fileEscalation as defaultFileEscalation } from './escalations.js';
31
- import { getGitDiffRange, getDiffStatRange, getChangedFilesRange, getCommitsAhead, resolveDeliveryDiffRange, } from './assembly-resolvers.js';
32
- import { resolveDefaultVerification as defaultResolveDefaultVerification, } from './verification-config.js';
31
+ import { getCommitsAhead, filterCommitsByDelivery } from './assembly-resolvers.js';
32
+ import { resolveDefaultVerification as defaultResolveDefaultVerification } from './verification-config.js';
33
33
  import { getActiveFocuses, getFocusDeliveries } from './supabase.js';
34
34
  import { collectDefaultOnVerifications, markDefaultOnRan, resolveDaemonWideVerifyCap, resolveProductVerificationScopes, verificationSemaphore, } from './verification-default-on.js';
35
- import { deliverVerificationFailureFeedback, requeueShortfallAsRework, deliverEvidenceUnavailableFeedback } from './verification-feedback.js';
35
+ import { deliverVerificationFailureFeedback, requeueShortfallAsRework, requeueEvidenceUnavailableAsRework } from './verification-feedback.js';
36
36
  import { buildDefaultAttributeFailures, buildResolveVerificationCwd, applyAttribution } from './verification-baseline.js';
37
37
  // Re-export the default-on selection + concurrency surface so existing
38
38
  // importers (and tests) can reach it through verification-engine.
39
39
  export { collectDefaultOnVerifications, resolveDaemonWideVerifyCap, resolveProductVerificationScopes, verificationSemaphore, VerificationSemaphore, __getVerificationSemaphoreForTests, __resetDefaultOnGuardForTests, __getDefaultOnGuardForTests, __markDefaultOnRanForTests, } from './verification-default-on.js';
40
- import { resolveAiInspectionInputs as defaultResolveAiInspectionInputs, } from './ai-inspection-context.js';
40
+ import { resolveAiInspectionInputs as defaultResolveAiInspectionInputs } from './ai-inspection-context.js';
41
41
  import { runAiInspection as defaultRunAiInspection, } from './ai-inspection-runner.js';
42
42
  import { buildDefaultSecurityFindingGateDeps, evaluateFindingNoLongerPresent, escalateOnGateFail, } from './security-finding-gate.js';
43
43
  import { callApi } from './queries/shared.js';
@@ -111,7 +111,7 @@ const defaultDeps = (config) => {
111
111
  getPendingVerifications,
112
112
  recordOutcome: recordDeliveryVerificationOutcome,
113
113
  verifyInjection: verifyInjectionOnPass,
114
- authorTargetRestatements: (injectionNodeId, focusId, evidence) => defaultAuthorTargetRestatements(injectionNodeId, focusId, evidence),
114
+ authorTargetRestatements: (injectionNodeId, focusId, evidence, evidenceIncomplete) => defaultAuthorTargetRestatements(injectionNodeId, focusId, evidence, {}, evidenceIncomplete),
115
115
  fileEscalation: defaultFileEscalation,
116
116
  organizationId: config.organizationId,
117
117
  emitDriftProposal: defaultEmitDriftProposal,
@@ -131,9 +131,24 @@ const defaultDeps = (config) => {
131
131
  getFocusDeliveries,
132
132
  deliverFailureFeedback: (v, result) => deliverVerificationFailureFeedback(v, result, config.organizationId).then(() => undefined),
133
133
  deliverShortfallFeedback: (v, shortfalls) => requeueShortfallAsRework(v, shortfalls, config.organizationId).then(() => undefined),
134
- deliverEvidenceUnavailableFeedback: (v, fault) => deliverEvidenceUnavailableFeedback(v, fault, config.organizationId).then(() => undefined),
134
+ requeueEvidenceUnavailableAsRework: (v, fault) => requeueEvidenceUnavailableAsRework(v, fault, config.organizationId).then(() => undefined),
135
135
  resolveVerificationCwd,
136
136
  resolveCommitsAhead: (v) => getCommitsAhead(resolveVerificationCwd(v), config.integrationBranch),
137
+ resolveRecordedCommitShas: async (v) => {
138
+ // Only look up the recorded commit set when the row records a merged-back
139
+ // git state with a merge sha (same gating as recordedMergeShaForVerify); an
140
+ // unmerged delivery has no focus_merges row and stays on the topology path.
141
+ const sha = recordedMergeShaForVerifyImpl(v);
142
+ if (!sha || !v.focusId)
143
+ return [];
144
+ // focus_merges.commit_shas is the BATCH set -- every delivery merged
145
+ // together shares it. Partition it down to THIS delivery's own commits by
146
+ // the Telora-Delivery trailer, so verify judges the delivery against its
147
+ // own work, not its batch's. Untrailered legacy batches return whole (no
148
+ // regression); the partition runs in the focus worktree the diff resolves in.
149
+ const batch = await getRecordedCommitShasForMerge(v.focusId, sha);
150
+ return filterCommitsByDelivery(resolveVerificationCwd(v), batch, v.deliveryId);
151
+ },
137
152
  attributeFailures: buildDefaultAttributeFailures(config),
138
153
  };
139
154
  };
@@ -143,81 +158,15 @@ const STRATEGIES = {
143
158
  ai_inspection: (deps, v) => runAiInspectionStrategy(deps, v),
144
159
  };
145
160
  /**
146
- * Resolve the cwd the delivery's diff must be read in: the FOCUS WORKTREE
147
- * (HEAD of the focus branch), the SAME cwd the deterministic strategy runs in.
148
- * NOT the product repo path -- the product repo's HEAD is the integration
149
- * branch, so `git diff base...HEAD` there is empty even when the focus branch
150
- * has real commits. Reading the diff in the wrong cwd is the resolution bug
151
- * that manufactures a false-negative shortfall (2026-07-23 incident).
161
+ * Verify-gate evidence resolution lives in verification-evidence.ts (diff-range
162
+ * resolution, structured change signals, and the missing-slot naming the
163
+ * instrument-fault hold consumes). Imported for use below and re-exported so
164
+ * existing importers/tests that reach these through verification-engine keep
165
+ * resolving.
152
166
  */
153
- function resolveDiffCwd(v, deps) {
154
- return (deps.resolveVerificationCwd ?? ((pv) => deps.resolveCwd(pv.productId)))(v);
155
- }
156
- /**
157
- * Build the cited-evidence bundle the achieved-DE authoring consumes. Sourced
158
- * from the verification verdict (NOT the UDE problem text):
159
- * - ai_inspection: the runner rationale + the delivery diff it inspected.
160
- * - deterministic: the check exit code + stdout/stderr tails, plus the diff
161
- * against integration (fetched best-effort; an empty diff just yields less
162
- * evidence, it never blocks).
163
- *
164
- * The raw diff is accompanied by STRUCTURED signals (changed-files list + diff
165
- * stat) resolved in the same focus-worktree cwd, so delivered behavior is
166
- * legible to the judge without parsing the full diff.
167
- */
168
- function buildVerifyEvidence(result, v, deps) {
169
- const cwd = resolveDiffCwd(v, deps);
170
- // Resolve the range that actually contains the delivery's work: base...HEAD
171
- // while the branch is ahead, or the merge-commit range once it has merged and
172
- // gone level with the base. A null range (no attributable commits) yields an
173
- // empty diff, which the instrument-fault path then holds -- it is never
174
- // rendered as a shortfall.
175
- const range = resolveDeliveryDiffRange(cwd, deps.integrationBranch);
176
- let diff = result.deliveryDiff ?? '';
177
- if (diff === '') {
178
- try {
179
- diff = range ? getGitDiffRange(cwd, range) : '';
180
- }
181
- catch (err) {
182
- // best-effort: no diff is fine, the other evidence slots still carry signal
183
- log.debug('best-effort: no diff is fine, the other evidence slots still carry signal', { error: String(err?.message ?? err) });
184
- }
185
- }
186
- let changedFiles = [];
187
- let diffStat = '';
188
- try {
189
- changedFiles = range ? getChangedFilesRange(cwd, range) : [];
190
- diffStat = range ? getDiffStatRange(cwd, range) : '';
191
- }
192
- catch (err) {
193
- log.debug('best-effort: structured diff signals unavailable', { error: String(err?.message ?? err) });
194
- }
195
- return {
196
- diff: diff || undefined,
197
- changedFiles: changedFiles.length > 0 ? changedFiles : undefined,
198
- diffStat: diffStat.trim() !== '' ? diffStat : undefined,
199
- testStdout: result.stdoutTail,
200
- testStderr: result.stderrTail,
201
- exitCode: result.exitCode,
202
- inspectionRationale: result.inspection?.rationale,
203
- verdictRationale: result.rationale,
204
- };
205
- }
206
- /**
207
- * Name the judgeable evidence slots that were empty, for the instrument-fault
208
- * hold's gate_state + escalation. Describes the FAULT (what the gate could not
209
- * see), never the work.
210
- */
211
- function describeMissingJudgeEvidence(ev) {
212
- const missing = [];
213
- if (!ev.diff || ev.diff.trim() === '')
214
- missing.push('diff');
215
- if (!ev.changedFiles || ev.changedFiles.length === 0)
216
- missing.push('changed files');
217
- if (!ev.inspectionRationale || ev.inspectionRationale.trim() === '')
218
- missing.push('inspection finding');
219
- return missing;
220
- }
167
+ export { MERGED_BACK_GIT_STATES, recordedMergeShaForVerify, } from './verification-evidence.js';
168
+ import { buildVerifyEvidence, describeMissingJudgeEvidence, assessRecordedCoverage, recordedMergeShaForVerify as recordedMergeShaForVerifyImpl, } from './verification-evidence.js';
169
+ import { getRecordedCommitShasForMerge } from './queries/deliveries.js';
221
170
  /**
222
171
  * Run verification for a single delivery.
223
172
  *
@@ -306,7 +255,26 @@ export async function runVerificationForDelivery(v, deps) {
306
255
  // declared DE. If ANY target falls short, we hold the gate (demote to
307
256
  // 'failed'), skip the flip, and escalate the gap to a human. Reality is
308
257
  // moved toward intent, never the reverse.
309
- const evidence = buildVerifyEvidence(result, v, deps);
258
+ // Resolve the delivery's recorded commit set (durable attribution) so the
259
+ // diff range is sourced from the record, not truncated live topology.
260
+ // Best-effort: [] falls through to the topology sources.
261
+ let recordedCommitShas = [];
262
+ if (deps.resolveRecordedCommitShas) {
263
+ try {
264
+ recordedCommitShas = await deps.resolveRecordedCommitShas(v);
265
+ }
266
+ catch (err) {
267
+ log.debug(`[verification] recorded commit-set lookup failed for ${v.deliveryId}:`, err.message);
268
+ }
269
+ }
270
+ const evidence = buildVerifyEvidence(result, v, deps, recordedCommitShas);
271
+ // COMPLETENESS: does the resolved range cover the delivery's recorded
272
+ // commits? A non-empty but truncated bundle is HALF-BLIND -- the gate must
273
+ // not vouch for a verdict rendered against only part of the work. When the
274
+ // record itself sourced the range this is complete by construction; the
275
+ // check bites only when attribution fell back to topology / a searched
276
+ // merge and that under-covers the recorded truth.
277
+ const coverage = assessRecordedCoverage(v, deps, recordedCommitShas);
310
278
  let restatements = [];
311
279
  let shortfalls = [];
312
280
  let realityTreeId;
@@ -319,7 +287,7 @@ export async function runVerificationForDelivery(v, deps) {
319
287
  let evidenceUnavailable = false;
320
288
  if (deps.authorTargetRestatements) {
321
289
  try {
322
- const reconciled = await deps.authorTargetRestatements(v.injectionNodeId, v.focusId, evidence);
290
+ const reconciled = await deps.authorTargetRestatements(v.injectionNodeId, v.focusId, evidence, !coverage.complete);
323
291
  restatements = reconciled.restatements;
324
292
  shortfalls = reconciled.shortfalls;
325
293
  realityTreeId = reconciled.realityTreeId;
@@ -339,25 +307,42 @@ export async function runVerificationForDelivery(v, deps) {
339
307
  }
340
308
  }
341
309
  if (evidenceUnavailable) {
342
- // Instrument fault: the reconciliation had a declared DE to judge but no
343
- // evidence to judge it against, so it rendered no verdict. Hold the
344
- // delivery in `verify` under the evidence-unavailable guard (NOT
345
- // verify_failed -- no re-code iteration is consumed) and escalate on
346
- // first occurrence, naming the missing evidence. This bounds EVERY cause
347
- // of an empty bundle (broken diff range, merged branch, no attributable
348
- // work), so an instrument fault is never published as a shortfall.
310
+ // Instrument fault: the reconciliation had a declared DE to judge but
311
+ // could not vouch for the evidence handed to it -- EMPTY (nothing
312
+ // judgeable) or INCOMPLETE (half-blind: the range covered only part of
313
+ // the recorded commit set) -- so it rendered no verdict. It is NOT a
314
+ // shortfall (the gate is blind, not the work short) and -- per "A hold
315
+ // must name a human act" (2026-07-28) -- it is NOT an operator escalation
316
+ // either: "fix the diff range / confirm the merge" names no act only a
317
+ // human can perform. Route it into the EXISTING bounded verify_failed
318
+ // re-work cycle (below, via deps.requeueEvidenceUnavailableAsRework),
319
+ // demoting to 'failed' exactly as a shortfall does so the reconciler
320
+ // steps verify -> verify_failed and the iteration cap bounds it. Where the
321
+ // resolver CAN recover the diff (a real merge commit), this branch is
322
+ // never reached and a verdict is rendered instead.
349
323
  const commitsAhead = deps.resolveCommitsAhead ? deps.resolveCommitsAhead(v) : 0;
324
+ // HALF-BLIND (incomplete) vs fully blind (empty): when the resolved range
325
+ // covered only part of the recorded commit set, carry the coverage so the
326
+ // hold names the blind spot rather than reporting "no evidence".
327
+ const isIncomplete = !coverage.complete && coverage.recorded > 0;
350
328
  evidenceUnavailableHold = {
351
329
  missing: describeMissingJudgeEvidence(evidence),
352
330
  commitsAhead,
331
+ ...(isIncomplete ? { coverage: { recorded: coverage.recorded, covered: coverage.covered } } : {}),
353
332
  };
354
- result.outcome = 'pending';
355
- result.rationale = commitsAhead > 0
356
- ? `verify held (instrument fault): delivery branch is ${commitsAhead} commit(s) ahead of ` +
357
- `${deps.integrationBranch} but the resolved diff is empty -- broken diff measurement, ` +
358
- `not a shortfall (injection ${v.injectionNodeId} not flipped)`
359
- : `verify held (instrument fault): no diff/changed-files/inspection evidence to judge the ` +
360
- `work -- the gate is blind, not the work short (injection ${v.injectionNodeId} not flipped)`;
333
+ result.outcome = 'failed';
334
+ result.rationale = isIncomplete
335
+ ? `verify half-blind (instrument fault): resolved diff covers only ${coverage.covered}/` +
336
+ `${coverage.recorded} of the delivery's recorded commits -- the gate cannot vouch for a ` +
337
+ `verdict rendered against part of the work; re-entering bounded re-work ` +
338
+ `(injection ${v.injectionNodeId} not flipped)`
339
+ : commitsAhead > 0
340
+ ? `verify blind (instrument fault): delivery branch is ${commitsAhead} commit(s) ahead of ` +
341
+ `${deps.integrationBranch} but the resolved diff is empty -- broken diff measurement, ` +
342
+ `not a shortfall; re-entering bounded re-work (injection ${v.injectionNodeId} not flipped)`
343
+ : `verify blind (instrument fault): no diff/changed-files/inspection evidence to judge the ` +
344
+ `work -- the gate is blind, not the work short; re-entering bounded re-work ` +
345
+ `(injection ${v.injectionNodeId} not flipped)`;
361
346
  log.warn(`[verification] ${result.rationale} (delivery ${v.deliveryId})`);
362
347
  }
363
348
  else if (shortfalls.length > 0) {
@@ -417,16 +402,18 @@ export async function runVerificationForDelivery(v, deps) {
417
402
  // exclusive: a shortfall / instrument-fault hold only demotes a PASSED
418
403
  // outcome, so a deterministic-failed run carries neither.
419
404
  //
420
- // Instrument-fault hold FIRST: the verify path was handed nothing to judge,
421
- // so it holds under the evidence-unavailable guard and files a
422
- // first-occurrence operator escalation -- it never routes to verify_failed and
423
- // never reports under the deterministic or shortfall guard.
424
- if (evidenceUnavailableHold && deps.deliverEvidenceUnavailableFeedback) {
405
+ // Instrument-fault re-work FIRST: the verify path was handed nothing to judge,
406
+ // so it re-enters the bounded verify_failed re-work cycle (carrying the
407
+ // instrument-fault context in gate_state under the evidence-unavailable guard)
408
+ // and files NO escalation -- an empty bundle names no human-only act, so it
409
+ // never reaches a human inbox. Distinct guard from the deterministic/shortfall
410
+ // holds; the iteration cap (verify_gate_unclearable) is the sole residue.
411
+ if (evidenceUnavailableHold && deps.requeueEvidenceUnavailableAsRework) {
425
412
  try {
426
- await deps.deliverEvidenceUnavailableFeedback(v, evidenceUnavailableHold);
413
+ await deps.requeueEvidenceUnavailableAsRework(v, evidenceUnavailableHold);
427
414
  }
428
415
  catch (err) {
429
- log.warn(`[verification] evidence-unavailable feedback failed for delivery ${v.deliveryId}:`, err.message);
416
+ log.warn(`[verification] evidence-unavailable re-work failed for delivery ${v.deliveryId}:`, err.message);
430
417
  }
431
418
  }
432
419
  else if (shortfallHold.length > 0 && deps.deliverShortfallFeedback) {
@@ -1 +1 @@
1
- {"version":3,"file":"verification-engine.js","sourceRoot":"","sources":["../src/verification-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verification-engine.js","sourceRoot":"","sources":["../src/verification-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,wBAAwB,EAAuB,MAAM,iCAAiC,CAAC;AAChG,OAAO,EAAE,wBAAwB,EAAgC,MAAM,iCAAiC,CAAC;AACzG,OAAO,EACL,uBAAuB,EACvB,iCAAiC,EACjC,qBAAqB,EACrB,wBAAwB,GAIzB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EACL,wBAAwB,IAAI,+BAA+B,GAG5D,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,IAAI,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAGnF,OAAO,EAAE,0BAA0B,IAAI,iCAAiC,EAAE,MAAM,0BAA0B,CAAC;AAC3G,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,0BAA0B,EAC1B,gCAAgC,EAChC,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,kCAAkC,EAAE,wBAAwB,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAC;AAC9I,OAAO,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE1H,uEAAuE;AACvE,kEAAkE;AAClE,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,gCAAgC,EAChC,qBAAqB,EACrB,qBAAqB,EACrB,kCAAkC,EAClC,6BAA6B,EAC7B,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,yBAAyB,IAAI,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAC3G,OAAO,EACL,eAAe,IAAI,sBAAsB,GAE1C,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,mCAAmC,EACnC,8BAA8B,EAC9B,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;AAGrD,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,OAAO;QACL,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,uGAAuG;KACnH,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,IAAsB,EACtB,CAAsB;IAEtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;YACL,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,iDAAiD;SAC7D,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,OAAO,GACX,UAAU,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ;QAC1C,CAAC,CAAC,UAAU,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ;YAC5C,CAAC,CAAC,SAAS,CAAC;IACd,OAAO;QACL,OAAO;QACP,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,UAAU;KACX,CAAC;AACJ,CAAC;AAcD,KAAK,UAAU,wBAAwB,CAAC,OAAmC;IACzE,MAAM,OAAO,CAAC,2BAA2B,EAAE;QACzC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM;QAClC,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI;QACtC,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ;QAC3C,kBAAkB,EAAE,OAAO,CAAC,WAAW,CAAC,mBAAmB;KAC5D,CAAC,CAAC;AACL,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,MAAoB,EAAoB,EAAE;IAC7D,MAAM,UAAU,GAAG,CAAC,SAAwB,EAAU,EAAE;QACtD,IAAI,CAAC,SAAS;YAAE,OAAO,MAAM,CAAC,QAAQ,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QAC9D,IAAI,CAAC,OAAO;YAAE,OAAO,MAAM,CAAC,QAAQ,CAAC;QACrC,OAAO,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC;IACpD,CAAC,CAAC;IACF,MAAM,sBAAsB,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;IACvE,OAAO;QACL,uBAAuB;QACvB,aAAa,EAAE,iCAAiC;QAChD,eAAe,EAAE,qBAAqB;QACtC,wBAAwB,EAAE,CAAC,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,CACnF,+BAA+B,CAAC,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,kBAAkB,CAAC;QAC7F,cAAc,EAAE,qBAAqB;QACrC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,iBAAiB,EAAE,wBAAwB;QAC3C,eAAe,EAAE,wBAAwB;QACzC,gBAAgB,EAAE,wBAAwB;QAC1C,eAAe,EAAE,sBAAsB;QACvC,yBAAyB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,gCAAgC,CAAC,CAAC,EAAE;YACpE,OAAO;YACP,UAAU;YACV,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;SAC5C,CAAC;QACF,UAAU;QACV,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;QAC3C,mBAAmB,EAAE,mCAAmC,EAAE;QAC1D,0BAA0B,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,iCAAiC,CAAC,CAAC,CAAC;QACvE,gBAAgB;QAChB,kBAAkB;QAClB,sBAAsB,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CACpC,kCAAkC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;QAC5F,wBAAwB,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,CAC1C,wBAAwB,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;QACtF,kCAAkC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAC/C,kCAAkC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;QAC3F,sBAAsB;QACtB,mBAAmB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC;QAChG,yBAAyB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YACrC,0EAA0E;YAC1E,4EAA4E;YAC5E,4EAA4E;YAC5E,MAAM,GAAG,GAAG,6BAA6B,CAAC,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO;gBAAE,OAAO,EAAE,CAAC;YAClC,qEAAqE;YACrE,0EAA0E;YAC1E,yEAAyE;YACzE,yEAAyE;YACzE,8EAA8E;YAC9E,MAAM,KAAK,GAAG,MAAM,6BAA6B,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAClE,OAAO,uBAAuB,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;QACjF,CAAC;QACD,iBAAiB,EAAE,6BAA6B,CAAC,MAAM,CAAC;KACzD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,GAA4G;IAC1H,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAC/C,CAAC,CAAC,kBAAkB,EACpB,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC3E,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CACtD;IACD,UAAU,EAAE,GAAG,EAAE,CAAC,qBAAqB,EAAE;IACzC,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC;CAC7D,CAAC;AAEF;;;;;;GAMG;AACH,OAAO,EACL,sBAAsB,EACtB,yBAAyB,GAE1B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,sBAAsB,EACtB,yBAAyB,IAAI,6BAA6B,GAE3D,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAExE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,CAAsB,EACtB,IAAsB;IAEtB,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,EAAE,GAAG,cAAc,EAAwD,CAAC;IAE3F,0EAA0E;IAC1E,8EAA8E;IAC9E,4EAA4E;IAC5E,wEAAwE;IACxE,iFAAiF;IACjF,IAAI,CAAC,CAAC,kBAAkB,KAAK,eAAe,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACtG,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAC/D,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;gBAClE,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;gBAC5C,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;gBAC5C,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;gBACpC,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;gBACxC,IAAI,UAAU,CAAC,GAAG;oBAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CACN,2DAA2D,CAAC,CAAC,UAAU,GAAG,EACzE,GAAa,CAAC,OAAO,CACvB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,0EAA0E;IAC1E,4EAA4E;IAC5E,2BAA2B;IAC3B,IAAI,aAAa,GAAsB,EAAE,CAAC;IAE1C,6EAA6E;IAC7E,4EAA4E;IAC5E,0EAA0E;IAC1E,kDAAkD;IAClD,IAAI,uBAAuB,GAAqD,IAAI,CAAC;IAErF,wEAAwE;IACxE,qDAAqD;IACrD,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;QACrD,oEAAoE;QACpE,6DAA6D;QAC7D,qEAAqE;QACrE,wEAAwE;QACxE,IAAI,kBAAkB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,8BAA8B,CAC/C,CAAC,CAAC,eAAe,EACjB,IAAI,CAAC,mBAAmB,CACzB,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,kBAAkB,GAAG,KAAK,CAAC;gBAC3B,MAAM,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACzF,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC;gBAC1B,MAAM,CAAC,SAAS;oBACd,uCAAuC,IAAI,CAAC,MAAM,GAAG;wBACrD,YAAY,IAAI,CAAC,SAAS,aAAa,CAAC;YAC5C,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CACN,8DAA8D,CAAC,CAAC,eAAe,GAAG,EACjF,GAAa,CAAC,OAAO,CACvB,CAAC;YACF,+DAA+D;YAC/D,gEAAgE;YAChE,oEAAoE;QACtE,CAAC;QAED,IAAI,kBAAkB,EAAE,CAAC;YACvB,yEAAyE;YACzE,2EAA2E;YAC3E,6EAA6E;YAC7E,wDAAwD;YACxD,EAAE;YACF,4EAA4E;YAC5E,sEAAsE;YACtE,wEAAwE;YACxE,0CAA0C;YAC1C,0EAA0E;YAC1E,sEAAsE;YACtE,yDAAyD;YACzD,IAAI,kBAAkB,GAAa,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC;gBACnC,IAAI,CAAC;oBACH,kBAAkB,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;gBAC/D,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CAAC,KAAK,CACP,wDAAwD,CAAC,CAAC,UAAU,GAAG,EACtE,GAAa,CAAC,OAAO,CACvB,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;YAE1E,sEAAsE;YACtE,2EAA2E;YAC3E,2EAA2E;YAC3E,wEAAwE;YACxE,uEAAuE;YACvE,kDAAkD;YAClD,MAAM,QAAQ,GAAqB,sBAAsB,CAAC,CAAC,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;YAEvF,IAAI,YAAY,GAAwB,EAAE,CAAC;YAC3C,IAAI,UAAU,GAAsB,EAAE,CAAC;YACvC,IAAI,aAAiC,CAAC;YACtC,4EAA4E;YAC5E,0EAA0E;YAC1E,4EAA4E;YAC5E,qEAAqE;YACrE,2EAA2E;YAC3E,8BAA8B;YAC9B,IAAI,mBAAmB,GAAG,KAAK,CAAC;YAChC,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAClC,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,wBAAwB,CACpD,CAAC,CAAC,eAAe,EACjB,CAAC,CAAC,OAAO,EACT,QAAQ,EACR,CAAC,QAAQ,CAAC,QAAQ,CACnB,CAAC;oBACF,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;oBACvC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;oBACnC,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;oBACzC,mBAAmB,GAAG,UAAU,CAAC,mBAAmB,KAAK,IAAI,CAAC;gBAChE,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,wEAAwE;oBACxE,qEAAqE;oBACrE,oDAAoD;oBACpD,GAAG,CAAC,IAAI,CACN,wDAAwD,CAAC,CAAC,eAAe,GAAG,EAC3E,GAAa,CAAC,OAAO,CACvB,CAAC;oBACF,UAAU,GAAG,CAAC;4BACZ,MAAM,EAAE,CAAC,CAAC,eAAe;4BACzB,iBAAiB,EAAE,oCAAoC;4BACvD,iBAAiB,EAAE,yBAAyB;4BAC5C,MAAM,EAAE,0BAA2B,GAAa,CAAC,OAAO,EAAE;yBAC3D,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,IAAI,mBAAmB,EAAE,CAAC;gBACxB,sEAAsE;gBACtE,kEAAkE;gBAClE,uEAAuE;gBACvE,qEAAqE;gBACrE,uEAAuE;gBACvE,0EAA0E;gBAC1E,uEAAuE;gBACvE,sEAAsE;gBACtE,sEAAsE;gBACtE,qEAAqE;gBACrE,2EAA2E;gBAC3E,sEAAsE;gBACtE,mDAAmD;gBACnD,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChF,0EAA0E;gBAC1E,0EAA0E;gBAC1E,iEAAiE;gBACjE,MAAM,YAAY,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACjE,uBAAuB,GAAG;oBACxB,OAAO,EAAE,4BAA4B,CAAC,QAAQ,CAAC;oBAC/C,YAAY;oBACZ,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAClG,CAAC;gBACF,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC;gBAC1B,MAAM,CAAC,SAAS,GAAG,YAAY;oBAC7B,CAAC,CAAC,mEAAmE,QAAQ,CAAC,OAAO,GAAG;wBACtF,GAAG,QAAQ,CAAC,QAAQ,qEAAqE;wBACzF,yEAAyE;wBACzE,cAAc,CAAC,CAAC,eAAe,eAAe;oBAChD,CAAC,CAAC,YAAY,GAAG,CAAC;wBAClB,CAAC,CAAC,uDAAuD,YAAY,sBAAsB;4BACzF,GAAG,IAAI,CAAC,iBAAiB,8DAA8D;4BACvF,2DAA2D,CAAC,CAAC,eAAe,eAAe;wBAC7F,CAAC,CAAC,0FAA0F;4BAC1F,6EAA6E;4BAC7E,cAAc,CAAC,CAAC,eAAe,eAAe,CAAC;gBACnD,GAAG,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,SAAS,cAAc,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;YAC5E,CAAC;iBAAM,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,uEAAuE;gBACvE,uEAAuE;gBACvE,8EAA8E;gBAC9E,uEAAuE;gBACvE,oEAAoE;gBACpE,kEAAkE;gBAClE,aAAa,GAAG,UAAU,CAAC;gBAC3B,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC;gBAC1B,MAAM,CAAC,SAAS;oBACd,+BAA+B,UAAU,CAAC,MAAM,oCAAoC;wBACpF,aAAa,CAAC,CAAC,eAAe,4CAA4C,CAAC;YAC/E,CAAC;iBAAM,CAAC;gBACN,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;oBAC5D,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;oBAC3B,MAAM,CAAC,SAAS,GAAG,8BAA8B,CAAC,CAAC,eAAe,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC;gBAClG,CAAC;gBAED,oEAAoE;gBACpE,wEAAwE;gBACxE,oEAAoE;gBACpE,kEAAkE;gBAClE,mEAAmE;gBACnE,qEAAqE;gBACrE,oEAAoE;gBACpE,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,kBAAkB,GAAoB,YAAY;yBACrD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,uBAAuB,CAAC;yBAC3D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACX,MAAM,EAAE,CAAC,CAAC,MAAM;wBAChB,cAAc,EAAE,uBAAuB;wBACvC,SAAS,EAAE,CAAC,CAAC,SAAS;wBACtB,aAAa,EAAE,CAAC,CAAC,aAAa;wBAC9B,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC9E,CAAC,CAAC,CAAC;oBACN,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAClC,IAAI,CAAC;4BACH,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,EAAE,kBAAkB,EAAE,aAAa,CAAC,CAAC;wBACnF,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,GAAG,CAAC,IAAI,CACN,+CAA+C,CAAC,CAAC,eAAe,GAAG,EAClE,GAAa,CAAC,OAAO,CACvB,CAAC;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAEvD,sEAAsE;IACtE,uEAAuE;IACvE,0DAA0D;IAC1D,EAAE;IACF,+EAA+E;IAC/E,wEAAwE;IACxE,+EAA+E;IAC/E,4EAA4E;IAC5E,+EAA+E;IAC/E,0EAA0E;IAC1E,IAAI,uBAAuB,IAAI,IAAI,CAAC,kCAAkC,EAAE,CAAC;QACvE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,kCAAkC,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC;QAC5E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CACN,mEAAmE,CAAC,CAAC,UAAU,GAAG,EACjF,GAAa,CAAC,OAAO,CACvB,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACrE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CACN,yDAAyD,CAAC,CAAC,UAAU,GAAG,EACvE,GAAa,CAAC,OAAO,CACvB,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,kBAAkB,KAAK,eAAe,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAClH,2EAA2E;QAC3E,qEAAqE;QACrE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CACN,uDAAuD,CAAC,CAAC,UAAU,GAAG,EACrE,GAAa,CAAC,OAAO,CACvB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,wDAAwD;IACxD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACrC,IAAI,UAAU,IAAI,UAAU,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,iBAAiB,EAAE,CAAC;YAC/C,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,iBAAiB,CAAC;oBAC3B,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,SAAS,EAAE,CAAC,CAAC,SAAS;oBACtB,eAAe,EAAE,CAAC,CAAC,eAAe;oBAClC,WAAW,EAAE,GAAG;iBACjB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,CACN,0DAA0D,CAAC,CAAC,UAAU,GAAG,EACxE,GAAa,CAAC,OAAO,CACvB,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAoB,EACpB,IAAgC;IAEhC,MAAM,MAAM,GAAqB,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;IACrE,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAE9E,4EAA4E;IAC5E,4EAA4E;IAC5E,uEAAuE;IACvE,sEAAsE;IACtE,6EAA6E;IAC7E,+EAA+E;IAC/E,MAAM,MAAM,GAAG,gCAAgC,CAAC,MAAM,EAAE,MAAM,CAAC,0BAA0B,CAAC,CAAC;IAC3F,sEAAsE;IACtE,2EAA2E;IAC3E,6EAA6E;IAC7E,+EAA+E;IAC/E,0CAA0C;IAC1C,qBAAqB,CAAC,QAAQ,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnE,KAAK,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,MAAM,EAAE,CAAC;QAC1D,IAAI,OAA8B,CAAC;QACnC,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CACN,2CAA2C,OAAO,CAAC,EAAE,GAAG,EACvD,GAAa,CAAC,OAAO,CACvB,CAAC;YACF,SAAS;QACX,CAAC;QAED,sEAAsE;QACtE,yEAAyE;QACzE,0EAA0E;QAC1E,uEAAuE;QACvE,mEAAmE;QACnE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAC9D,IAAI,SAAS,GAA0B,EAAE,CAAC;QAC1C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,SAAS,GAAG,MAAM,6BAA6B,CAAC,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YAChG,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,CACN,qDAAqD,OAAO,CAAC,EAAE,GAAG,EACjE,GAAa,CAAC,OAAO,CACvB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;YAC3C,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;YACpB,yEAAyE;YACzE,8DAA8D;YAC9D,IAAI,CAAC,CAAC,mBAAmB,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrE,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACjC,CAAC;YACD,2DAA2D;YAC3D,MAAM,qBAAqB,CAAC,OAAO,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,MAAM,0BAA0B,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBACtD,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,CACN,2CAA2C,CAAC,CAAC,UAAU,GAAG,EACzD,GAAa,CAAC,OAAO,CACvB,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,qBAAqB,CAAC,OAAO,EAAE,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,yEAAyE;IACzE,+EAA+E;IAC/E,qDAAqD;IACrD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,CACN,wCAAwC,KAAK,CAAC,cAAc,cAAc,KAAK,CAAC,SAAS,GAAG;gBAC5F,WAAW,KAAK,CAAC,iBAAiB,iBAAiB,KAAK,CAAC,sBAAsB,EAAE,CAClF,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,8BAA8B,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Verify-gate EVIDENCE resolution.
3
+ *
4
+ * Split out of verification-engine.ts, which owns strategy dispatch and the
5
+ * per-delivery run. This module answers one question: what can the gate
6
+ * actually SEE for a delivery -- the diff range that contains its work, the
7
+ * structured change signals, and which judgeable slots came back empty.
8
+ *
9
+ * That last part is load-bearing: an empty evidence bundle must render as an
10
+ * instrument fault (the gate is blind), never as a shortfall verdict against
11
+ * the work. describeMissingJudgeEvidence names the FAULT for the hold's
12
+ * gate_state; see the "gate must not report its own BLINDNESS" invariant in
13
+ * packages/daemon/CLAUDE.md.
14
+ *
15
+ * Deps are typed STRUCTURALLY (VerifyEvidenceDeps) rather than importing
16
+ * VerificationDeps from verification-engine.ts -- that import would close a
17
+ * cycle, and import-x/no-cycle is gated at "error". VerificationDeps satisfies
18
+ * this interface structurally, so call sites pass it unchanged.
19
+ */
20
+ import type { StrategyResult } from './verification-deterministic.js';
21
+ import type { PendingVerification } from './queries/verification.js';
22
+ import type { VerifyEvidence } from './verify-restatement.js';
23
+ import type { InspectionResult } from './ai-inspection-runner.js';
24
+ /**
25
+ * The slice of VerificationDeps this module needs. Structural by design (see
26
+ * the module header): VerificationDeps is assignable to it without importing.
27
+ */
28
+ export interface VerifyEvidenceDeps {
29
+ resolveCwd: (productId: string | null) => string;
30
+ resolveVerificationCwd?: (v: PendingVerification) => string;
31
+ integrationBranch: string;
32
+ }
33
+ /**
34
+ * Resolve the cwd the delivery's diff must be read in: the FOCUS WORKTREE
35
+ * (HEAD of the focus branch), the SAME cwd the deterministic strategy runs in.
36
+ * NOT the product repo path -- the product repo's HEAD is the integration
37
+ * branch, so `git diff base...HEAD` there is empty even when the focus branch
38
+ * has real commits. Reading the diff in the wrong cwd is the resolution bug
39
+ * that manufactures a false-negative shortfall (2026-07-23 incident).
40
+ */
41
+ export declare function resolveDiffCwd(v: PendingVerification, deps: VerifyEvidenceDeps): string;
42
+ /**
43
+ * Build the cited-evidence bundle the achieved-DE authoring consumes. Sourced
44
+ * from the verification verdict (NOT the UDE problem text):
45
+ * - ai_inspection: the runner rationale + the delivery diff it inspected.
46
+ * - deterministic: the check exit code + stdout/stderr tails, plus the diff
47
+ * against integration (fetched best-effort; an empty diff just yields less
48
+ * evidence, it never blocks).
49
+ *
50
+ * The raw diff is accompanied by STRUCTURED signals (changed-files list + diff
51
+ * stat) resolved in the same focus-worktree cwd, so delivered behavior is
52
+ * legible to the judge without parsing the full diff.
53
+ */
54
+ /**
55
+ * The delivery's recorded merge commit sha, but ONLY when the recorded git
56
+ * state says the branch has actually merged back (into integration or main).
57
+ * merge_commit_sha is only ever populated by a real merge, but gating on the
58
+ * merged state keeps the evidence resolver from trusting a sha the row carries
59
+ * in some other state. Returns undefined when there is nothing to trust, so the
60
+ * resolver falls through to its live branch-vs-base / searched-merge sources.
61
+ */
62
+ export declare const MERGED_BACK_GIT_STATES: Set<string>;
63
+ /** Exported for testing: the recorded-git-state branch of the verify evidence resolver. */
64
+ export declare function recordedMergeShaForVerify(v: Pick<PendingVerification, 'gitState' | 'mergeCommitSha'>): string | null | undefined;
65
+ export declare function buildVerifyEvidence(result: StrategyResult & {
66
+ inspection?: InspectionResult;
67
+ }, v: PendingVerification, deps: VerifyEvidenceDeps, recordedCommitShas?: string[]): VerifyEvidence;
68
+ /**
69
+ * Name the judgeable evidence slots that were empty, for the instrument-fault
70
+ * hold's gate_state + escalation. Describes the FAULT (what the gate could not
71
+ * see), never the work.
72
+ */
73
+ export declare function describeMissingJudgeEvidence(ev: VerifyEvidence): string[];
74
+ /**
75
+ * Coverage verdict: does the resolved diff range cover the delivery's RECORDED
76
+ * commit set? A non-empty bundle that omits recorded commits is HALF-BLIND --
77
+ * as unjudgeable as an empty one, because a verdict rendered on it judges the
78
+ * work against only part of itself. This is the COMPLETENESS extension of the
79
+ * empty-bundle invariant.
80
+ */
81
+ export interface EvidenceCoverage {
82
+ /** True when there is nothing to measure against, or the range covers every recorded commit. */
83
+ complete: boolean;
84
+ /** How many commits the durable record names. */
85
+ recorded: number;
86
+ /** How many recorded commits the resolved range actually covered. */
87
+ covered: number;
88
+ /** The recorded shas NOT present in the resolved range (the blind spot). */
89
+ uncovered: string[];
90
+ }
91
+ /**
92
+ * Assess whether the range the verify evidence was resolved from COVERS the
93
+ * delivery's recorded commit set (focus_merges.commit_shas).
94
+ *
95
+ * complete:true when either (a) there is no recorded set to measure against
96
+ * (we never assert an incompleteness we cannot see -- the empty-bundle path,
97
+ * not this one, owns that case), or (b) every recorded sha is reachable in the
98
+ * resolved range. Otherwise complete:false, naming the uncovered shas.
99
+ *
100
+ * Resolves the SAME range buildVerifyEvidence uses (record-preferred), so when
101
+ * the record itself sourced the range this is complete by construction; the
102
+ * check bites only when attribution fell back to topology / a searched merge
103
+ * and that fallback under-covers the recorded truth.
104
+ */
105
+ export declare function assessRecordedCoverage(v: PendingVerification, deps: VerifyEvidenceDeps, recordedCommitShas: string[]): EvidenceCoverage;
106
+ //# sourceMappingURL=verification-evidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification-evidence.d.ts","sourceRoot":"","sources":["../src/verification-evidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AASH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAKlE;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,CAAC;IACjD,sBAAsB,CAAC,EAAE,CAAC,CAAC,EAAE,mBAAmB,KAAK,MAAM,CAAC;IAC5D,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAEvF;AAED;;;;;;;;;;;GAWG;AACH;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,aAAuD,CAAC;AAC3F,2FAA2F;AAC3F,wBAAgB,yBAAyB,CACvC,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,GAAG,gBAAgB,CAAC,GAC1D,MAAM,GAAG,IAAI,GAAG,SAAS,CAG3B;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,cAAc,GAAG;IAAE,UAAU,CAAC,EAAE,gBAAgB,CAAA;CAAE,EAC1D,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,kBAAkB,EACxB,kBAAkB,GAAE,MAAM,EAAO,GAChC,cAAc,CA2ChB;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,EAAE,CAMzE;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gGAAgG;IAChG,QAAQ,EAAE,OAAO,CAAC;IAClB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,kBAAkB,EACxB,kBAAkB,EAAE,MAAM,EAAE,GAC3B,gBAAgB,CA8BlB"}
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Verify-gate EVIDENCE resolution.
3
+ *
4
+ * Split out of verification-engine.ts, which owns strategy dispatch and the
5
+ * per-delivery run. This module answers one question: what can the gate
6
+ * actually SEE for a delivery -- the diff range that contains its work, the
7
+ * structured change signals, and which judgeable slots came back empty.
8
+ *
9
+ * That last part is load-bearing: an empty evidence bundle must render as an
10
+ * instrument fault (the gate is blind), never as a shortfall verdict against
11
+ * the work. describeMissingJudgeEvidence names the FAULT for the hold's
12
+ * gate_state; see the "gate must not report its own BLINDNESS" invariant in
13
+ * packages/daemon/CLAUDE.md.
14
+ *
15
+ * Deps are typed STRUCTURALLY (VerifyEvidenceDeps) rather than importing
16
+ * VerificationDeps from verification-engine.ts -- that import would close a
17
+ * cycle, and import-x/no-cycle is gated at "error". VerificationDeps satisfies
18
+ * this interface structurally, so call sites pass it unchanged.
19
+ */
20
+ import { resolveDeliveryDiffSource, getDeliveryDiffFromSource, getDeliveryChangedFilesFromSource, getDeliveryDiffStatFromSource, listSourceCommits, } from './assembly-resolvers.js';
21
+ import { createLogger } from './log.js';
22
+ const log = createLogger({ module: 'verification' });
23
+ /**
24
+ * Resolve the cwd the delivery's diff must be read in: the FOCUS WORKTREE
25
+ * (HEAD of the focus branch), the SAME cwd the deterministic strategy runs in.
26
+ * NOT the product repo path -- the product repo's HEAD is the integration
27
+ * branch, so `git diff base...HEAD` there is empty even when the focus branch
28
+ * has real commits. Reading the diff in the wrong cwd is the resolution bug
29
+ * that manufactures a false-negative shortfall (2026-07-23 incident).
30
+ */
31
+ export function resolveDiffCwd(v, deps) {
32
+ return (deps.resolveVerificationCwd ?? ((pv) => deps.resolveCwd(pv.productId)))(v);
33
+ }
34
+ /**
35
+ * Build the cited-evidence bundle the achieved-DE authoring consumes. Sourced
36
+ * from the verification verdict (NOT the UDE problem text):
37
+ * - ai_inspection: the runner rationale + the delivery diff it inspected.
38
+ * - deterministic: the check exit code + stdout/stderr tails, plus the diff
39
+ * against integration (fetched best-effort; an empty diff just yields less
40
+ * evidence, it never blocks).
41
+ *
42
+ * The raw diff is accompanied by STRUCTURED signals (changed-files list + diff
43
+ * stat) resolved in the same focus-worktree cwd, so delivered behavior is
44
+ * legible to the judge without parsing the full diff.
45
+ */
46
+ /**
47
+ * The delivery's recorded merge commit sha, but ONLY when the recorded git
48
+ * state says the branch has actually merged back (into integration or main).
49
+ * merge_commit_sha is only ever populated by a real merge, but gating on the
50
+ * merged state keeps the evidence resolver from trusting a sha the row carries
51
+ * in some other state. Returns undefined when there is nothing to trust, so the
52
+ * resolver falls through to its live branch-vs-base / searched-merge sources.
53
+ */
54
+ export const MERGED_BACK_GIT_STATES = new Set(['merged_to_integration', 'merged_to_main']);
55
+ /** Exported for testing: the recorded-git-state branch of the verify evidence resolver. */
56
+ export function recordedMergeShaForVerify(v) {
57
+ if (!v.gitState || !MERGED_BACK_GIT_STATES.has(v.gitState))
58
+ return undefined;
59
+ return v.mergeCommitSha;
60
+ }
61
+ export function buildVerifyEvidence(result, v, deps, recordedCommitShas = []) {
62
+ const cwd = resolveDiffCwd(v, deps);
63
+ // Resolve the range that actually contains the delivery's work, sourced from
64
+ // the DURABLE record first: the delivery's RECORDED constituent commit set
65
+ // (focus_merges.commit_shas -- immune to fast-forward + rebase), then its
66
+ // recorded >=2-parent merge commit, then the live branch-vs-base range while
67
+ // ahead, then a searched merge commit, else null. A null range (no
68
+ // attributable commits anywhere the daemon can reach) yields an empty diff,
69
+ // which the instrument-fault path then holds -- it is never rendered as a
70
+ // shortfall.
71
+ const source = resolveDeliveryDiffSource(cwd, deps.integrationBranch, recordedMergeShaForVerify(v), recordedCommitShas);
72
+ let diff = result.deliveryDiff ?? '';
73
+ if (diff === '') {
74
+ try {
75
+ diff = source ? getDeliveryDiffFromSource(cwd, source) : '';
76
+ }
77
+ catch (err) {
78
+ // best-effort: no diff is fine, the other evidence slots still carry signal
79
+ log.debug('best-effort: no diff is fine, the other evidence slots still carry signal', { error: String(err?.message ?? err) });
80
+ }
81
+ }
82
+ let changedFiles = [];
83
+ let diffStat = '';
84
+ try {
85
+ changedFiles = source ? getDeliveryChangedFilesFromSource(cwd, source) : [];
86
+ diffStat = source ? getDeliveryDiffStatFromSource(cwd, source) : '';
87
+ }
88
+ catch (err) {
89
+ log.debug('best-effort: structured diff signals unavailable', { error: String(err?.message ?? err) });
90
+ }
91
+ return {
92
+ diff: diff || undefined,
93
+ changedFiles: changedFiles.length > 0 ? changedFiles : undefined,
94
+ diffStat: diffStat.trim() !== '' ? diffStat : undefined,
95
+ testStdout: result.stdoutTail,
96
+ testStderr: result.stderrTail,
97
+ exitCode: result.exitCode,
98
+ inspectionRationale: result.inspection?.rationale,
99
+ verdictRationale: result.rationale,
100
+ };
101
+ }
102
+ /**
103
+ * Name the judgeable evidence slots that were empty, for the instrument-fault
104
+ * hold's gate_state + escalation. Describes the FAULT (what the gate could not
105
+ * see), never the work.
106
+ */
107
+ export function describeMissingJudgeEvidence(ev) {
108
+ const missing = [];
109
+ if (!ev.diff || ev.diff.trim() === '')
110
+ missing.push('diff');
111
+ if (!ev.changedFiles || ev.changedFiles.length === 0)
112
+ missing.push('changed files');
113
+ if (!ev.inspectionRationale || ev.inspectionRationale.trim() === '')
114
+ missing.push('inspection finding');
115
+ return missing;
116
+ }
117
+ /**
118
+ * Assess whether the range the verify evidence was resolved from COVERS the
119
+ * delivery's recorded commit set (focus_merges.commit_shas).
120
+ *
121
+ * complete:true when either (a) there is no recorded set to measure against
122
+ * (we never assert an incompleteness we cannot see -- the empty-bundle path,
123
+ * not this one, owns that case), or (b) every recorded sha is reachable in the
124
+ * resolved range. Otherwise complete:false, naming the uncovered shas.
125
+ *
126
+ * Resolves the SAME range buildVerifyEvidence uses (record-preferred), so when
127
+ * the record itself sourced the range this is complete by construction; the
128
+ * check bites only when attribution fell back to topology / a searched merge
129
+ * and that fallback under-covers the recorded truth.
130
+ */
131
+ export function assessRecordedCoverage(v, deps, recordedCommitShas) {
132
+ const recorded = recordedCommitShas.map((s) => s.trim()).filter((s) => s !== '');
133
+ if (recorded.length === 0) {
134
+ return { complete: true, recorded: 0, covered: 0, uncovered: [] };
135
+ }
136
+ const cwd = resolveDiffCwd(v, deps);
137
+ const source = resolveDeliveryDiffSource(cwd, deps.integrationBranch, recordedMergeShaForVerify(v), recorded);
138
+ if (!source) {
139
+ // No source at all: the empty-bundle path handles the verdict, but from a
140
+ // coverage standpoint every recorded commit is uncovered.
141
+ return { complete: false, recorded: recorded.length, covered: 0, uncovered: recorded };
142
+ }
143
+ let inRange;
144
+ try {
145
+ inRange = new Set(listSourceCommits(cwd, source));
146
+ }
147
+ catch {
148
+ inRange = new Set();
149
+ }
150
+ const uncovered = recorded.filter((sha) => !inRange.has(sha));
151
+ return {
152
+ complete: uncovered.length === 0,
153
+ recorded: recorded.length,
154
+ covered: recorded.length - uncovered.length,
155
+ uncovered,
156
+ };
157
+ }
158
+ //# sourceMappingURL=verification-evidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification-evidence.js","sourceRoot":"","sources":["../src/verification-evidence.ts"],"names":[],"mappings":"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"}