@telora/daemon 0.20.78 → 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 (84) hide show
  1. package/build-info.json +2 -2
  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-prompt.d.ts.map +1 -1
  6. package/dist/audit-prompt.js +9 -5
  7. package/dist/audit-prompt.js.map +1 -1
  8. package/dist/completion/completion-decision.d.ts +3 -29
  9. package/dist/completion/completion-decision.d.ts.map +1 -1
  10. package/dist/completion/completion-decision.js +3 -15
  11. package/dist/completion/completion-decision.js.map +1 -1
  12. package/dist/completion/event-phases.d.ts +0 -8
  13. package/dist/completion/event-phases.d.ts.map +1 -1
  14. package/dist/completion/event-phases.js +4 -52
  15. package/dist/completion/event-phases.js.map +1 -1
  16. package/dist/completion/event.d.ts +1 -11
  17. package/dist/completion/event.d.ts.map +1 -1
  18. package/dist/completion/event.js +1 -3
  19. package/dist/completion/event.js.map +1 -1
  20. package/dist/delivery-artifacts.d.ts.map +1 -1
  21. package/dist/delivery-artifacts.js +9 -8
  22. package/dist/delivery-artifacts.js.map +1 -1
  23. package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
  24. package/dist/prompt-sections/execution-sections.js +44 -3
  25. package/dist/prompt-sections/execution-sections.js.map +1 -1
  26. package/dist/prompt-sections/scoping-sections.d.ts.map +1 -1
  27. package/dist/prompt-sections/scoping-sections.js +8 -0
  28. package/dist/prompt-sections/scoping-sections.js.map +1 -1
  29. package/dist/queries/deliveries.d.ts +20 -153
  30. package/dist/queries/deliveries.d.ts.map +1 -1
  31. package/dist/queries/deliveries.js +26 -0
  32. package/dist/queries/deliveries.js.map +1 -1
  33. package/dist/queries/delivery-gate-state.d.ts +192 -0
  34. package/dist/queries/delivery-gate-state.d.ts.map +1 -0
  35. package/dist/queries/delivery-gate-state.js +23 -0
  36. package/dist/queries/delivery-gate-state.js.map +1 -0
  37. package/dist/queries/holds.d.ts +52 -59
  38. package/dist/queries/holds.d.ts.map +1 -1
  39. package/dist/queries/holds.js +60 -68
  40. package/dist/queries/holds.js.map +1 -1
  41. package/dist/queries/issues.d.ts +2 -2
  42. package/dist/queries/issues.d.ts.map +1 -1
  43. package/dist/queries/issues.js +2 -2
  44. package/dist/queries/issues.js.map +1 -1
  45. package/dist/reality-pole.d.ts +5 -3
  46. package/dist/reality-pole.d.ts.map +1 -1
  47. package/dist/reality-pole.js +13 -4
  48. package/dist/reality-pole.js.map +1 -1
  49. package/dist/resolvers/git-diff-against-base.d.ts.map +1 -1
  50. package/dist/resolvers/git-diff-against-base.js +12 -5
  51. package/dist/resolvers/git-diff-against-base.js.map +1 -1
  52. package/dist/resolvers/index.d.ts +1 -1
  53. package/dist/resolvers/index.d.ts.map +1 -1
  54. package/dist/resolvers/index.js +1 -1
  55. package/dist/resolvers/index.js.map +1 -1
  56. package/dist/resolvers/shared/git-diff.d.ts +147 -26
  57. package/dist/resolvers/shared/git-diff.d.ts.map +1 -1
  58. package/dist/resolvers/shared/git-diff.js +275 -35
  59. package/dist/resolvers/shared/git-diff.js.map +1 -1
  60. package/dist/templates/claude-md.d.ts +1 -1
  61. package/dist/templates/claude-md.d.ts.map +1 -1
  62. package/dist/templates/claude-md.js +20 -0
  63. package/dist/templates/claude-md.js.map +1 -1
  64. package/dist/verification-deps.d.ts +151 -0
  65. package/dist/verification-deps.d.ts.map +1 -0
  66. package/dist/verification-deps.js +19 -0
  67. package/dist/verification-deps.js.map +1 -0
  68. package/dist/verification-engine.d.ts +10 -112
  69. package/dist/verification-engine.d.ts.map +1 -1
  70. package/dist/verification-engine.js +84 -30
  71. package/dist/verification-engine.js.map +1 -1
  72. package/dist/verification-evidence.d.ts +33 -1
  73. package/dist/verification-evidence.d.ts.map +1 -1
  74. package/dist/verification-evidence.js +55 -13
  75. package/dist/verification-evidence.js.map +1 -1
  76. package/dist/verification-feedback.d.ts +31 -27
  77. package/dist/verification-feedback.d.ts.map +1 -1
  78. package/dist/verification-feedback.js +76 -85
  79. package/dist/verification-feedback.js.map +1 -1
  80. package/dist/verify-restatement.d.ts +12 -9
  81. package/dist/verify-restatement.d.ts.map +1 -1
  82. package/dist/verify-restatement.js +11 -9
  83. package/dist/verify-restatement.js.map +1 -1
  84. package/package.json +1 -1
