@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.
- package/build-info.json +4 -3
- package/dist/ai-inspection-context.d.ts.map +1 -1
- package/dist/ai-inspection-context.js +4 -2
- package/dist/ai-inspection-context.js.map +1 -1
- package/dist/audit-phase.d.ts +12 -18
- package/dist/audit-phase.d.ts.map +1 -1
- package/dist/audit-phase.js +17 -60
- package/dist/audit-phase.js.map +1 -1
- package/dist/audit-prompt.d.ts +44 -0
- package/dist/audit-prompt.d.ts.map +1 -0
- package/dist/audit-prompt.js +198 -0
- package/dist/audit-prompt.js.map +1 -0
- package/dist/ci-sensor-loop.d.ts +38 -1
- package/dist/ci-sensor-loop.d.ts.map +1 -1
- package/dist/ci-sensor-loop.js +49 -5
- package/dist/ci-sensor-loop.js.map +1 -1
- package/dist/completion/completion-decision.d.ts +3 -29
- package/dist/completion/completion-decision.d.ts.map +1 -1
- package/dist/completion/completion-decision.js +3 -15
- package/dist/completion/completion-decision.js.map +1 -1
- package/dist/completion/event-phases.d.ts +0 -8
- package/dist/completion/event-phases.d.ts.map +1 -1
- package/dist/completion/event-phases.js +4 -52
- package/dist/completion/event-phases.js.map +1 -1
- package/dist/completion/event.d.ts +1 -11
- package/dist/completion/event.d.ts.map +1 -1
- package/dist/completion/event.js +1 -3
- package/dist/completion/event.js.map +1 -1
- package/dist/delivery-artifacts.d.ts.map +1 -1
- package/dist/delivery-artifacts.js +9 -8
- package/dist/delivery-artifacts.js.map +1 -1
- package/dist/delivery-reconciler.d.ts +3 -0
- package/dist/delivery-reconciler.d.ts.map +1 -1
- package/dist/delivery-reconciler.js +16 -0
- package/dist/delivery-reconciler.js.map +1 -1
- package/dist/focus-engine.d.ts.map +1 -1
- package/dist/focus-engine.js +12 -1
- package/dist/focus-engine.js.map +1 -1
- package/dist/focus-executor.d.ts.map +1 -1
- package/dist/focus-executor.js +4 -1
- package/dist/focus-executor.js.map +1 -1
- package/dist/focus-merge.d.ts.map +1 -1
- package/dist/focus-merge.js +37 -3
- package/dist/focus-merge.js.map +1 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.js +9 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.js.map +1 -1
- package/dist/listener-auto-advance.d.ts.map +1 -1
- package/dist/listener-auto-advance.js +58 -10
- package/dist/listener-auto-advance.js.map +1 -1
- package/dist/merge-back-loop.d.ts +8 -2
- package/dist/merge-back-loop.d.ts.map +1 -1
- package/dist/merge-back-loop.js +17 -11
- package/dist/merge-back-loop.js.map +1 -1
- package/dist/merge-failure-classify.d.ts +39 -0
- package/dist/merge-failure-classify.d.ts.map +1 -0
- package/dist/merge-failure-classify.js +58 -0
- package/dist/merge-failure-classify.js.map +1 -0
- package/dist/prompt-sections/execution-sections.d.ts +20 -14
- package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
- package/dist/prompt-sections/execution-sections.js +97 -141
- package/dist/prompt-sections/execution-sections.js.map +1 -1
- package/dist/prompt-sections/scoping-sections.d.ts +30 -0
- package/dist/prompt-sections/scoping-sections.d.ts.map +1 -0
- package/dist/prompt-sections/scoping-sections.js +187 -0
- package/dist/prompt-sections/scoping-sections.js.map +1 -0
- package/dist/prompt-sections/shared.d.ts +7 -0
- package/dist/prompt-sections/shared.d.ts.map +1 -1
- package/dist/prompt-sections/shared.js.map +1 -1
- package/dist/queries/agent-resolvable-promotion.d.ts +87 -0
- package/dist/queries/agent-resolvable-promotion.d.ts.map +1 -0
- package/dist/queries/agent-resolvable-promotion.js +152 -0
- package/dist/queries/agent-resolvable-promotion.js.map +1 -0
- package/dist/queries/cause-key.d.ts +64 -0
- package/dist/queries/cause-key.d.ts.map +1 -0
- package/dist/queries/cause-key.js +79 -0
- package/dist/queries/cause-key.js.map +1 -0
- package/dist/queries/deliveries.d.ts +20 -153
- package/dist/queries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries.js +26 -0
- package/dist/queries/deliveries.js.map +1 -1
- package/dist/queries/delivery-gate-state.d.ts +192 -0
- package/dist/queries/delivery-gate-state.d.ts.map +1 -0
- package/dist/queries/delivery-gate-state.js +23 -0
- package/dist/queries/delivery-gate-state.js.map +1 -0
- package/dist/queries/escalation-suppression.d.ts +89 -0
- package/dist/queries/escalation-suppression.d.ts.map +1 -0
- package/dist/queries/escalation-suppression.js +98 -0
- package/dist/queries/escalation-suppression.js.map +1 -0
- package/dist/queries/holds.d.ts +52 -59
- package/dist/queries/holds.d.ts.map +1 -1
- package/dist/queries/holds.js +60 -68
- package/dist/queries/holds.js.map +1 -1
- package/dist/queries/issues.d.ts +40 -2
- package/dist/queries/issues.d.ts.map +1 -1
- package/dist/queries/issues.js +55 -2
- package/dist/queries/issues.js.map +1 -1
- package/dist/queries/verification.d.ts +11 -0
- package/dist/queries/verification.d.ts.map +1 -1
- package/dist/queries/verification.js.map +1 -1
- package/dist/reality-pole.d.ts +5 -3
- package/dist/reality-pole.d.ts.map +1 -1
- package/dist/reality-pole.js +13 -4
- package/dist/reality-pole.js.map +1 -1
- package/dist/resolvers/git-diff-against-base.d.ts.map +1 -1
- package/dist/resolvers/git-diff-against-base.js +12 -5
- package/dist/resolvers/git-diff-against-base.js.map +1 -1
- package/dist/resolvers/index.d.ts +1 -1
- package/dist/resolvers/index.d.ts.map +1 -1
- package/dist/resolvers/index.js +1 -1
- package/dist/resolvers/index.js.map +1 -1
- package/dist/resolvers/shared/git-diff.d.ts +152 -10
- package/dist/resolvers/shared/git-diff.d.ts.map +1 -1
- package/dist/resolvers/shared/git-diff.js +292 -14
- package/dist/resolvers/shared/git-diff.js.map +1 -1
- package/dist/spawn/prompt-assembly.d.ts +3 -0
- package/dist/spawn/prompt-assembly.d.ts.map +1 -1
- package/dist/spawn/prompt-assembly.js +2 -1
- package/dist/spawn/prompt-assembly.js.map +1 -1
- package/dist/spawn/worktree-session.d.ts +2 -0
- package/dist/spawn/worktree-session.d.ts.map +1 -1
- package/dist/spawn/worktree-session.js +20 -1
- package/dist/spawn/worktree-session.js.map +1 -1
- package/dist/staleness-sensor.d.ts +24 -1
- package/dist/staleness-sensor.d.ts.map +1 -1
- package/dist/staleness-sensor.js +31 -4
- package/dist/staleness-sensor.js.map +1 -1
- package/dist/stall-detectors.d.ts +13 -9
- package/dist/stall-detectors.d.ts.map +1 -1
- package/dist/stall-detectors.js +14 -13
- package/dist/stall-detectors.js.map +1 -1
- package/dist/team-prompt-base.d.ts +1 -1
- package/dist/team-prompt-base.d.ts.map +1 -1
- package/dist/team-prompt-base.js +4 -2
- package/dist/team-prompt-base.js.map +1 -1
- package/dist/templates/claude-md.d.ts +1 -1
- package/dist/templates/claude-md.d.ts.map +1 -1
- package/dist/templates/claude-md.js +20 -0
- package/dist/templates/claude-md.js.map +1 -1
- package/dist/verification-default-on.d.ts.map +1 -1
- package/dist/verification-default-on.js +5 -0
- package/dist/verification-default-on.js.map +1 -1
- package/dist/verification-deps.d.ts +151 -0
- package/dist/verification-deps.d.ts.map +1 -0
- package/dist/verification-deps.js +19 -0
- package/dist/verification-deps.js.map +1 -0
- package/dist/verification-engine.d.ts +18 -112
- package/dist/verification-engine.d.ts.map +1 -1
- package/dist/verification-engine.js +90 -103
- package/dist/verification-engine.js.map +1 -1
- package/dist/verification-evidence.d.ts +106 -0
- package/dist/verification-evidence.d.ts.map +1 -0
- package/dist/verification-evidence.js +158 -0
- package/dist/verification-evidence.js.map +1 -0
- package/dist/verification-feedback.d.ts +31 -26
- package/dist/verification-feedback.d.ts.map +1 -1
- package/dist/verification-feedback.js +77 -76
- package/dist/verification-feedback.js.map +1 -1
- package/dist/verify-restatement.d.ts +12 -9
- package/dist/verify-restatement.d.ts.map +1 -1
- package/dist/verify-restatement.js +11 -9
- package/dist/verify-restatement.js.map +1 -1
- 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 {
|
|
32
|
-
import { resolveDefaultVerification as defaultResolveDefaultVerification
|
|
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,
|
|
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
|
|
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
|
-
|
|
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
|
-
*
|
|
147
|
-
*
|
|
148
|
-
*
|
|
149
|
-
*
|
|
150
|
-
*
|
|
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
|
-
|
|
154
|
-
|
|
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
|
-
|
|
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
|
|
343
|
-
//
|
|
344
|
-
//
|
|
345
|
-
//
|
|
346
|
-
//
|
|
347
|
-
//
|
|
348
|
-
//
|
|
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 = '
|
|
355
|
-
result.rationale =
|
|
356
|
-
? `verify
|
|
357
|
-
`${
|
|
358
|
-
`
|
|
359
|
-
|
|
360
|
-
|
|
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
|
|
421
|
-
// so it
|
|
422
|
-
//
|
|
423
|
-
//
|
|
424
|
-
|
|
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.
|
|
413
|
+
await deps.requeueEvidenceUnavailableAsRework(v, evidenceUnavailableHold);
|
|
427
414
|
}
|
|
428
415
|
catch (err) {
|
|
429
|
-
log.warn(`[verification] evidence-unavailable
|
|
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":"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"}
|
|
@@ -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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"}
|