@telora/daemon 0.20.19 → 0.20.28
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/audit-phase.d.ts +43 -6
- package/dist/audit-phase.d.ts.map +1 -1
- package/dist/audit-phase.js +124 -23
- package/dist/audit-phase.js.map +1 -1
- package/dist/cascade-restatement.d.ts +13 -147
- package/dist/cascade-restatement.d.ts.map +1 -1
- package/dist/cascade-restatement.js +13 -429
- package/dist/cascade-restatement.js.map +1 -1
- package/dist/cli/session-state.d.ts.map +1 -1
- package/dist/cli/session-state.js +6 -1
- package/dist/cli/session-state.js.map +1 -1
- package/dist/focus-engine.d.ts.map +1 -1
- package/dist/focus-engine.js +15 -0
- package/dist/focus-engine.js.map +1 -1
- package/dist/focus-loop-registry.d.ts.map +1 -1
- package/dist/focus-loop-registry.js +16 -90
- package/dist/focus-loop-registry.js.map +1 -1
- package/dist/focus-loop.d.ts +0 -2
- package/dist/focus-loop.d.ts.map +1 -1
- package/dist/focus-loop.js +33 -25
- package/dist/focus-loop.js.map +1 -1
- package/dist/focus-phase.d.ts +26 -0
- package/dist/focus-phase.d.ts.map +1 -1
- package/dist/focus-phase.js +38 -0
- package/dist/focus-phase.js.map +1 -1
- package/dist/listener.d.ts.map +1 -1
- package/dist/listener.js +40 -9
- package/dist/listener.js.map +1 -1
- package/dist/loops/llm-client.d.ts.map +1 -1
- package/dist/loops/llm-client.js +17 -4
- package/dist/loops/llm-client.js.map +1 -1
- package/dist/queries/audit-runs.d.ts +56 -2
- package/dist/queries/audit-runs.d.ts.map +1 -1
- package/dist/queries/audit-runs.js +40 -0
- package/dist/queries/audit-runs.js.map +1 -1
- package/dist/queries/deliveries.d.ts +27 -0
- package/dist/queries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries.js.map +1 -1
- package/dist/queries/focuses.d.ts +0 -9
- package/dist/queries/focuses.d.ts.map +1 -1
- package/dist/queries/focuses.js +0 -14
- package/dist/queries/focuses.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/audit.d.ts +5 -0
- package/dist/resolvers/shared/audit.d.ts.map +1 -1
- package/dist/resolvers/shared/audit.js +8 -3
- package/dist/resolvers/shared/audit.js.map +1 -1
- package/dist/resolvers/shared/git-diff.d.ts +13 -0
- package/dist/resolvers/shared/git-diff.d.ts.map +1 -1
- package/dist/resolvers/shared/git-diff.js +30 -0
- package/dist/resolvers/shared/git-diff.js.map +1 -1
- package/dist/spawn/review-role-fallback.d.ts +74 -0
- package/dist/spawn/review-role-fallback.d.ts.map +1 -0
- package/dist/spawn/review-role-fallback.js +62 -0
- package/dist/spawn/review-role-fallback.js.map +1 -0
- package/dist/unified-shell-status.d.ts.map +1 -1
- package/dist/unified-shell-status.js +5 -1
- package/dist/unified-shell-status.js.map +1 -1
- package/dist/verification-config.d.ts +64 -15
- package/dist/verification-config.d.ts.map +1 -1
- package/dist/verification-config.js +66 -21
- package/dist/verification-config.js.map +1 -1
- package/dist/verification-default-on.d.ts +73 -1
- package/dist/verification-default-on.d.ts.map +1 -1
- package/dist/verification-default-on.js +79 -0
- package/dist/verification-default-on.js.map +1 -1
- package/dist/verification-engine.d.ts +16 -2
- package/dist/verification-engine.d.ts.map +1 -1
- package/dist/verification-engine.js +168 -84
- package/dist/verification-engine.js.map +1 -1
- package/dist/verification-feedback.d.ts +26 -1
- package/dist/verification-feedback.d.ts.map +1 -1
- package/dist/verification-feedback.js +82 -0
- package/dist/verification-feedback.js.map +1 -1
- package/dist/verification-manifest.d.ts +110 -0
- package/dist/verification-manifest.d.ts.map +1 -0
- package/dist/verification-manifest.js +150 -0
- package/dist/verification-manifest.js.map +1 -0
- package/dist/verify-reconciliation.d.ts +16 -1
- package/dist/verify-reconciliation.d.ts.map +1 -1
- package/dist/verify-reconciliation.js +18 -2
- package/dist/verify-reconciliation.js.map +1 -1
- package/dist/verify-restatement.d.ts +7 -0
- package/dist/verify-restatement.d.ts.map +1 -1
- package/dist/verify-restatement.js +1 -0
- package/dist/verify-restatement.js.map +1 -1
- package/package.json +2 -2
- package/dist/drift-ratify-loop.d.ts +0 -68
- package/dist/drift-ratify-loop.d.ts.map +0 -1
- package/dist/drift-ratify-loop.js +0 -161
- package/dist/drift-ratify-loop.js.map +0 -1
- package/dist/negative-branch.d.ts +0 -136
- package/dist/negative-branch.d.ts.map +0 -1
- package/dist/negative-branch.js +0 -241
- package/dist/negative-branch.js.map +0 -1
- package/dist/shortfall-disposition-config.d.ts +0 -34
- package/dist/shortfall-disposition-config.d.ts.map +0 -1
- package/dist/shortfall-disposition-config.js +0 -46
- package/dist/shortfall-disposition-config.js.map +0 -1
- package/dist/shortfall-disposition-loop.d.ts +0 -86
- package/dist/shortfall-disposition-loop.d.ts.map +0 -1
- package/dist/shortfall-disposition-loop.js +0 -309
- package/dist/shortfall-disposition-loop.js.map +0 -1
|
@@ -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 { getGitDiff } from './assembly-resolvers.js';
|
|
31
|
+
import { getGitDiff, getDiffStatSummary, getChangedFiles, getCommitsAhead } from './assembly-resolvers.js';
|
|
32
32
|
import { ESCALATION_REASONS, ESCALATION_DISPOSITIONS } from '@telora/daemon-core';
|
|
33
33
|
import { resolveDefaultVerification as defaultResolveDefaultVerification, } from './verification-config.js';
|
|
34
34
|
import { getActiveFocuses, getFocusDeliveries } from './supabase.js';
|
|
35
|
-
import { collectDefaultOnVerifications, markDefaultOnRan, verificationSemaphore, } from './verification-default-on.js';
|
|
36
|
-
import { deliverVerificationFailureFeedback } from './verification-feedback.js';
|
|
35
|
+
import { collectDefaultOnVerifications, markDefaultOnRan, resolveDaemonWideVerifyCap, resolveProductVerificationScopes, verificationSemaphore, } from './verification-default-on.js';
|
|
36
|
+
import { deliverVerificationFailureFeedback, deliverShortfallFailureFeedback } from './verification-feedback.js';
|
|
37
37
|
import { buildDefaultAttributeFailures, buildResolveVerificationCwd, applyAttribution } from './verification-baseline.js';
|
|
38
38
|
// Re-export the default-on selection + concurrency surface so existing
|
|
39
39
|
// importers (and tests) can reach it through verification-engine.
|
|
40
|
-
export { collectDefaultOnVerifications, verificationSemaphore, VerificationSemaphore, __getVerificationSemaphoreForTests, __resetDefaultOnGuardForTests, __getDefaultOnGuardForTests, __markDefaultOnRanForTests, } from './verification-default-on.js';
|
|
40
|
+
export { collectDefaultOnVerifications, resolveDaemonWideVerifyCap, resolveProductVerificationScopes, verificationSemaphore, VerificationSemaphore, __getVerificationSemaphoreForTests, __resetDefaultOnGuardForTests, __getDefaultOnGuardForTests, __markDefaultOnRanForTests, } from './verification-default-on.js';
|
|
41
41
|
import { resolveAiInspectionInputs as defaultResolveAiInspectionInputs, } from './ai-inspection-context.js';
|
|
42
42
|
import { runAiInspection as defaultRunAiInspection, } from './ai-inspection-runner.js';
|
|
43
43
|
import { buildDefaultSecurityFindingGateDeps, evaluateFindingNoLongerPresent, escalateOnGateFail, } from './security-finding-gate.js';
|
|
@@ -107,6 +107,7 @@ const defaultDeps = (config) => {
|
|
|
107
107
|
return config.repoPath;
|
|
108
108
|
return configForProduct(config, product).repoPath;
|
|
109
109
|
};
|
|
110
|
+
const resolveVerificationCwd = buildResolveVerificationCwd(resolveCwd);
|
|
110
111
|
return {
|
|
111
112
|
getPendingVerifications,
|
|
112
113
|
recordOutcome: recordDeliveryVerificationOutcome,
|
|
@@ -130,7 +131,9 @@ const defaultDeps = (config) => {
|
|
|
130
131
|
getActiveFocuses,
|
|
131
132
|
getFocusDeliveries,
|
|
132
133
|
deliverFailureFeedback: (v, result) => deliverVerificationFailureFeedback(v, result, config.organizationId).then(() => undefined),
|
|
133
|
-
|
|
134
|
+
deliverShortfallFeedback: (v, shortfalls) => deliverShortfallFailureFeedback(v, shortfalls, config.organizationId).then(() => undefined),
|
|
135
|
+
resolveVerificationCwd,
|
|
136
|
+
resolveCommitsAhead: (v) => getCommitsAhead(resolveVerificationCwd(v), config.integrationBranch),
|
|
134
137
|
attributeFailures: buildDefaultAttributeFailures(config),
|
|
135
138
|
};
|
|
136
139
|
};
|
|
@@ -139,6 +142,17 @@ const STRATEGIES = {
|
|
|
139
142
|
behavioral: () => runBehavioralStrategy(),
|
|
140
143
|
ai_inspection: (deps, v) => runAiInspectionStrategy(deps, v),
|
|
141
144
|
};
|
|
145
|
+
/**
|
|
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).
|
|
152
|
+
*/
|
|
153
|
+
function resolveDiffCwd(v, deps) {
|
|
154
|
+
return (deps.resolveVerificationCwd ?? ((pv) => deps.resolveCwd(pv.productId)))(v);
|
|
155
|
+
}
|
|
142
156
|
/**
|
|
143
157
|
* Build the cited-evidence bundle the achieved-DE authoring consumes. Sourced
|
|
144
158
|
* from the verification verdict (NOT the UDE problem text):
|
|
@@ -146,20 +160,36 @@ const STRATEGIES = {
|
|
|
146
160
|
* - deterministic: the check exit code + stdout/stderr tails, plus the diff
|
|
147
161
|
* against integration (fetched best-effort; an empty diff just yields less
|
|
148
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.
|
|
149
167
|
*/
|
|
150
168
|
function buildVerifyEvidence(result, v, deps) {
|
|
169
|
+
const cwd = resolveDiffCwd(v, deps);
|
|
151
170
|
let diff = result.deliveryDiff ?? '';
|
|
152
171
|
if (diff === '') {
|
|
153
172
|
try {
|
|
154
|
-
diff = getGitDiff(
|
|
173
|
+
diff = getGitDiff(cwd, deps.integrationBranch);
|
|
155
174
|
}
|
|
156
175
|
catch (err) {
|
|
157
176
|
// best-effort: no diff is fine, the other evidence slots still carry signal
|
|
158
177
|
log.debug('best-effort: no diff is fine, the other evidence slots still carry signal', { error: String(err?.message ?? err) });
|
|
159
178
|
}
|
|
160
179
|
}
|
|
180
|
+
let changedFiles = [];
|
|
181
|
+
let diffStat = '';
|
|
182
|
+
try {
|
|
183
|
+
changedFiles = getChangedFiles(cwd, deps.integrationBranch);
|
|
184
|
+
diffStat = getDiffStatSummary(cwd, deps.integrationBranch);
|
|
185
|
+
}
|
|
186
|
+
catch (err) {
|
|
187
|
+
log.debug('best-effort: structured diff signals unavailable', { error: String(err?.message ?? err) });
|
|
188
|
+
}
|
|
161
189
|
return {
|
|
162
190
|
diff: diff || undefined,
|
|
191
|
+
changedFiles: changedFiles.length > 0 ? changedFiles : undefined,
|
|
192
|
+
diffStat: diffStat.trim() !== '' ? diffStat : undefined,
|
|
163
193
|
testStdout: result.stdoutTail,
|
|
164
194
|
testStderr: result.stderrTail,
|
|
165
195
|
exitCode: result.exitCode,
|
|
@@ -173,7 +203,8 @@ function buildVerifyEvidence(result, v, deps) {
|
|
|
173
203
|
* crash the tick (the gate is already held by the demoted 'failed' outcome).
|
|
174
204
|
*/
|
|
175
205
|
async function escalateShortfalls(v, shortfalls, deps) {
|
|
176
|
-
const lines = shortfalls.map((s) => `- node ${s.nodeId}\n declared: ${s.declaredStatement}\n achieved: ${s.achievedStatement}\n shortfall: ${s.reason}`
|
|
206
|
+
const lines = shortfalls.map((s) => `- node ${s.nodeId}\n declared: ${s.declaredStatement}\n achieved: ${s.achievedStatement}\n shortfall: ${s.reason}` +
|
|
207
|
+
(s.diffCitation ? `\n diff citation: ${s.diffCitation}` : ''));
|
|
177
208
|
try {
|
|
178
209
|
await deps.fileEscalation({
|
|
179
210
|
organizationId: deps.organizationId,
|
|
@@ -194,6 +225,7 @@ async function escalateShortfalls(v, shortfalls, deps) {
|
|
|
194
225
|
declared: s.declaredStatement,
|
|
195
226
|
achieved: s.achievedStatement,
|
|
196
227
|
reason: s.reason,
|
|
228
|
+
...(s.diffCitation ? { citation: s.diffCitation } : {}),
|
|
197
229
|
})),
|
|
198
230
|
},
|
|
199
231
|
});
|
|
@@ -245,6 +277,11 @@ export async function runVerificationForDelivery(v, deps) {
|
|
|
245
277
|
log.warn(`[verification] baseline attribution failed for delivery ${v.deliveryId}:`, err.message);
|
|
246
278
|
}
|
|
247
279
|
}
|
|
280
|
+
// Shortfall-origin tracking: set when the reconciliation demotes a PASSED
|
|
281
|
+
// outcome to 'failed'. Feedback for a shortfall hold routes under its own
|
|
282
|
+
// guard (not deterministic_verification), so the origin must survive to the
|
|
283
|
+
// feedback dispatch below.
|
|
284
|
+
let shortfallHold = [];
|
|
248
285
|
// Pass path FIRST so a verifyInjection failure short-circuits before we
|
|
249
286
|
// record an outcome that does not match graph state.
|
|
250
287
|
if (result.outcome === 'passed' && v.injectionNodeId) {
|
|
@@ -280,81 +317,117 @@ export async function runVerificationForDelivery(v, deps) {
|
|
|
280
317
|
// declared DE. If ANY target falls short, we hold the gate (demote to
|
|
281
318
|
// 'failed'), skip the flip, and escalate the gap to a human. Reality is
|
|
282
319
|
// moved toward intent, never the reverse.
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
// flip an injection whose achievement we could not verify. Treat the
|
|
297
|
-
// whole injection as a shortfall and hold the gate.
|
|
298
|
-
log.warn(`[verification] verify-time reconciliation failed for ${v.injectionNodeId}:`, err.message);
|
|
299
|
-
shortfalls = [{
|
|
300
|
-
nodeId: v.injectionNodeId,
|
|
301
|
-
declaredStatement: '(unknown -- reconciliation failed)',
|
|
302
|
-
achievedStatement: '(reconciliation failed)',
|
|
303
|
-
reason: `Reconciliation failed: ${err.message}`,
|
|
304
|
-
}];
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
if (shortfalls.length > 0) {
|
|
308
|
-
// Hold the gate, do NOT flip, escalate the declared-vs-achieved gap.
|
|
309
|
-
result.outcome = 'failed';
|
|
320
|
+
const evidence = buildVerifyEvidence(result, v, deps);
|
|
321
|
+
// Evidence-INTEGRITY guard (fail closed on a broken measurement): a
|
|
322
|
+
// delivery branch with commits ahead of the integration base MUST resolve
|
|
323
|
+
// to a non-empty diff. If it does not, the diff was resolved in the wrong
|
|
324
|
+
// range/worktree -- a broken MEASUREMENT, not a genuine shortfall. Hold the
|
|
325
|
+
// gate for retry ('pending') and NEVER author a shortfall or escalate from
|
|
326
|
+
// the remaining (non-diff) evidence. A genuine no-work delivery (no commits
|
|
327
|
+
// AND empty diff) is NOT held here -- it flows into reconciliation below and
|
|
328
|
+
// can still be classified a real shortfall.
|
|
329
|
+
const commitsAhead = deps.resolveCommitsAhead ? deps.resolveCommitsAhead(v) : 0;
|
|
330
|
+
const diffEmpty = !evidence.diff || evidence.diff.trim() === '';
|
|
331
|
+
if (commitsAhead > 0 && diffEmpty) {
|
|
332
|
+
result.outcome = 'pending';
|
|
310
333
|
result.rationale =
|
|
311
|
-
`verify
|
|
312
|
-
|
|
313
|
-
|
|
334
|
+
`verify held: delivery branch is ${commitsAhead} commit(s) ahead of ` +
|
|
335
|
+
`${deps.integrationBranch} but the resolved diff is empty -- broken diff ` +
|
|
336
|
+
`measurement, not a shortfall; retrying (injection ${v.injectionNodeId} not flipped)`;
|
|
337
|
+
log.warn(`[verification] ${result.rationale} (delivery ${v.deliveryId})`);
|
|
314
338
|
}
|
|
315
339
|
else {
|
|
316
|
-
let
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
340
|
+
let restatements = [];
|
|
341
|
+
let shortfalls = [];
|
|
342
|
+
let realityTreeId;
|
|
343
|
+
if (deps.authorTargetRestatements) {
|
|
344
|
+
try {
|
|
345
|
+
const reconciled = await deps.authorTargetRestatements(v.injectionNodeId, v.focusId, evidence);
|
|
346
|
+
restatements = reconciled.restatements;
|
|
347
|
+
shortfalls = reconciled.shortfalls;
|
|
348
|
+
realityTreeId = reconciled.realityTreeId;
|
|
349
|
+
}
|
|
350
|
+
catch (err) {
|
|
351
|
+
// A reconciliation we could not run at all is asymmetric-unsafe: do not
|
|
352
|
+
// flip an injection whose achievement we could not verify. Treat the
|
|
353
|
+
// whole injection as a shortfall and hold the gate.
|
|
354
|
+
log.warn(`[verification] verify-time reconciliation failed for ${v.injectionNodeId}:`, err.message);
|
|
355
|
+
shortfalls = [{
|
|
356
|
+
nodeId: v.injectionNodeId,
|
|
357
|
+
declaredStatement: '(unknown -- reconciliation failed)',
|
|
358
|
+
achievedStatement: '(reconciliation failed)',
|
|
359
|
+
reason: `Reconciliation failed: ${err.message}`,
|
|
360
|
+
}];
|
|
361
|
+
}
|
|
320
362
|
}
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
363
|
+
if (shortfalls.length > 0) {
|
|
364
|
+
// Hold the gate, do NOT flip, escalate the declared-vs-achieved gap.
|
|
365
|
+
shortfallHold = shortfalls;
|
|
366
|
+
result.outcome = 'failed';
|
|
367
|
+
result.rationale =
|
|
368
|
+
`verify reconciliation found ${shortfalls.length} shortfall(s) vs declared intent; ` +
|
|
369
|
+
`injection ${v.injectionNodeId} not flipped (escalated to human)`;
|
|
370
|
+
await escalateShortfalls(v, shortfalls, deps);
|
|
324
371
|
}
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
if (
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
372
|
+
else {
|
|
373
|
+
let flipped = false;
|
|
374
|
+
try {
|
|
375
|
+
await deps.verifyInjection(v.injectionNodeId, restatements);
|
|
376
|
+
flipped = true;
|
|
377
|
+
}
|
|
378
|
+
catch (err) {
|
|
379
|
+
result.outcome = 'pending';
|
|
380
|
+
result.rationale = `verifyInjection failed for ${v.injectionNodeId}: ${err.message}`;
|
|
381
|
+
}
|
|
382
|
+
// INWARD drift (TEL-3/TEL-4): any target the reconciliation stamped
|
|
383
|
+
// `legitimate_divergence` is a tree CLAIM reality contradicted. Surface
|
|
384
|
+
// each as an inward drift proposal -- AFTER the flip landed -- so a
|
|
385
|
+
// confident-but-wrong assertion is corrected by drift rather than
|
|
386
|
+
// frozen. observedState carries the tree's ORIGINAL claim (not the
|
|
387
|
+
// achieved reality); proposedCorrection carries what reality showed.
|
|
388
|
+
// Best-effort + non-fatal: a failure must not undo the verify flip.
|
|
389
|
+
if (flipped) {
|
|
390
|
+
const divergedWritebacks = restatements
|
|
391
|
+
.filter((r) => r.classification === 'legitimate_divergence')
|
|
392
|
+
.map((r) => ({
|
|
393
|
+
nodeId: r.nodeId,
|
|
394
|
+
classification: 'legitimate_divergence',
|
|
395
|
+
statement: r.statement,
|
|
396
|
+
originalClaim: r.originalClaim,
|
|
397
|
+
...(r.divergenceReason ? { verifyDivergenceReason: r.divergenceReason } : {}),
|
|
398
|
+
}));
|
|
399
|
+
if (divergedWritebacks.length > 0) {
|
|
400
|
+
try {
|
|
401
|
+
await deps.emitInwardDrift(v.injectionNodeId, divergedWritebacks, realityTreeId);
|
|
402
|
+
}
|
|
403
|
+
catch (err) {
|
|
404
|
+
log.warn(`[verification] inward drift emit failed for ${v.injectionNodeId}:`, err.message);
|
|
405
|
+
}
|
|
348
406
|
}
|
|
349
407
|
}
|
|
350
408
|
}
|
|
351
|
-
}
|
|
409
|
+
} // end evidence-integrity else (measurement OK -> reconcile)
|
|
352
410
|
}
|
|
353
411
|
}
|
|
354
412
|
await deps.recordOutcome(v.deliveryId, result.outcome);
|
|
355
|
-
//
|
|
356
|
-
//
|
|
357
|
-
|
|
413
|
+
// Feedback dispatch by FAILURE ORIGIN (the two are mutually exclusive: a
|
|
414
|
+
// shortfall hold only demotes a PASSED outcome, so a deterministic-failed run
|
|
415
|
+
// never carries a shortfallHold).
|
|
416
|
+
//
|
|
417
|
+
// Shortfall-origin hold: report under the shortfall guard (never
|
|
418
|
+
// deterministic_verification) with the declared-vs-achieved detail, and inject
|
|
419
|
+
// a gap-framed message -- never "fix the failing tests". Independent of method.
|
|
420
|
+
if (shortfallHold.length > 0 && deps.deliverShortfallFeedback) {
|
|
421
|
+
try {
|
|
422
|
+
await deps.deliverShortfallFeedback(v, shortfallHold);
|
|
423
|
+
}
|
|
424
|
+
catch (err) {
|
|
425
|
+
log.warn(`[verification] shortfall feedback failed for delivery ${v.deliveryId}:`, err.message);
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
else if (result.outcome === 'failed' && v.verificationMethod === 'deterministic' && deps.deliverFailureFeedback) {
|
|
429
|
+
// Genuine deterministic failure (the shell command actually failed): write
|
|
430
|
+
// gate_state under deterministic_verification + inject. Best-effort.
|
|
358
431
|
try {
|
|
359
432
|
await deps.deliverFailureFeedback(v, result);
|
|
360
433
|
}
|
|
@@ -389,13 +462,20 @@ export async function runVerificationForDelivery(v, deps) {
|
|
|
389
462
|
export async function runVerificationTick(config, deps) {
|
|
390
463
|
const merged = { ...defaultDeps(config), ...deps };
|
|
391
464
|
const counts = { checked: 0, passed: 0, failed: 0, pending: 0, escalated: 0 };
|
|
392
|
-
|
|
393
|
-
//
|
|
394
|
-
//
|
|
395
|
-
//
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
465
|
+
// Resolve the default-on config PER PRODUCT, from each product's own scoped
|
|
466
|
+
// config -- the manifest layer is read from `config.repoPath`, so resolving
|
|
467
|
+
// once from the un-scoped top-level config made every product's gate a
|
|
468
|
+
// function of the daemon's launch directory (and silently dropped the
|
|
469
|
+
// per-product products[].defaultVerification override). A malformed manifest
|
|
470
|
+
// is contained to its own product there; see resolveProductVerificationScopes.
|
|
471
|
+
const scopes = resolveProductVerificationScopes(config, merged.resolveDefaultVerification);
|
|
472
|
+
// The concurrency cap is DAEMON-WIDE (the semaphore is a module-level
|
|
473
|
+
// singleton guarding this host's CPU/RAM), so it is set ONCE from a single
|
|
474
|
+
// order-independent value rather than per-product inside the loop, where the
|
|
475
|
+
// last product iterated would silently win. See resolveDaemonWideVerifyCap for
|
|
476
|
+
// the rule (min across products) and why.
|
|
477
|
+
verificationSemaphore.setLimit(resolveDaemonWideVerifyCap(scopes));
|
|
478
|
+
for (const { product, productConfig, resolved } of scopes) {
|
|
399
479
|
let pending;
|
|
400
480
|
try {
|
|
401
481
|
pending = await merged.getPendingVerifications(product.id);
|
|
@@ -406,14 +486,18 @@ export async function runVerificationTick(config, deps) {
|
|
|
406
486
|
}
|
|
407
487
|
// Default-on: append deterministic runs for verify deliveries with no
|
|
408
488
|
// explicit method (the whole-repo suite the daemon now owns). Inert when
|
|
409
|
-
// no default command is configured (resolved.enabled ===
|
|
489
|
+
// no default command is configured for THIS product (resolved.enabled ===
|
|
490
|
+
// false) or when its config could not be resolved at all (resolved ===
|
|
491
|
+
// undefined -- malformed manifest, already logged at ERROR above).
|
|
410
492
|
const explicitIds = new Set(pending.map((p) => p.deliveryId));
|
|
411
493
|
let defaultOn = [];
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
494
|
+
if (resolved) {
|
|
495
|
+
try {
|
|
496
|
+
defaultOn = await collectDefaultOnVerifications(productConfig, resolved, explicitIds, merged);
|
|
497
|
+
}
|
|
498
|
+
catch (err) {
|
|
499
|
+
log.warn(`[verification] default-on scan failed for product ${product.id}:`, err.message);
|
|
500
|
+
}
|
|
417
501
|
}
|
|
418
502
|
for (const v of [...pending, ...defaultOn]) {
|
|
419
503
|
counts.checked += 1;
|
|
@@ -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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"}
|
|
@@ -16,11 +16,20 @@
|
|
|
16
16
|
* @module verification-feedback
|
|
17
17
|
*/
|
|
18
18
|
import { sendMessage } from '@telora/daemon-core';
|
|
19
|
-
import { type DeliveryGateState, type VerificationFailureDetail } from './queries/deliveries.js';
|
|
19
|
+
import { type DeliveryGateState, type ShortfallReconciliationDetail, type VerificationFailureDetail } from './queries/deliveries.js';
|
|
20
20
|
import { getActiveTeams } from './focus-team-state.js';
|
|
21
21
|
import type { PendingVerification } from './queries/verification.js';
|
|
22
|
+
import type { TargetShortfall } from './verify-restatement.js';
|
|
22
23
|
/** gate_state guard name a deterministic verification failure reports under. */
|
|
23
24
|
export declare const DETERMINISTIC_VERIFICATION_GUARD = "deterministic_verification";
|
|
25
|
+
/**
|
|
26
|
+
* gate_state guard name a verify-SHORTFALL reconciliation hold reports under.
|
|
27
|
+
* Distinct from the deterministic guard: a shortfall hold means the declared
|
|
28
|
+
* desired effect was not realized by the diff, NOT that a shell command failed.
|
|
29
|
+
* A reader must never see this conflated with a passed:false
|
|
30
|
+
* deterministic_verification whose exitCode is 0.
|
|
31
|
+
*/
|
|
32
|
+
export declare const SHORTFALL_RECONCILIATION_GUARD = "verify_shortfall_reconciliation";
|
|
24
33
|
/** The slice of a StrategyResult the feedback loop needs. */
|
|
25
34
|
export interface VerificationFailureResult {
|
|
26
35
|
logPath?: string;
|
|
@@ -55,4 +64,20 @@ export declare function deliverVerificationFailureFeedback(v: Pick<PendingVerifi
|
|
|
55
64
|
injected: boolean;
|
|
56
65
|
detail: VerificationFailureDetail;
|
|
57
66
|
}>;
|
|
67
|
+
/** Build the gate_state for a verify-shortfall reconciliation hold. Pure -- exported for testing. */
|
|
68
|
+
export declare function buildShortfallGateState(detail: ShortfallReconciliationDetail): DeliveryGateState;
|
|
69
|
+
/** Build the message injected into a live team for a shortfall hold. Pure -- exported for testing. */
|
|
70
|
+
export declare function buildShortfallInjectMessage(deliveryName: string, detail: ShortfallReconciliationDetail): string;
|
|
71
|
+
/**
|
|
72
|
+
* Deliver failure feedback for a verify-SHORTFALL reconciliation hold: write
|
|
73
|
+
* gate_state under the shortfall guard (never the deterministic guard) and
|
|
74
|
+
* inject the declared-vs-achieved gap into the live coding team when one is
|
|
75
|
+
* running. Best-effort throughout -- a feedback failure must never crash the
|
|
76
|
+
* verification tick.
|
|
77
|
+
*/
|
|
78
|
+
export declare function deliverShortfallFailureFeedback(v: Pick<PendingVerification, 'deliveryId' | 'deliveryName' | 'focusId'>, shortfalls: readonly TargetShortfall[], organizationId: string, deps?: Partial<VerificationFeedbackDeps>): Promise<{
|
|
79
|
+
gateWritten: boolean;
|
|
80
|
+
injected: boolean;
|
|
81
|
+
detail: ShortfallReconciliationDetail;
|
|
82
|
+
}>;
|
|
58
83
|
//# sourceMappingURL=verification-feedback.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification-feedback.d.ts","sourceRoot":"","sources":["../src/verification-feedback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAmB,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"verification-feedback.d.ts","sourceRoot":"","sources":["../src/verification-feedback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAmB,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,6BAA6B,EAClC,KAAK,yBAAyB,EAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAM/D,gFAAgF;AAChF,eAAO,MAAM,gCAAgC,+BAA+B,CAAC;AAE7E;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,oCAAoC,CAAC;AAEhF,6DAA6D;AAC7D,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,sFAAsF;IACtF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,yFAAyF;AACzF,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,yBAAyB,GAAG,iBAAiB,CAOtG;AAED,iGAAiG;AACjG,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,yBAAyB,GAAG,MAAM,CAsBzG;AAED,kFAAkF;AAClF,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5G,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,WAAW,EAAE,OAAO,WAAW,CAAC;IAChC,GAAG,EAAE,MAAM,MAAM,CAAC;CACnB;AAaD;;;;;GAKG;AACH,wBAAsB,kCAAkC,CACtD,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,YAAY,GAAG,cAAc,GAAG,SAAS,CAAC,EACvE,MAAM,EAAE,yBAAyB,EACjC,cAAc,EAAE,MAAM,EACtB,IAAI,GAAE,OAAO,CAAC,wBAAwB,CAAM,GAC3C,OAAO,CAAC;IAAE,WAAW,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,yBAAyB,CAAA;CAAE,CAAC,CAsCzF;AAMD,qGAAqG;AACrG,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,6BAA6B,GAAG,iBAAiB,CAOhG;AAED,sGAAsG;AACtG,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,6BAA6B,GACpC,MAAM,CAoBR;AAED;;;;;;GAMG;AACH,wBAAsB,+BAA+B,CACnD,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,YAAY,GAAG,cAAc,GAAG,SAAS,CAAC,EACvE,UAAU,EAAE,SAAS,eAAe,EAAE,EACtC,cAAc,EAAE,MAAM,EACtB,IAAI,GAAE,OAAO,CAAC,wBAAwB,CAAM,GAC3C,OAAO,CAAC;IAAE,WAAW,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,6BAA6B,CAAA;CAAE,CAAC,CAqC7F"}
|
|
@@ -23,6 +23,14 @@ import { createLogger } from './log.js';
|
|
|
23
23
|
const log = createLogger({ module: 'verification' });
|
|
24
24
|
/** gate_state guard name a deterministic verification failure reports under. */
|
|
25
25
|
export const DETERMINISTIC_VERIFICATION_GUARD = 'deterministic_verification';
|
|
26
|
+
/**
|
|
27
|
+
* gate_state guard name a verify-SHORTFALL reconciliation hold reports under.
|
|
28
|
+
* Distinct from the deterministic guard: a shortfall hold means the declared
|
|
29
|
+
* desired effect was not realized by the diff, NOT that a shell command failed.
|
|
30
|
+
* A reader must never see this conflated with a passed:false
|
|
31
|
+
* deterministic_verification whose exitCode is 0.
|
|
32
|
+
*/
|
|
33
|
+
export const SHORTFALL_RECONCILIATION_GUARD = 'verify_shortfall_reconciliation';
|
|
26
34
|
/** Build the gate_state for a failed deterministic run. Pure -- exported for testing. */
|
|
27
35
|
export function buildVerificationFailureGateState(detail) {
|
|
28
36
|
return {
|
|
@@ -109,4 +117,78 @@ export async function deliverVerificationFailureFeedback(v, result, organization
|
|
|
109
117
|
}
|
|
110
118
|
return { gateWritten, injected, detail };
|
|
111
119
|
}
|
|
120
|
+
// ---------------------------------------------------------------------------
|
|
121
|
+
// Shortfall-reconciliation gate hold (distinct origin from a deterministic run)
|
|
122
|
+
// ---------------------------------------------------------------------------
|
|
123
|
+
/** Build the gate_state for a verify-shortfall reconciliation hold. Pure -- exported for testing. */
|
|
124
|
+
export function buildShortfallGateState(detail) {
|
|
125
|
+
return {
|
|
126
|
+
blocking: [{ guardName: SHORTFALL_RECONCILIATION_GUARD, passed: false }],
|
|
127
|
+
warnings: [],
|
|
128
|
+
evaluatedAt: detail.heldAt,
|
|
129
|
+
shortfallReconciliation: detail,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
/** Build the message injected into a live team for a shortfall hold. Pure -- exported for testing. */
|
|
133
|
+
export function buildShortfallInjectMessage(deliveryName, detail) {
|
|
134
|
+
const lines = [
|
|
135
|
+
`VERIFY HELD for delivery "${deliveryName}": the achieved outcome falls short of the declared desired effect.`,
|
|
136
|
+
'',
|
|
137
|
+
'This is NOT a failing-test failure -- the deterministic check is not the blocker. The verify ' +
|
|
138
|
+
'reconciliation compared what your diff delivered against the declared intent for each targeted ' +
|
|
139
|
+
'node and found a gap. Close the gap in the diff, then commit.',
|
|
140
|
+
'',
|
|
141
|
+
`Declared-vs-achieved gap(s) (${detail.shortfalls.length}):`,
|
|
142
|
+
];
|
|
143
|
+
for (const s of detail.shortfalls) {
|
|
144
|
+
lines.push(`- node ${s.nodeId}`, ` declared: ${s.declared}`, ` achieved: ${s.achieved}`, ` shortfall: ${s.reason}`);
|
|
145
|
+
if (s.diffCitation)
|
|
146
|
+
lines.push(` diff citation: ${s.diffCitation}`);
|
|
147
|
+
}
|
|
148
|
+
return lines.join('\n');
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Deliver failure feedback for a verify-SHORTFALL reconciliation hold: write
|
|
152
|
+
* gate_state under the shortfall guard (never the deterministic guard) and
|
|
153
|
+
* inject the declared-vs-achieved gap into the live coding team when one is
|
|
154
|
+
* running. Best-effort throughout -- a feedback failure must never crash the
|
|
155
|
+
* verification tick.
|
|
156
|
+
*/
|
|
157
|
+
export async function deliverShortfallFailureFeedback(v, shortfalls, organizationId, deps = {}) {
|
|
158
|
+
const d = { ...defaultDeps(), ...deps };
|
|
159
|
+
const detail = {
|
|
160
|
+
heldAt: d.now(),
|
|
161
|
+
shortfalls: shortfalls.map((s) => ({
|
|
162
|
+
nodeId: s.nodeId,
|
|
163
|
+
declared: s.declaredStatement,
|
|
164
|
+
achieved: s.achievedStatement,
|
|
165
|
+
reason: s.reason,
|
|
166
|
+
...(s.diffCitation ? { diffCitation: s.diffCitation } : {}),
|
|
167
|
+
})),
|
|
168
|
+
};
|
|
169
|
+
const gateState = buildShortfallGateState(detail);
|
|
170
|
+
let gateWritten = false;
|
|
171
|
+
try {
|
|
172
|
+
await d.writeGateState(v.deliveryId, gateState, organizationId);
|
|
173
|
+
gateWritten = true;
|
|
174
|
+
}
|
|
175
|
+
catch (err) {
|
|
176
|
+
log.warn(`failed to write shortfall gate_state for delivery ${v.deliveryId}:`, err.message);
|
|
177
|
+
}
|
|
178
|
+
let injected = false;
|
|
179
|
+
if (v.focusId) {
|
|
180
|
+
const team = d.getActiveTeams().get(v.focusId);
|
|
181
|
+
// Do not retask a live review team (parity with directive inject guard).
|
|
182
|
+
if (team && team.leadStdin && team.sessionType !== 'review') {
|
|
183
|
+
try {
|
|
184
|
+
d.sendMessage(team.leadStdin, buildShortfallInjectMessage(v.deliveryName, detail));
|
|
185
|
+
injected = true;
|
|
186
|
+
}
|
|
187
|
+
catch (err) {
|
|
188
|
+
log.warn(`failed to inject shortfall hold to team ${v.focusId}:`, err.message);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
return { gateWritten, injected, detail };
|
|
193
|
+
}
|
|
112
194
|
//# sourceMappingURL=verification-feedback.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification-feedback.js","sourceRoot":"","sources":["../src/verification-feedback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EACL,oBAAoB,
|
|
1
|
+
{"version":3,"file":"verification-feedback.js","sourceRoot":"","sources":["../src/verification-feedback.ts"],"names":[],"mappings":"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"}
|