@@ -0,0 +1,19 @@
1
+ /**
2
+ * The verification engine's injectable dependency surface.
3
+ *
4
+ * Split out of `verification-engine.ts` (which holds the dispatch + tick logic)
5
+ * because this is a CONTRACT, not behavior: every seam the engine reaches
6
+ * reality through -- pending-verification reads, the injection flip, target
7
+ * reconciliation, escalation filing, drift emission, the three strategies, cwd
8
+ * and commit-set resolution, the security gate, and the three feedback re-entry
9
+ * paths -- is declared here, and every test that drives the engine constructs
10
+ * one of these. The wiring that fills it (`defaultDeps`) stays in the engine,
11
+ * next to the imports it binds.
12
+ *
13
+ * Type-only module: no runtime imports, so it adds no edge to the module graph
14
+ * that `import-x/no-cycle` has to reason about.
15
+ *
16
+ * @module verification-deps
17
+ */
18
+ export {};
19
+ //# sourceMappingURL=verification-deps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification-deps.js","sourceRoot":"","sources":["../src/verification-deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG"}
@@ -22,21 +22,12 @@
22
22
  *
23
23
  * @module verification-engine
24
24
  */
25
- import { runDeterministicStrategy, type StrategyResult } from './verification-deterministic.js';
25
+ import { type StrategyResult } from './verification-deterministic.js';
26
26
  export { runDeterministicStrategy, type DeterministicLogContext } from './verification-deterministic.js';
27
- import { getPendingVerifications, type PendingVerification, type VerificationOutcome } from './queries/verification.js';
28
- import type { NodeWriteback } from './reality-writeback.js';
29
- import { type ReconcileTargetsResult, type TargetRestatement, type TargetShortfall, type VerifyEvidence } from './verify-restatement.js';
30
- import { type FileEscalationInput } from './escalations.js';
31
- import type { EvidenceUnavailableDetail } from './queries/deliveries.js';
27
+ import { type PendingVerification } from './queries/verification.js';
32
28
  import type { DaemonConfig } from './types.js';
33
- import { type ResolvedDefaultVerification } from './verification-config.js';
34
- import { getActiveFocuses, getFocusDeliveries } from './supabase.js';
35
- import { type FailureClassification } from './verification-baseline.js';
36
29
  export { collectDefaultOnVerifications, resolveDaemonWideVerifyCap, resolveProductVerificationScopes, verificationSemaphore, VerificationSemaphore, __getVerificationSemaphoreForTests, __resetDefaultOnGuardForTests, __getDefaultOnGuardForTests, __markDefaultOnRanForTests, } from './verification-default-on.js';
37
- import { type AiInspectionInputs } from './ai-inspection-context.js';
38
- import { runAiInspection as defaultRunAiInspection, type InspectionResult } from './ai-inspection-runner.js';
39
- import { type SecurityFindingGateDeps } from './security-finding-gate.js';
30
+ import { type InspectionResult } from './ai-inspection-runner.js';
40
31
  export declare function runBehavioralStrategy(): Promise<StrategyResult>;
