@telora/daemon 0.17.64 → 0.17.75
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 +8 -3
- package/dist/cascade-restatement.d.ts +7 -0
- package/dist/cascade-restatement.d.ts.map +1 -1
- package/dist/cascade-restatement.js +52 -3
- package/dist/cascade-restatement.js.map +1 -1
- package/dist/cli/backfill-frt-prose.d.ts +25 -13
- package/dist/cli/backfill-frt-prose.d.ts.map +1 -1
- package/dist/cli/backfill-frt-prose.js +45 -41
- package/dist/cli/backfill-frt-prose.js.map +1 -1
- package/dist/completion/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.js +31 -5
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/completion/status-advance-phase.d.ts.map +1 -1
- package/dist/completion/status-advance-phase.js +46 -13
- package/dist/completion/status-advance-phase.js.map +1 -1
- package/dist/delivery-lifecycle.d.ts.map +1 -1
- package/dist/delivery-lifecycle.js +40 -0
- package/dist/delivery-lifecycle.js.map +1 -1
- package/dist/delivery-reconciler-apply.d.ts +85 -0
- package/dist/delivery-reconciler-apply.d.ts.map +1 -0
- package/dist/delivery-reconciler-apply.js +80 -0
- package/dist/delivery-reconciler-apply.js.map +1 -0
- package/dist/delivery-reconciler-shadow.d.ts +65 -0
- package/dist/delivery-reconciler-shadow.d.ts.map +1 -0
- package/dist/delivery-reconciler-shadow.js +127 -0
- package/dist/delivery-reconciler-shadow.js.map +1 -0
- package/dist/delivery-reconciler.d.ts +133 -0
- package/dist/delivery-reconciler.d.ts.map +1 -0
- package/dist/delivery-reconciler.js +160 -0
- package/dist/delivery-reconciler.js.map +1 -0
- package/dist/focus-executor.d.ts +9 -0
- package/dist/focus-executor.d.ts.map +1 -1
- package/dist/focus-executor.js +10 -1
- package/dist/focus-executor.js.map +1 -1
- package/dist/listener-auto-advance.d.ts.map +1 -1
- package/dist/listener-auto-advance.js +65 -31
- package/dist/listener-auto-advance.js.map +1 -1
- package/dist/listener.d.ts.map +1 -1
- package/dist/listener.js +29 -3
- package/dist/listener.js.map +1 -1
- package/dist/nexus-return.d.ts +52 -0
- package/dist/nexus-return.d.ts.map +1 -1
- package/dist/nexus-return.js +135 -2
- package/dist/nexus-return.js.map +1 -1
- package/dist/queries/deliveries.d.ts +12 -0
- package/dist/queries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries.js +9 -0
- package/dist/queries/deliveries.js.map +1 -1
- package/dist/queries/index.d.ts +1 -1
- package/dist/queries/index.d.ts.map +1 -1
- package/dist/queries/index.js +1 -1
- package/dist/queries/index.js.map +1 -1
- package/dist/queries/schemas.d.ts +2 -0
- package/dist/queries/schemas.d.ts.map +1 -1
- package/dist/queries/schemas.js +5 -0
- package/dist/queries/schemas.js.map +1 -1
- package/dist/retire-aware-restatement.d.ts +83 -0
- package/dist/retire-aware-restatement.d.ts.map +1 -0
- package/dist/retire-aware-restatement.js +137 -0
- package/dist/retire-aware-restatement.js.map +1 -0
- package/dist/supabase.d.ts +1 -1
- package/dist/supabase.d.ts.map +1 -1
- package/dist/supabase.js +1 -1
- package/dist/supabase.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 +6 -0
- package/dist/templates/claude-md.js.map +1 -1
- package/package.json +3 -3
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
import { filterWorkIssues, filterContextGroups, TERMINAL_ISSUE_STATUSES, planDeliveryCloseSweep } from '../constants.js';
|
|
13
13
|
import { getDeliveryIssues, getDeliverySessionCount, updateIssueStatus, fetchEffectiveWorkflow, updateDeliveryStatus, } from '../supabase.js';
|
|
14
14
|
import { advanceDeliveryStage, ensureWorktreeCommittedBeforeAdvance } from '../delivery-lifecycle.js';
|
|
15
|
+
import { resolveReconciledWrite } from '../delivery-reconciler-apply.js';
|
|
15
16
|
import { DELIVERY_STATUS } from '@telora/daemon-core';
|
|
16
17
|
import { emitLoopTrigger } from '../loop-event-bus.js';
|
|
17
18
|
import { getFocusDeliveries } from '../queries/focuses.js';
|
|
@@ -77,20 +78,36 @@ export async function advanceDeliveryStatuses(config, teamState, sessionId, deps
|
|
|
77
78
|
console.warn(`[focus-executor] Delivery ${delivery.id}: no workflow stage ID, skipping advance`);
|
|
78
79
|
continue;
|
|
79
80
|
}
|
|
80
|
-
|
|
81
|
+
const reconcilerIssues = issues.map(i => ({ status: i.status, issueType: i.issueType }));
|
|
82
|
+
// Re-queue deliveries with open work issues so the next team picks them up.
|
|
83
|
+
// Routed through the single-writer reconciler (coding/verify_failed + open
|
|
84
|
+
// work -> queued); the legacy re-queue target is queued.
|
|
81
85
|
if (totalWork > 0 && openCount > 0) {
|
|
82
86
|
// Already queued — leave it there
|
|
83
87
|
if (delivery.executionStatus === DELIVERY_STATUS.QUEUED) {
|
|
84
88
|
continue;
|
|
85
89
|
}
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
90
|
+
const requeue = resolveReconciledWrite({
|
|
91
|
+
site: 'completion',
|
|
92
|
+
deliveryId: delivery.id,
|
|
93
|
+
deliveryName: delivery.name,
|
|
94
|
+
legacyTarget: DELIVERY_STATUS.QUEUED,
|
|
95
|
+
input: {
|
|
96
|
+
currentStatus: (delivery.executionStatus ?? ''),
|
|
97
|
+
issues: reconcilerIssues,
|
|
98
|
+
gitState: { worktreeCommitted: true },
|
|
99
|
+
guardVerdict: null,
|
|
100
|
+
reviewState: null,
|
|
101
|
+
},
|
|
102
|
+
});
|
|
103
|
+
const requeueStage = workflow.stages.find(s => s.name === requeue.target);
|
|
104
|
+
if (requeueStage) {
|
|
105
|
+
console.log(`[focus-executor] Delivery ${delivery.id}: ${openCount}/${totalWork} work issues still open, re-queuing -> ${requeue.target}`);
|
|
106
|
+
await deps.updateDeliveryStatus(delivery.id, requeue.target, requeueStage.id, undefined, undefined, { organizationId: teamState.organizationId, fromStatus: delivery.executionStatus });
|
|
107
|
+
teamState.deliveryStageIds.set(delivery.id, requeueStage.id);
|
|
91
108
|
}
|
|
92
109
|
else {
|
|
93
|
-
console.warn(`[focus-executor] Delivery ${delivery.id}: ${openCount}/${totalWork} work issues still open, no
|
|
110
|
+
console.warn(`[focus-executor] Delivery ${delivery.id}: ${openCount}/${totalWork} work issues still open, no ${requeue.target} stage in workflow — leaving in ${delivery.executionStatus}`);
|
|
94
111
|
}
|
|
95
112
|
continue;
|
|
96
113
|
}
|
|
@@ -128,12 +145,28 @@ export async function advanceDeliveryStatuses(config, teamState, sessionId, deps
|
|
|
128
145
|
// the delivery's current status, but becomes 'coding' once we step there.
|
|
129
146
|
let effectiveFromStatus = delivery.executionStatus ?? null;
|
|
130
147
|
if (delivery.executionStatus === DELIVERY_STATUS.QUEUED || delivery.executionStatus === DELIVERY_STATUS.VERIFY_FAILED) {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
148
|
+
// Step queued / verify_failed -> coding before the guarded verify
|
|
149
|
+
// advance. Routed through the single-writer reconciler (which steps to
|
|
150
|
+
// coding before advancing); the legacy step target is coding.
|
|
151
|
+
const step = resolveReconciledWrite({
|
|
152
|
+
site: 'completion',
|
|
153
|
+
deliveryId: delivery.id,
|
|
154
|
+
deliveryName: delivery.name,
|
|
155
|
+
legacyTarget: DELIVERY_STATUS.CODING,
|
|
156
|
+
input: {
|
|
157
|
+
currentStatus: delivery.executionStatus,
|
|
158
|
+
issues: reconcilerIssues,
|
|
159
|
+
gitState: { worktreeCommitted: true },
|
|
160
|
+
guardVerdict: null,
|
|
161
|
+
reviewState: null,
|
|
162
|
+
},
|
|
163
|
+
});
|
|
164
|
+
const stepStage = workflow.stages.find(s => s.name === step.target);
|
|
165
|
+
if (stepStage) {
|
|
166
|
+
console.log(`[focus-executor] Delivery ${delivery.id}: stepping ${delivery.executionStatus} -> ${step.target} before verify advance`);
|
|
167
|
+
await deps.updateDeliveryStatus(delivery.id, step.target, stepStage.id, undefined, undefined, { organizationId: teamState.organizationId, fromStatus: delivery.executionStatus });
|
|
168
|
+
effectiveStageId = stepStage.id;
|
|
169
|
+
effectiveFromStatus = step.target;
|
|
137
170
|
}
|
|
138
171
|
}
|
|
139
172
|
console.log(`[focus-executor] Delivery ${delivery.id}: ${totalWork === 0 ? 'no issues' : `all ${totalWork} work issues done`}, advancing via workflow`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-advance-phase.js","sourceRoot":"","sources":["../../src/completion/status-advance-phase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzH,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,oCAAoC,EAAE,MAAM,0BAA0B,CAAC;AAEtG,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"status-advance-phase.js","sourceRoot":"","sources":["../../src/completion/status-advance-phase.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery-lifecycle.d.ts","sourceRoot":"","sources":["../src/delivery-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAChG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"delivery-lifecycle.d.ts","sourceRoot":"","sources":["../src/delivery-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ import { runGitSync, getMergeWorktreePath } from './git-types.js';
|
|
|
17
17
|
import { getStageByName, determineTransition } from './workflow-engine.js';
|
|
18
18
|
import { evaluateGuardsAtTransition, executeTriggers, GuardEvaluationError } from './guard-engine.js';
|
|
19
19
|
import { withRetry, ESCALATION_REASONS, ESCALATION_DISPOSITIONS, DELIVERY_STATUS } from '@telora/daemon-core';
|
|
20
|
+
import { resolveReconciledWrite } from './delivery-reconciler-apply.js';
|
|
20
21
|
import { recordFocusMerge } from './queries/deliveries.js';
|
|
21
22
|
import { getFocusWorktree } from './focus-worktree-state.js';
|
|
22
23
|
import { deriveCompletionArtifactsFromWorktree } from './delivery-artifacts.js';
|
|
@@ -156,6 +157,45 @@ export async function advanceDeliveryStage(params) {
|
|
|
156
157
|
deliveryStatus = queuedStage?.name ?? DELIVERY_STATUS.QUEUED;
|
|
157
158
|
deliveryStageId = queuedStage?.id;
|
|
158
159
|
}
|
|
160
|
+
// Single-writer reconciler self-check + authority. advanceDeliveryStage is the
|
|
161
|
+
// guarded graph writer for coding -> verify/paused (and the re-queue fallback);
|
|
162
|
+
// the reconciler models exactly this from (currentStatus, all-done, committed,
|
|
163
|
+
// guardVerdict). We run it for the reconciler-driven from-statuses, log any
|
|
164
|
+
// [reconciler-divergence], and (flag-gated, default-ON) write the reconciler's
|
|
165
|
+
// target. In parity the target equals the legacy decision, so this is a no-op;
|
|
166
|
+
// worktree-commit safety still ran on the daemon path before this call. The
|
|
167
|
+
// verify -> done routing is owned by the review-exit path, not advanceDeliveryStage,
|
|
168
|
+
// so verify is intentionally excluded here.
|
|
169
|
+
const RECONCILER_FROM = new Set([
|
|
170
|
+
DELIVERY_STATUS.CODING, DELIVERY_STATUS.QUEUED, DELIVERY_STATUS.VERIFY_FAILED,
|
|
171
|
+
]);
|
|
172
|
+
if (fromStatus && RECONCILER_FROM.has(fromStatus)) {
|
|
173
|
+
// Synthesize the predicate inputs the reconciler needs from openIssueCount.
|
|
174
|
+
const syntheticIssues = openIssueCount > 0
|
|
175
|
+
? [{ status: 'Done', issueType: 'Task' }, { status: 'In Progress', issueType: 'Task' }]
|
|
176
|
+
: [{ status: 'Done', issueType: 'Task' }];
|
|
177
|
+
const decision = resolveReconciledWrite({
|
|
178
|
+
site: 'advance-stage',
|
|
179
|
+
deliveryId,
|
|
180
|
+
deliveryName,
|
|
181
|
+
legacyTarget: deliveryStatus,
|
|
182
|
+
input: {
|
|
183
|
+
currentStatus: fromStatus,
|
|
184
|
+
issues: syntheticIssues,
|
|
185
|
+
// Worktree-commit safety is enforced by ensureWorktreeCommittedBeforeAdvance
|
|
186
|
+
// before this call; by here the worktree is committed.
|
|
187
|
+
gitState: { worktreeCommitted: true },
|
|
188
|
+
guardVerdict: { blocked: guardBlocked },
|
|
189
|
+
reviewState: null,
|
|
190
|
+
},
|
|
191
|
+
});
|
|
192
|
+
if (decision.target !== deliveryStatus) {
|
|
193
|
+
deliveryStatus = decision.target;
|
|
194
|
+
deliveryStageId = decision.target === DELIVERY_STATUS.PAUSED
|
|
195
|
+
? currentStageId
|
|
196
|
+
: getStageByName(workflow, decision.target)?.id ?? deliveryStageId;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
159
199
|
// Surface the gate state: populate when guards blocked so the UI can
|
|
160
200
|
// explain "waiting on" without an escalation; clear (null) on successful
|
|
161
201
|
// advance so stale entries don't haunt the row.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery-lifecycle.js","sourceRoot":"","sources":["../src/delivery-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"delivery-lifecycle.js","sourceRoot":"","sources":["../src/delivery-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Activation layer for the single-writer delivery reconciler.
|
|
3
|
+
*
|
|
4
|
+
* Delivery 4 of the Delivery Execution Pathway Consolidation focus (reality-tree
|
|
5
|
+
* injection #10). This is the step that makes the pure reconciler
|
|
6
|
+
* (delivery-reconciler.ts) the DECISION AUTHORITY for every daemon
|
|
7
|
+
* execution_status write, with the two safety properties the focus method
|
|
8
|
+
* (characterize -> shadow -> flip, reversible) requires:
|
|
9
|
+
*
|
|
10
|
+
* 1. Runtime self-check (replaces the manual prod shadow-observation gate).
|
|
11
|
+
* Each write site still computes what the legacy ("old path") logic would
|
|
12
|
+
* have written; `resolveReconciledWrite` compares that to the reconciler's
|
|
13
|
+
* target and logs `[reconciler-divergence]` on any mismatch. The retained
|
|
14
|
+
* legacy computation is exactly what lets prod self-verify the reconciler
|
|
15
|
+
* against the prior behavior for one release -- no maintenance-window or
|
|
16
|
+
* manual shadow observation needed.
|
|
17
|
+
*
|
|
18
|
+
* 2. Reversibility. A single switch, `TELORA_RECONCILER_WRITE`, DEFAULT-ON,
|
|
19
|
+
* selects whose decision is WRITTEN: ON -> the reconciler; OFF -> the
|
|
20
|
+
* retained legacy target. Flip to '0'/'off'/'false'/'no' (and restart) to
|
|
21
|
+
* revert instantly; the whole consolidation also reverts as one merge.
|
|
22
|
+
*
|
|
23
|
+
* Why activation is safe (suite stays green by construction): the reconciler was
|
|
24
|
+
* built (Delivery 3) to MIRROR the live writers and proven so by the Delivery 2
|
|
25
|
+
* parity tests. So in every characterized case `result.target === legacyTarget`
|
|
26
|
+
* -- the write is byte-identical and the characterization suite stays green. The
|
|
27
|
+
* self-check exists to catch any UN-characterized prod case where they differ.
|
|
28
|
+
*
|
|
29
|
+
* The single shared "issues are done" predicate (areDeliveryIssuesDone) and the
|
|
30
|
+
* agreed terminal set live in delivery-reconciler.ts. The agreed set is
|
|
31
|
+
* {Done, Verified, In Review} (OPEN = {To Do, In Progress, Blocked}); the
|
|
32
|
+
* divergent Postgres literal-Done predicate is removed in Delivery 5.
|
|
33
|
+
*/
|
|
34
|
+
import { type ReconcileInput, type ReconcileResult } from './delivery-reconciler.js';
|
|
35
|
+
import type { ExecutionStatus } from '@telora/daemon-core';
|
|
36
|
+
/** Reversibility switch. DEFAULT-ON (opt-out), unlike the shadow's opt-in flag. */
|
|
37
|
+
export declare const RECONCILER_WRITE_ENV = "TELORA_RECONCILER_WRITE";
|
|
38
|
+
/**
|
|
39
|
+
* Whether the reconciler's decision is the one WRITTEN. DEFAULT-ON: unset / ''
|
|
40
|
+
* / any value other than the explicit off-tokens enables it. Only
|
|
41
|
+
* '0'/'off'/'false'/'no' (case-insensitive) revert to writing the legacy target.
|
|
42
|
+
*
|
|
43
|
+
* This mirrors the opt-OUT semantics of shouldRunLoop (undefined/'' -> on,
|
|
44
|
+
* '0' -> off) rather than the shadow harness's opt-IN, because the reconciler is
|
|
45
|
+
* the intended default writer after this delivery -- reverting is the exception.
|
|
46
|
+
*/
|
|
47
|
+
export declare function reconcilerWriteEnabled(env?: NodeJS.ProcessEnv): boolean;
|
|
48
|
+
export interface ReconciledWriteDecision {
|
|
49
|
+
/**
|
|
50
|
+
* The status the caller should WRITE: the reconciler's target when the switch
|
|
51
|
+
* is ON (default), otherwise the retained legacy target.
|
|
52
|
+
*/
|
|
53
|
+
target: ExecutionStatus;
|
|
54
|
+
/** The reconciler's computed result -- always present, regardless of the switch. */
|
|
55
|
+
result: ReconcileResult;
|
|
56
|
+
/** Whether the reconciler's target differs from the legacy target. */
|
|
57
|
+
diverged: boolean;
|
|
58
|
+
/** Whether the reconciler's decision is the one being written (the switch state). */
|
|
59
|
+
reconcilerAuthoritative: boolean;
|
|
60
|
+
}
|
|
61
|
+
export interface ResolveReconciledWriteParams {
|
|
62
|
+
/** Short site label for the divergence log (e.g. 'auto-advance', 'completion'). */
|
|
63
|
+
site: string;
|
|
64
|
+
deliveryId: string;
|
|
65
|
+
deliveryName: string;
|
|
66
|
+
/** The full signal for the reconciler. currentStatus is the status at THIS step. */
|
|
67
|
+
input: ReconcileInput;
|
|
68
|
+
/** What the legacy/old-path code decided to write for this same step. */
|
|
69
|
+
legacyTarget: ExecutionStatus;
|
|
70
|
+
}
|
|
71
|
+
export interface ReconciledWriteDeps {
|
|
72
|
+
/** Divergence sink. Defaults to console.log; injected in tests for capture. */
|
|
73
|
+
log?: (message: string) => void;
|
|
74
|
+
/** Switch state. Defaults to reconcilerWriteEnabled(); injected in tests. */
|
|
75
|
+
writeEnabled?: () => boolean;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Decide what status to write for one transition step, with the runtime
|
|
79
|
+
* self-check. Single-step: callers that walk multiple steps in one pass
|
|
80
|
+
* (e.g. queued -> coding -> verify) call this once per actual write, keying
|
|
81
|
+
* `input.currentStatus` + `legacyTarget` to that step, so the reconciler's
|
|
82
|
+
* single-step decision and the legacy step correspond 1:1.
|
|
83
|
+
*/
|
|
84
|
+
export declare function resolveReconciledWrite(params: ResolveReconciledWriteParams, deps?: ReconciledWriteDeps): ReconciledWriteDecision;
|
|
85
|
+
//# sourceMappingURL=delivery-reconciler-apply.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-reconciler-apply.d.ts","sourceRoot":"","sources":["../src/delivery-reconciler-apply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,eAAe,EACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,mFAAmF;AACnF,eAAO,MAAM,oBAAoB,4BAA4B,CAAC;AAE9D;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAMpF;AAED,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,MAAM,EAAE,eAAe,CAAC;IACxB,oFAAoF;IACpF,MAAM,EAAE,eAAe,CAAC;IACxB,sEAAsE;IACtE,QAAQ,EAAE,OAAO,CAAC;IAClB,qFAAqF;IACrF,uBAAuB,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,4BAA4B;IAC3C,mFAAmF;IACnF,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,KAAK,EAAE,cAAc,CAAC;IACtB,yEAAyE;IACzE,YAAY,EAAE,eAAe,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,+EAA+E;IAC/E,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,4BAA4B,EACpC,IAAI,GAAE,mBAAwB,GAC7B,uBAAuB,CAsBzB"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Activation layer for the single-writer delivery reconciler.
|
|
3
|
+
*
|
|
4
|
+
* Delivery 4 of the Delivery Execution Pathway Consolidation focus (reality-tree
|
|
5
|
+
* injection #10). This is the step that makes the pure reconciler
|
|
6
|
+
* (delivery-reconciler.ts) the DECISION AUTHORITY for every daemon
|
|
7
|
+
* execution_status write, with the two safety properties the focus method
|
|
8
|
+
* (characterize -> shadow -> flip, reversible) requires:
|
|
9
|
+
*
|
|
10
|
+
* 1. Runtime self-check (replaces the manual prod shadow-observation gate).
|
|
11
|
+
* Each write site still computes what the legacy ("old path") logic would
|
|
12
|
+
* have written; `resolveReconciledWrite` compares that to the reconciler's
|
|
13
|
+
* target and logs `[reconciler-divergence]` on any mismatch. The retained
|
|
14
|
+
* legacy computation is exactly what lets prod self-verify the reconciler
|
|
15
|
+
* against the prior behavior for one release -- no maintenance-window or
|
|
16
|
+
* manual shadow observation needed.
|
|
17
|
+
*
|
|
18
|
+
* 2. Reversibility. A single switch, `TELORA_RECONCILER_WRITE`, DEFAULT-ON,
|
|
19
|
+
* selects whose decision is WRITTEN: ON -> the reconciler; OFF -> the
|
|
20
|
+
* retained legacy target. Flip to '0'/'off'/'false'/'no' (and restart) to
|
|
21
|
+
* revert instantly; the whole consolidation also reverts as one merge.
|
|
22
|
+
*
|
|
23
|
+
* Why activation is safe (suite stays green by construction): the reconciler was
|
|
24
|
+
* built (Delivery 3) to MIRROR the live writers and proven so by the Delivery 2
|
|
25
|
+
* parity tests. So in every characterized case `result.target === legacyTarget`
|
|
26
|
+
* -- the write is byte-identical and the characterization suite stays green. The
|
|
27
|
+
* self-check exists to catch any UN-characterized prod case where they differ.
|
|
28
|
+
*
|
|
29
|
+
* The single shared "issues are done" predicate (areDeliveryIssuesDone) and the
|
|
30
|
+
* agreed terminal set live in delivery-reconciler.ts. The agreed set is
|
|
31
|
+
* {Done, Verified, In Review} (OPEN = {To Do, In Progress, Blocked}); the
|
|
32
|
+
* divergent Postgres literal-Done predicate is removed in Delivery 5.
|
|
33
|
+
*/
|
|
34
|
+
import { reconcileDeliveryStatus, } from './delivery-reconciler.js';
|
|
35
|
+
/** Reversibility switch. DEFAULT-ON (opt-out), unlike the shadow's opt-in flag. */
|
|
36
|
+
export const RECONCILER_WRITE_ENV = 'TELORA_RECONCILER_WRITE';
|
|
37
|
+
/**
|
|
38
|
+
* Whether the reconciler's decision is the one WRITTEN. DEFAULT-ON: unset / ''
|
|
39
|
+
* / any value other than the explicit off-tokens enables it. Only
|
|
40
|
+
* '0'/'off'/'false'/'no' (case-insensitive) revert to writing the legacy target.
|
|
41
|
+
*
|
|
42
|
+
* This mirrors the opt-OUT semantics of shouldRunLoop (undefined/'' -> on,
|
|
43
|
+
* '0' -> off) rather than the shadow harness's opt-IN, because the reconciler is
|
|
44
|
+
* the intended default writer after this delivery -- reverting is the exception.
|
|
45
|
+
*/
|
|
46
|
+
export function reconcilerWriteEnabled(env = process.env) {
|
|
47
|
+
const raw = env[RECONCILER_WRITE_ENV];
|
|
48
|
+
if (raw === undefined)
|
|
49
|
+
return true;
|
|
50
|
+
const v = raw.trim().toLowerCase();
|
|
51
|
+
if (v === '')
|
|
52
|
+
return true;
|
|
53
|
+
return !['0', 'off', 'false', 'no'].includes(v);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Decide what status to write for one transition step, with the runtime
|
|
57
|
+
* self-check. Single-step: callers that walk multiple steps in one pass
|
|
58
|
+
* (e.g. queued -> coding -> verify) call this once per actual write, keying
|
|
59
|
+
* `input.currentStatus` + `legacyTarget` to that step, so the reconciler's
|
|
60
|
+
* single-step decision and the legacy step correspond 1:1.
|
|
61
|
+
*/
|
|
62
|
+
export function resolveReconciledWrite(params, deps = {}) {
|
|
63
|
+
const log = deps.log ?? ((m) => console.log(m));
|
|
64
|
+
const writeEnabled = (deps.writeEnabled ?? reconcilerWriteEnabled)();
|
|
65
|
+
const result = reconcileDeliveryStatus(params.input);
|
|
66
|
+
const diverged = result.target !== params.legacyTarget;
|
|
67
|
+
if (diverged) {
|
|
68
|
+
log(`[reconciler-divergence] site=${params.site} delivery=${params.deliveryId} ` +
|
|
69
|
+
`("${params.deliveryName}") legacy=${params.legacyTarget} ` +
|
|
70
|
+
`reconciled=${result.target} canonical=${result.canonical} ` +
|
|
71
|
+
`reason="${result.reason}"`);
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
target: writeEnabled ? result.target : params.legacyTarget,
|
|
75
|
+
result,
|
|
76
|
+
diverged,
|
|
77
|
+
reconcilerAuthoritative: writeEnabled,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=delivery-reconciler-apply.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-reconciler-apply.js","sourceRoot":"","sources":["../src/delivery-reconciler-apply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EACL,uBAAuB,GAGxB,MAAM,0BAA0B,CAAC;AAGlC,mFAAmF;AACnF,MAAM,CAAC,MAAM,oBAAoB,GAAG,yBAAyB,CAAC;AAE9D;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACzE,MAAM,GAAG,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACtC,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACnC,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAkCD;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAoC,EACpC,OAA4B,EAAE;IAE9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,sBAAsB,CAAC,EAAE,CAAC;IAErE,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,YAAY,CAAC;IAEvD,IAAI,QAAQ,EAAE,CAAC;QACb,GAAG,CACD,gCAAgC,MAAM,CAAC,IAAI,aAAa,MAAM,CAAC,UAAU,GAAG;YAC1E,KAAK,MAAM,CAAC,YAAY,aAAa,MAAM,CAAC,YAAY,GAAG;YAC3D,cAAc,MAAM,CAAC,MAAM,cAAc,MAAM,CAAC,SAAS,GAAG;YAC5D,WAAW,MAAM,CAAC,MAAM,GAAG,CAC9B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY;QAC1D,MAAM;QACN,QAAQ;QACR,uBAAuB,EAAE,YAAY;KACtC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shadow harness for the single-writer delivery reconciler.
|
|
3
|
+
*
|
|
4
|
+
* Delivery 3 (single-writer reconciler, shadow mode) of the Delivery Execution
|
|
5
|
+
* Pathway Consolidation focus (reality-tree injection #10). De-risking method:
|
|
6
|
+
* characterize -> SHADOW -> flip one transition at a time. This is the shadow
|
|
7
|
+
* step.
|
|
8
|
+
*
|
|
9
|
+
* On each poll, for every active focus's deliveries, this gathers the live
|
|
10
|
+
* signal (issue rollup, worktree-committed flag), runs the PURE
|
|
11
|
+
* reconcileDeliveryStatus(), compares its computed target to the delivery's
|
|
12
|
+
* LIVE execution_status, and LOGS every divergence. It makes ZERO writes to
|
|
13
|
+
* execution_status -- there is no status writer in its dependency surface by
|
|
14
|
+
* construction. When divergence holds steady at zero, the reconciler is safe to
|
|
15
|
+
* flip into the write path one transition at a time (Delivery 4).
|
|
16
|
+
*
|
|
17
|
+
* Default-OFF: unlike the focus/verification loops (opt-OUT via shouldRunLoop),
|
|
18
|
+
* the shadow is opt-IN. It runs only when TELORA_RECONCILER_SHADOW is a truthy
|
|
19
|
+
* value ('1'/'true'/etc); unset / '' / '0' keep it a no-op, so wiring it into
|
|
20
|
+
* the live poll changes nothing until an operator deliberately enables it.
|
|
21
|
+
*
|
|
22
|
+
* Poll-time signal note: at poll time there is no exiting review session, so the
|
|
23
|
+
* harness supplies a conservative review state (a verify delivery with no open
|
|
24
|
+
* work stays in verify -- matching what the live poll does; verify->done is
|
|
25
|
+
* driven by the review-exit path, not the poll). The transitions the shadow
|
|
26
|
+
* meaningfully exercises at poll time are the issue-rollup-driven ones
|
|
27
|
+
* (queued/coding/verify_failed) and verify->verify_failed on open work.
|
|
28
|
+
*/
|
|
29
|
+
import type { DaemonConfig } from './types.js';
|
|
30
|
+
import { getActiveFocuses, getDeliveryIssues } from './supabase.js';
|
|
31
|
+
import { getFocusDeliveries } from './queries/focuses.js';
|
|
32
|
+
import { getFocusWorktree } from './focus-worktree-state.js';
|
|
33
|
+
import { worktreeHasUncommittedChanges } from './worktree-safety.js';
|
|
34
|
+
/** Opt-in flag name. Default-OFF (only a truthy value enables the shadow). */
|
|
35
|
+
export declare const RECONCILER_SHADOW_ENV = "TELORA_RECONCILER_SHADOW";
|
|
36
|
+
/** Default-off opt-in: only '1'/'true'/'yes'/'on' (case-insensitive) enable. */
|
|
37
|
+
export declare function reconcilerShadowEnabled(env?: NodeJS.ProcessEnv): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Injectable collaborators. The surface is READ-ONLY by design: there is NO
|
|
40
|
+
* status-writer dependency, which is the structural guarantee that the shadow
|
|
41
|
+
* cannot mutate execution_status.
|
|
42
|
+
*/
|
|
43
|
+
export interface ReconcilerShadowDeps {
|
|
44
|
+
isEnabled: () => boolean;
|
|
45
|
+
getActiveFocuses: typeof getActiveFocuses;
|
|
46
|
+
getFocusDeliveries: typeof getFocusDeliveries;
|
|
47
|
+
getDeliveryIssues: typeof getDeliveryIssues;
|
|
48
|
+
getFocusWorktree: typeof getFocusWorktree;
|
|
49
|
+
worktreeHasUncommittedChanges: typeof worktreeHasUncommittedChanges;
|
|
50
|
+
/** Divergence sink. Defaults to console.log; injected in tests for capture. */
|
|
51
|
+
log: (message: string) => void;
|
|
52
|
+
}
|
|
53
|
+
export interface ReconcilerShadowSummary {
|
|
54
|
+
/** Whether the shadow actually ran (false when the flag is off). */
|
|
55
|
+
ran: boolean;
|
|
56
|
+
/** Number of deliveries whose live status was compared. */
|
|
57
|
+
checked: number;
|
|
58
|
+
/** Number where the reconciled target differed from the live status. */
|
|
59
|
+
divergences: number;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Run one shadow pass for a (product-scoped) config. Reads only; never writes.
|
|
63
|
+
*/
|
|
64
|
+
export declare function runReconcilerShadow(config: DaemonConfig, deps?: ReconcilerShadowDeps): Promise<ReconcilerShadowSummary>;
|
|
65
|
+
//# sourceMappingURL=delivery-reconciler-shadow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-reconciler-shadow.d.ts","sourceRoot":"","sources":["../src/delivery-reconciler-shadow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAKrE,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,6BAA6B,CAAC;AAEhE,gFAAgF;AAChF,wBAAgB,uBAAuB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAIrF;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,gBAAgB,CAAC;IAC1C,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IAC9C,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,gBAAgB,EAAE,OAAO,gBAAgB,CAAC;IAC1C,6BAA6B,EAAE,OAAO,6BAA6B,CAAC;IACpE,+EAA+E;IAC/E,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAYD,MAAM,WAAW,uBAAuB;IACtC,oEAAoE;IACpE,GAAG,EAAE,OAAO,CAAC;IACb,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,YAAY,EACpB,IAAI,GAAE,oBAAkC,GACvC,OAAO,CAAC,uBAAuB,CAAC,CA4ElC"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shadow harness for the single-writer delivery reconciler.
|
|
3
|
+
*
|
|
4
|
+
* Delivery 3 (single-writer reconciler, shadow mode) of the Delivery Execution
|
|
5
|
+
* Pathway Consolidation focus (reality-tree injection #10). De-risking method:
|
|
6
|
+
* characterize -> SHADOW -> flip one transition at a time. This is the shadow
|
|
7
|
+
* step.
|
|
8
|
+
*
|
|
9
|
+
* On each poll, for every active focus's deliveries, this gathers the live
|
|
10
|
+
* signal (issue rollup, worktree-committed flag), runs the PURE
|
|
11
|
+
* reconcileDeliveryStatus(), compares its computed target to the delivery's
|
|
12
|
+
* LIVE execution_status, and LOGS every divergence. It makes ZERO writes to
|
|
13
|
+
* execution_status -- there is no status writer in its dependency surface by
|
|
14
|
+
* construction. When divergence holds steady at zero, the reconciler is safe to
|
|
15
|
+
* flip into the write path one transition at a time (Delivery 4).
|
|
16
|
+
*
|
|
17
|
+
* Default-OFF: unlike the focus/verification loops (opt-OUT via shouldRunLoop),
|
|
18
|
+
* the shadow is opt-IN. It runs only when TELORA_RECONCILER_SHADOW is a truthy
|
|
19
|
+
* value ('1'/'true'/etc); unset / '' / '0' keep it a no-op, so wiring it into
|
|
20
|
+
* the live poll changes nothing until an operator deliberately enables it.
|
|
21
|
+
*
|
|
22
|
+
* Poll-time signal note: at poll time there is no exiting review session, so the
|
|
23
|
+
* harness supplies a conservative review state (a verify delivery with no open
|
|
24
|
+
* work stays in verify -- matching what the live poll does; verify->done is
|
|
25
|
+
* driven by the review-exit path, not the poll). The transitions the shadow
|
|
26
|
+
* meaningfully exercises at poll time are the issue-rollup-driven ones
|
|
27
|
+
* (queued/coding/verify_failed) and verify->verify_failed on open work.
|
|
28
|
+
*/
|
|
29
|
+
import { getActiveFocuses, getDeliveryIssues } from './supabase.js';
|
|
30
|
+
import { getFocusDeliveries } from './queries/focuses.js';
|
|
31
|
+
import { getFocusWorktree } from './focus-worktree-state.js';
|
|
32
|
+
import { worktreeHasUncommittedChanges } from './worktree-safety.js';
|
|
33
|
+
import { reconcileDeliveryStatus } from './delivery-reconciler.js';
|
|
34
|
+
import { isExecutionStatus } from '@telora/daemon-core';
|
|
35
|
+
/** Opt-in flag name. Default-OFF (only a truthy value enables the shadow). */
|
|
36
|
+
export const RECONCILER_SHADOW_ENV = 'TELORA_RECONCILER_SHADOW';
|
|
37
|
+
/** Default-off opt-in: only '1'/'true'/'yes'/'on' (case-insensitive) enable. */
|
|
38
|
+
export function reconcilerShadowEnabled(env = process.env) {
|
|
39
|
+
const raw = env[RECONCILER_SHADOW_ENV];
|
|
40
|
+
if (raw === undefined)
|
|
41
|
+
return false;
|
|
42
|
+
return ['1', 'true', 'yes', 'on'].includes(raw.trim().toLowerCase());
|
|
43
|
+
}
|
|
44
|
+
const defaultDeps = {
|
|
45
|
+
isEnabled: () => reconcilerShadowEnabled(),
|
|
46
|
+
getActiveFocuses,
|
|
47
|
+
getFocusDeliveries,
|
|
48
|
+
getDeliveryIssues,
|
|
49
|
+
getFocusWorktree,
|
|
50
|
+
worktreeHasUncommittedChanges,
|
|
51
|
+
log: (m) => console.log(m),
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Run one shadow pass for a (product-scoped) config. Reads only; never writes.
|
|
55
|
+
*/
|
|
56
|
+
export async function runReconcilerShadow(config, deps = defaultDeps) {
|
|
57
|
+
if (!deps.isEnabled()) {
|
|
58
|
+
return { ran: false, checked: 0, divergences: 0 };
|
|
59
|
+
}
|
|
60
|
+
let checked = 0;
|
|
61
|
+
let divergences = 0;
|
|
62
|
+
let focuses;
|
|
63
|
+
try {
|
|
64
|
+
focuses = await deps.getActiveFocuses(config.organizationId, config.productId);
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
deps.log(`[reconciler-shadow] failed to fetch active focuses: ${err.message}`);
|
|
68
|
+
return { ran: true, checked, divergences };
|
|
69
|
+
}
|
|
70
|
+
for (const focus of focuses) {
|
|
71
|
+
const reviewRequested = !!focus.review_requested_at;
|
|
72
|
+
let deliveries;
|
|
73
|
+
try {
|
|
74
|
+
deliveries = await deps.getFocusDeliveries(focus.focus_id);
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
deps.log(`[reconciler-shadow] failed to fetch deliveries for focus ${focus.focus_id}: ${err.message}`);
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
// Resolve the worktree-committed signal once per focus (one worktree per focus).
|
|
81
|
+
const worktree = deps.getFocusWorktree(focus.focus_id);
|
|
82
|
+
let worktreeCommitted = true; // no worktree => nothing uncommitted can block (matches the advance precheck)
|
|
83
|
+
if (worktree) {
|
|
84
|
+
try {
|
|
85
|
+
worktreeCommitted = !deps.worktreeHasUncommittedChanges(worktree.worktreePath);
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
// Best-effort: a git failure should not break the shadow; assume committed.
|
|
89
|
+
worktreeCommitted = true;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
for (const delivery of deliveries) {
|
|
93
|
+
const liveStatus = delivery.executionStatus ?? '';
|
|
94
|
+
if (!isExecutionStatus(liveStatus))
|
|
95
|
+
continue;
|
|
96
|
+
let issues;
|
|
97
|
+
try {
|
|
98
|
+
issues = await deps.getDeliveryIssues(delivery.id);
|
|
99
|
+
}
|
|
100
|
+
catch (err) {
|
|
101
|
+
deps.log(`[reconciler-shadow] failed to fetch issues for delivery ${delivery.id}: ${err.message}`);
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
const result = reconcileDeliveryStatus({
|
|
105
|
+
currentStatus: liveStatus,
|
|
106
|
+
issues: issues.map(i => ({ status: i.status, issueType: i.issueType })),
|
|
107
|
+
gitState: { worktreeCommitted },
|
|
108
|
+
guardVerdict: null,
|
|
109
|
+
// Poll-time review state: conservative. verify with no open work stays
|
|
110
|
+
// verify (verify->done is review-exit-driven, not poll-driven).
|
|
111
|
+
reviewState: { reviewRequested, reportExists: false, sessionType: 'coding', succeeded: false },
|
|
112
|
+
});
|
|
113
|
+
checked++;
|
|
114
|
+
if (result.changed) {
|
|
115
|
+
divergences++;
|
|
116
|
+
deps.log(`[reconciler-shadow] DIVERGENCE delivery=${delivery.id} ("${delivery.name}") ` +
|
|
117
|
+
`live=${liveStatus} reconciled=${result.target} ` +
|
|
118
|
+
`canonical=${result.canonical} reason="${result.reason}" (no write performed)`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (checked > 0) {
|
|
123
|
+
deps.log(`[reconciler-shadow] pass complete: ${checked} deliveries checked, ${divergences} divergence(s), 0 writes`);
|
|
124
|
+
}
|
|
125
|
+
return { ran: true, checked, divergences };
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=delivery-reconciler-shadow.js.map
|