41
32
  /**
42
33
  * Spawn a tool-augmented Claude runner against the focus worktree to judge
@@ -56,106 +47,13 @@ export declare function runBehavioralStrategy(): Promise<StrategyResult>;
56
47
  export declare function runAiInspectionStrategy(deps: VerificationDeps, v: PendingVerification): Promise<StrategyResult & {
57
48
  inspection?: InspectionResult;
58
49
  }>;
59
- export interface DriftProposalCreatePayload {
60
- focusId: string | null;
61
- productId: string | null;
62
- injectionNodeId: string;
63
- observation: {
64
- nodeId: string | null;
65
- kind: 'update_statement' | 'add_node' | 'retire_node' | 'change_node_type' | 'flip_ude_to_de';
66
- observed: string;
67
- suggestedCorrection: string;
68
- };
69
- }
70
- export interface VerificationDeps {
71
- getPendingVerifications: typeof getPendingVerifications;
72
- recordOutcome: (deliveryId: string, outcome: VerificationOutcome) => Promise<void>;
73
- verifyInjection: (injectionNodeId: string, restatements?: TargetRestatement[]) => Promise<void>;
74
- /**
75
- * Reconcile the declared desired effect against the achieved outcome (authored
76
- * from the supplied EVIDENCE -- diff/tests/inspection, NOT the UDE problem text)
77
- * for each UDE the injection targets, classifying match / legitimate_divergence
78
- * / shortfall. match / legitimate_divergence come back in `restatements` for the
79
- * engine to carry INTO the verify call; shortfalls come back in `shortfalls` so
80
- * the engine can hold the gate and escalate. The edge applies the supplied prose
81
- * + classification; it never runs the LLM.
82
- */
83
- authorTargetRestatements?: (injectionNodeId: string, focusId: string | null, evidence: VerifyEvidence) => Promise<ReconcileTargetsResult>;
84
- /**
85
- * File a human escalation when an injection's achieved outcome falls SHORT of
86
- * its declared desired effect. Reality is asymmetric: we never soften the
87
- * declared DE to match a lesser achievement -- we hold the gate and hand the
88
- * gap to the intent owner.
89
- */
90
- fileEscalation: (input: FileEscalationInput) => Promise<void>;
91
- /** Org scope for filed escalations. */
92
- organizationId: string;
93
- /** Persist a single drift proposal observed during ai_inspection. */
94
- emitDriftProposal: (payload: DriftProposalCreatePayload) => Promise<void>;
95
- /**
96
- * Surface INWARD drift proposals (TEL-4): for each target the verify path
97
- * stamped `legitimate_divergence`, create one `update_statement` drift
98
- * proposal flagged `inward:true` so a confident-but-wrong tree claim is
99
- * corrected by drift rather than frozen. Best-effort + non-fatal: a failure
100
- * here must not undo the verify flip that already landed. Defaults to the
101
- * `emitInwardDriftProposals` seam in queries/verification.
102
- */
103
- emitInwardDrift: (injectionNodeId: string, writebacks: readonly NodeWriteback[], realityTreeId?: string) => Promise<void>;
104
- runDeterministic: typeof runDeterministicStrategy;
105
- runAiInspection: typeof defaultRunAiInspection;
106
- resolveAiInspectionInputs: (v: PendingVerification) => Promise<AiInspectionInputs | null>;
107
- resolveCwd: (productId: string | null) => string;
108
- integrationBranch: string;
109
- /**
110
- * Security workflow verify-closed gate. Consulted before
111
- * `verifyInjection` so a security-linked injection cannot be retired
112
- * unless the linked finding has flipped to 'resolved'. On failure the
113
- * gate escalates the finding (status='escalated', reason='verify_gate_failed')
114
- * and the engine demotes the verification outcome to 'failed'.
115
- */
116
- securityFindingGate: SecurityFindingGateDeps;
117
- /**
118
- * Resolve the default-on deterministic verification config (env > file >
119
- * default). When it yields `enabled: false` (no command configured) the
120
- * default-on scan is a no-op and only explicit-method deliveries verify.
121
- */
122
- resolveDefaultVerification: (config: DaemonConfig) => ResolvedDefaultVerification;
123
- /** Enumerate active focuses for a product (default-on candidate discovery). */
124
- getActiveFocuses: typeof getActiveFocuses;
125
- /** Fetch a focus's deliveries (default-on candidate discovery). */
126
- getFocusDeliveries: typeof getFocusDeliveries;
127
- /** Failed-run feedback (gate_state + live inject). Optional; defaultDeps provides it. */
128
- deliverFailureFeedback?: (v: PendingVerification, result: StrategyResult) => Promise<void>;
129
- /**
130
- * Shortfall-origin re-work re-entry: route the delivery verify -> verify_failed
131
- * through the single-writer reconciler (carrying the declared-vs-achieved gap in
132
- * gate_state under the shortfall guard) so it re-enters bounded re-work instead
133
- * of a human inbox, and live-inject the gap into a running coding team.
134
- * Distinct from deliverFailureFeedback so a shortfall hold never reports under
135
- * the deterministic guard. Optional; defaultDeps provides it (requeueShortfallAsRework).
136
- */
137
- deliverShortfallFeedback?: (v: PendingVerification, shortfalls: readonly TargetShortfall[]) => Promise<void>;
138
- /**
139
- * Instrument-fault hold: the verify path was handed no evidence it could judge
140
- * the work against (an empty bundle). Writes gate_state under the
141
- * evidence-unavailable guard (delivery stays in `verify`; no iteration is
142
- * consumed) and files a first-occurrence operator escalation naming the
143
- * missing evidence. Never routes to verify_failed and never reports under the
144
- * deterministic or shortfall guard. Optional; defaultDeps provides it.
145
- */
146
- deliverEvidenceUnavailableFeedback?: (v: PendingVerification, fault: Omit<EvidenceUnavailableDetail, 'heldAt'>) => Promise<void>;
147
- /** cwd for the HEAD run -- the focus worktree. Optional; dispatch falls back to resolveCwd. */
148
- resolveVerificationCwd?: (v: PendingVerification) => string;
149
- /**
150
- * Count of commits the delivery branch is ahead of the integration base.
151
- * Used by the evidence-integrity guard to tell a broken diff MEASUREMENT
152
- * (commits present but diff empty -> hold) from genuine inaction (no commits
153
- * -> a real shortfall). Optional; defaultDeps resolves it in the focus worktree.
154
- */
155
- resolveCommitsAhead?: (v: PendingVerification) => number;
156
- /** Baseline-diff attribution; null => no baseline resolvable (gate all). Optional. */
157
- attributeFailures?: (v: PendingVerification, result: StrategyResult) => Promise<FailureClassification | null>;
158
- }
50
+ /**
51
+ * The engine's injectable dependency surface lives in verification-deps.ts --
52
+ * a contract, not behavior. Re-exported here so existing importers and the
53
+ * tests that construct deps objects keep resolving through verification-engine.
54
+ */
55
+ export type { DriftProposalCreatePayload, VerificationDeps } from './verification-deps.js';
56
+ import type { VerificationDeps } from './verification-deps.js';
159
57
  /**
160
58
  * Verify-gate evidence resolution lives in verification-evidence.ts (diff-range
161
59
  * resolution, structured change signals, and the missing-slot naming the
@@ -1 +1 @@
1
- {"version":3,"file":"verification-engine.d.ts","sourceRoot":"","sources":["../src/verification-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verification-engine.d.ts","sourceRoot":"","sources":["../src/verification-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAA4B,KAAK,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAChG,OAAO,EAAE,wBAAwB,EAAE,KAAK,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AACzG,OAAO,EAKL,KAAK,mBAAmB,EAGzB,MAAM,2BAA2B,CAAC;AAWnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAe/C,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,gCAAgC,EAChC,qBAAqB,EACrB,qBAAqB,EACrB,kCAAkC,EAClC,6BAA6B,EAC7B,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,2BAA2B,CAAC;AAiBnC,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,cAAc,CAAC,CAKrE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,gBAAgB,EACtB,CAAC,EAAE,mBAAmB,GACrB,OAAO,CAAC,cAAc,GAAG;IAAE,UAAU,CAAC,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAmB7D;AAMD;;;;GAIG;AACH,YAAY,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,KAAK,EAA8B,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAgF3F;;;;;;GAMG;AACH,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,KAAK,kBAAkB,GACxB,MAAM,4BAA4B,CAAC;AAWpC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,0BAA0B,CAC9C,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,cAAc,CAAC,CA8SzB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,YAAY,EACpB,IAAI,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAC/B,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAwFlG"}
@@ -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 { getCommitsAhead } 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
  };
@@ -150,7 +165,8 @@ const STRATEGIES = {
150
165
  * resolving.
151
166
  */
152
167
  export { MERGED_BACK_GIT_STATES, recordedMergeShaForVerify, } from './verification-evidence.js';
153
- import { buildVerifyEvidence, describeMissingJudgeEvidence, } from './verification-evidence.js';
168
+ import { buildVerifyEvidence, describeMissingJudgeEvidence, assessRecordedCoverage, recordedMergeShaForVerify as recordedMergeShaForVerifyImpl, } from './verification-evidence.js';
169
+ import { getRecordedCommitShasForMerge } from './queries/deliveries.js';
154
170
  /**
155
171
  * Run verification for a single delivery.
156
172
  *
@@ -239,7 +255,26 @@ export async function runVerificationForDelivery(v, deps) {
239
255
  // declared DE. If ANY target falls short, we hold the gate (demote to
240
256
  // 'failed'), skip the flip, and escalate the gap to a human. Reality is
241
257
  // moved toward intent, never the reverse.
242
- 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);
243
278
  let restatements = [];
244
279
  let shortfalls = [];
245
280
  let realityTreeId;
@@ -252,7 +287,7 @@ export async function runVerificationForDelivery(v, deps) {
252
287
  let evidenceUnavailable = false;
253
288
  if (deps.authorTargetRestatements) {
254
289
  try {
255
- const reconciled = await deps.authorTargetRestatements(v.injectionNodeId, v.focusId, evidence);
290
+ const reconciled = await deps.authorTargetRestatements(v.injectionNodeId, v.focusId, evidence, !coverage.complete);
256
291
  restatements = reconciled.restatements;
257
292
  shortfalls = reconciled.shortfalls;
258
293
  realityTreeId = reconciled.realityTreeId;
@@ -272,25 +307,42 @@ export async function runVerificationForDelivery(v, deps) {
272
307
  }
273
308
  }
274
309
  if (evidenceUnavailable) {
275
- // Instrument fault: the reconciliation had a declared DE to judge but no
276
- // evidence to judge it against, so it rendered no verdict. Hold the
277
- // delivery in `verify` under the evidence-unavailable guard (NOT
278
- // verify_failed -- no re-code iteration is consumed) and escalate on
279
- // first occurrence, naming the missing evidence. This bounds EVERY cause
280
- // of an empty bundle (broken diff range, merged branch, no attributable
281
- // 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.
282
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;
283
328
  evidenceUnavailableHold = {
284
329
  missing: describeMissingJudgeEvidence(evidence),
285
330
  commitsAhead,
331
+ ...(isIncomplete ? { coverage: { recorded: coverage.recorded, covered: coverage.covered } } : {}),
286
332
  };
287
- result.outcome = 'pending';
288
- result.rationale = commitsAhead > 0
289
- ? `verify held (instrument fault): delivery branch is ${commitsAhead} commit(s) ahead of ` +
290
- `${deps.integrationBranch} but the resolved diff is empty -- broken diff measurement, ` +
291
- `not a shortfall (injection ${v.injectionNodeId} not flipped)`
292
- : `verify held (instrument fault): no diff/changed-files/inspection evidence to judge the ` +
293
- `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)`;
294
346
  log.warn(`[verification] ${result.rationale} (delivery ${v.deliveryId})`);
295
347
  }
296
348
  else if (shortfalls.length > 0) {
@@ -350,16 +402,18 @@ export async function runVerificationForDelivery(v, deps) {
350
402
  // exclusive: a shortfall / instrument-fault hold only demotes a PASSED
351
403
  // outcome, so a deterministic-failed run carries neither.
352
404
  //
353
- // Instrument-fault hold FIRST: the verify path was handed nothing to judge,
354
- // so it holds under the evidence-unavailable guard and files a
355
- // first-occurrence operator escalation -- it never routes to verify_failed and
356
- // never reports under the deterministic or shortfall guard.
357
- 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) {
358
412
  try {
359
- await deps.deliverEvidenceUnavailableFeedback(v, evidenceUnavailableHold);
413
+ await deps.requeueEvidenceUnavailableAsRework(v, evidenceUnavailableHold);
360
414
  }
361
415
  catch (err) {
362
- 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);
363
417
  }
364
418
  }
365
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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"}
@@ -64,11 +64,43 @@ export declare const MERGED_BACK_GIT_STATES: Set<string>;
64
64
  export declare function recordedMergeShaForVerify(v: Pick<PendingVerification, 'gitState' | 'mergeCommitSha'>): string | null | undefined;
65
65
  export declare function buildVerifyEvidence(result: StrategyResult & {
66
66
  inspection?: InspectionResult;
67
- }, v: PendingVerification, deps: VerifyEvidenceDeps): VerifyEvidence;
67
+ }, v: PendingVerification, deps: VerifyEvidenceDeps, recordedCommitShas?: string[]): VerifyEvidence;
68
68
  /**
69
69
  * Name the judgeable evidence slots that were empty, for the instrument-fault
70
70
  * hold's gate_state + escalation. Describes the FAULT (what the gate could not
71
71
  * see), never the work.
72
72
  */
73
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;
74
106
  //# sourceMappingURL=verification-evidence.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verification-evidence.d.ts","sourceRoot":"","sources":["../src/verification-evidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAQH,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,GACvB,cAAc,CAqChB;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,EAAE,CAMzE"}
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"}
@@ -17,7 +17,7 @@
17
17
  * cycle, and import-x/no-cycle is gated at "error". VerificationDeps satisfies
18
18
  * this interface structurally, so call sites pass it unchanged.
19
19
  */
20
- import { getGitDiffRange, getDiffStatRange, getChangedFilesRange, resolveDeliveryDiffRange, } from './assembly-resolvers.js';
20
+ import { resolveDeliveryDiffSource, getDeliveryDiffFromSource, getDeliveryChangedFilesFromSource, getDeliveryDiffStatFromSource, listSourceCommits, } from './assembly-resolvers.js';
21
21
  import { createLogger } from './log.js';
22
22
  const log = createLogger({ module: 'verification' });
23
23
  /**
@@ -58,20 +58,21 @@ export function recordedMergeShaForVerify(v) {
58
58
  return undefined;
59
59
  return v.mergeCommitSha;
60
60
  }
61
- export function buildVerifyEvidence(result, v, deps) {
61
+ export function buildVerifyEvidence(result, v, deps, recordedCommitShas = []) {
62
62
  const cwd = resolveDiffCwd(v, deps);
63
- // Resolve the range that actually contains the delivery's work: base...HEAD
64
- // while the branch is ahead, then the delivery's RECORDED merge commit once it
65
- // has merged back (trusted directly, so a teamless/stale worktree whose
66
- // integration ref is not current still yields a verdict), then a searched
67
- // merge commit, else null. A null range (no attributable commits anywhere the
68
- // daemon can reach) yields an empty diff, which the instrument-fault path then
69
- // holds -- it is never rendered as a shortfall.
70
- const range = resolveDeliveryDiffRange(cwd, deps.integrationBranch, recordedMergeShaForVerify(v));
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);
71
72
  let diff = result.deliveryDiff ?? '';
72
73
  if (diff === '') {
73
74
  try {
74
- diff = range ? getGitDiffRange(cwd, range) : '';
75
+ diff = source ? getDeliveryDiffFromSource(cwd, source) : '';
75
76
  }
76
77
  catch (err) {
77
78
  // best-effort: no diff is fine, the other evidence slots still carry signal
@@ -81,8 +82,8 @@ export function buildVerifyEvidence(result, v, deps) {
81
82
  let changedFiles = [];
82
83
  let diffStat = '';
83
84
  try {
84
- changedFiles = range ? getChangedFilesRange(cwd, range) : [];
85
- diffStat = range ? getDiffStatRange(cwd, range) : '';
85
+ changedFiles = source ? getDeliveryChangedFilesFromSource(cwd, source) : [];
86
+ diffStat = source ? getDeliveryDiffStatFromSource(cwd, source) : '';
86
87
  }
87
88
  catch (err) {
88
89
  log.debug('best-effort: structured diff signals unavailable', { error: String(err?.message ?? err) });
@@ -113,4 +114,45 @@ export function describeMissingJudgeEvidence(ev) {
113
114
  missing.push('inspection finding');
114
115
  return missing;
115
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
+ }
116
158
  //# sourceMappingURL=verification-evidence.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"verification-evidence.js","sourceRoot":"","sources":["../src/verification-evidence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verification-evidence.js","sourceRoot":"","sources":["../src/verification-evidence.ts"],"names":[],"mappings":"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"}