@telora/daemon 0.22.290 → 0.22.306
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/README.md +2 -2
- package/build-info.json +2 -2
- package/dist/backends/index.js +1 -1
- package/dist/cli/connect/config-write.d.ts.map +1 -1
- package/dist/cli/connect/config-write.js +2 -1
- package/dist/cli/connect/config-write.js.map +1 -1
- package/dist/completion/review-exit/review-census-record.d.ts.map +1 -1
- package/dist/completion/review-exit/review-census-record.js +1 -0
- package/dist/completion/review-exit/review-census-record.js.map +1 -1
- package/dist/completion/review-exit/review-exit-deps.d.ts +1 -0
- package/dist/completion/review-exit/review-exit-deps.d.ts.map +1 -1
- package/dist/completion/review-exit/review-exit-phase.js +7 -4
- package/dist/completion/review-exit/review-exit-phase.js.map +1 -1
- package/dist/completion/review-exit-holds/review-exit-verdict-gate.d.ts +17 -1
- package/dist/completion/review-exit-holds/review-exit-verdict-gate.d.ts.map +1 -1
- package/dist/completion/review-exit-holds/review-exit-verdict-gate.js +21 -0
- package/dist/completion/review-exit-holds/review-exit-verdict-gate.js.map +1 -1
- package/dist/completion/state-cascade/standing-approval-convergence.d.ts +7 -2
- package/dist/completion/state-cascade/standing-approval-convergence.d.ts.map +1 -1
- package/dist/completion/state-cascade/standing-approval-convergence.js +56 -31
- package/dist/completion/state-cascade/standing-approval-convergence.js.map +1 -1
- package/dist/completion/state-cascade/standing-approval-stranded.d.ts +39 -0
- package/dist/completion/state-cascade/standing-approval-stranded.d.ts.map +1 -0
- package/dist/completion/state-cascade/standing-approval-stranded.js +142 -0
- package/dist/completion/state-cascade/standing-approval-stranded.js.map +1 -0
- package/dist/composition/commit-gate-context.d.ts.map +1 -1
- package/dist/composition/commit-gate-context.js +2 -1
- package/dist/composition/commit-gate-context.js.map +1 -1
- package/dist/composition/execution-spawn-context.d.ts.map +1 -1
- package/dist/composition/execution-spawn-context.js +1 -0
- package/dist/composition/execution-spawn-context.js.map +1 -1
- package/dist/composition/focus-activity-live-sources.d.ts.map +1 -1
- package/dist/composition/focus-activity-live-sources.js +3 -0
- package/dist/composition/focus-activity-live-sources.js.map +1 -1
- package/dist/composition/standing-approval-context.d.ts.map +1 -1
- package/dist/composition/standing-approval-context.js +2 -0
- package/dist/composition/standing-approval-context.js.map +1 -1
- package/dist/composition/verify-probe-context.d.ts +7 -0
- package/dist/composition/verify-probe-context.d.ts.map +1 -1
- package/dist/composition/verify-probe-context.js +55 -3
- package/dist/composition/verify-probe-context.js.map +1 -1
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +4 -3
- package/dist/config/config.js.map +1 -1
- package/dist/config/session-cap.d.ts +89 -0
- package/dist/config/session-cap.d.ts.map +1 -0
- package/dist/config/session-cap.js +176 -0
- package/dist/config/session-cap.js.map +1 -0
- package/dist/daemon-state/focus-team-state.d.ts +21 -1
- package/dist/daemon-state/focus-team-state.d.ts.map +1 -1
- package/dist/daemon-state/focus-team-state.js +36 -1
- package/dist/daemon-state/focus-team-state.js.map +1 -1
- package/dist/directive/directive-queue.js +1 -1
- package/dist/focus/focus-activity-poll-facts.d.ts.map +1 -1
- package/dist/focus/focus-activity-poll-facts.js +2 -1
- package/dist/focus/focus-activity-poll-facts.js.map +1 -1
- package/dist/focus/focus-activity-producers.d.ts +7 -1
- package/dist/focus/focus-activity-producers.d.ts.map +1 -1
- package/dist/focus/focus-activity-producers.js +19 -7
- package/dist/focus/focus-activity-producers.js.map +1 -1
- package/dist/focus/focus-activity-record.d.ts.map +1 -1
- package/dist/focus/focus-activity-record.js +4 -1
- package/dist/focus/focus-activity-record.js.map +1 -1
- package/dist/focus/focus-activity-sources.d.ts +4 -0
- package/dist/focus/focus-activity-sources.d.ts.map +1 -1
- package/dist/focus/focus-activity-sources.js.map +1 -1
- package/dist/focus/heartbeat-metadata.d.ts.map +1 -1
- package/dist/focus/heartbeat-metadata.js +6 -0
- package/dist/focus/heartbeat-metadata.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
- package/dist/prompt-sections/persona-sections.js +3 -0
- package/dist/prompt-sections/persona-sections.js.map +1 -1
- package/dist/prompt-sections/routing-decider-sections.d.ts.map +1 -1
- package/dist/prompt-sections/routing-decider-sections.js +2 -0
- package/dist/prompt-sections/routing-decider-sections.js.map +1 -1
- package/dist/queries/api-client/shared.js +1 -1
- package/dist/queries/delivery-gate-state/delivery-gate-holds.d.ts +25 -1
- package/dist/queries/delivery-gate-state/delivery-gate-holds.d.ts.map +1 -1
- package/dist/queries/delivery-gate-state/delivery-gate-state.d.ts +3 -1
- package/dist/queries/delivery-gate-state/delivery-gate-state.d.ts.map +1 -1
- package/dist/queries/delivery-gate-state/delivery-gate-state.js.map +1 -1
- package/dist/queries/escalations/cause-key.d.ts +11 -0
- package/dist/queries/escalations/cause-key.d.ts.map +1 -1
- package/dist/queries/escalations/cause-key.js +15 -0
- package/dist/queries/escalations/cause-key.js.map +1 -1
- package/dist/queries/escalations/escalation-consumption.d.ts.map +1 -1
- package/dist/queries/escalations/escalation-consumption.js +1 -0
- package/dist/queries/escalations/escalation-consumption.js.map +1 -1
- package/dist/queries/escalations/filing-observation.d.ts.map +1 -1
- package/dist/queries/escalations/filing-observation.js +1 -0
- package/dist/queries/escalations/filing-observation.js.map +1 -1
- package/dist/shell/config-hot-reload.d.ts +11 -0
- package/dist/shell/config-hot-reload.d.ts.map +1 -1
- package/dist/shell/config-hot-reload.js +12 -0
- package/dist/shell/config-hot-reload.js.map +1 -1
- package/dist/shell/unified-engine-lifecycle.d.ts +8 -1
- package/dist/shell/unified-engine-lifecycle.d.ts.map +1 -1
- package/dist/shell/unified-engine-lifecycle.js +44 -24
- package/dist/shell/unified-engine-lifecycle.js.map +1 -1
- package/dist/shell/unified-init.d.ts +5 -1
- package/dist/shell/unified-init.d.ts.map +1 -1
- package/dist/shell/unified-init.js +2 -2
- package/dist/shell/unified-init.js.map +1 -1
- package/dist/shell/unified-shell-config.d.ts +2 -1
- package/dist/shell/unified-shell-config.d.ts.map +1 -1
- package/dist/shell/unified-shell-config.js +9 -3
- package/dist/shell/unified-shell-config.js.map +1 -1
- package/dist/shell/unified-shell-status.js +1 -1
- package/dist/shell/unified-shell-status.js.map +1 -1
- package/dist/shell/unified-shell.d.ts.map +1 -1
- package/dist/shell/unified-shell.js +2 -1
- package/dist/shell/unified-shell.js.map +1 -1
- package/dist/spawn/helpers.d.ts.map +1 -1
- package/dist/spawn/helpers.js +4 -0
- package/dist/spawn/helpers.js.map +1 -1
- package/dist/spawn/spawn-decision.d.ts.map +1 -1
- package/dist/spawn/spawn-decision.js +4 -0
- package/dist/spawn/spawn-decision.js.map +1 -1
- package/dist/spawn/team-working-delivery.d.ts +76 -0
- package/dist/spawn/team-working-delivery.d.ts.map +1 -0
- package/dist/spawn/team-working-delivery.js +76 -0
- package/dist/spawn/team-working-delivery.js.map +1 -0
- package/dist/supervision/agent-resolvable-promotion.d.ts +14 -2
- package/dist/supervision/agent-resolvable-promotion.d.ts.map +1 -1
- package/dist/supervision/agent-resolvable-promotion.js +24 -3
- package/dist/supervision/agent-resolvable-promotion.js.map +1 -1
- package/dist/supervision/escalation-filing.js +1 -1
- package/dist/supervision/escalation-suppression.js +1 -1
- package/dist/supervision/focus-delivery-aggregate-phase.d.ts.map +1 -1
- package/dist/supervision/focus-delivery-aggregate-phase.js +1 -0
- package/dist/supervision/focus-delivery-aggregate-phase.js.map +1 -1
- package/dist/supervision/stop-registry.d.ts +1 -0
- package/dist/supervision/stop-registry.d.ts.map +1 -1
- package/dist/supervision/stop-rows-delivery.d.ts +6 -0
- package/dist/supervision/stop-rows-delivery.d.ts.map +1 -1
- package/dist/supervision/stop-rows-delivery.js +20 -0
- package/dist/supervision/stop-rows-delivery.js.map +1 -1
- package/dist/testing/fake-npm-registry.d.ts +31 -0
- package/dist/testing/fake-npm-registry.d.ts.map +1 -0
- package/dist/testing/fake-npm-registry.js +127 -0
- package/dist/testing/fake-npm-registry.js.map +1 -0
- package/dist/testing/fixtures/api-client.js +1 -1
- package/dist/testing/fixtures/index.js +1 -1
- package/dist/types/config.d.ts +30 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/focus-team-state.d.ts +14 -0
- package/dist/types/focus-team-state.d.ts.map +1 -1
- package/dist/types/focus-team-state.js.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/verify/gate-config/commit-gate-configured.d.ts +2 -0
- package/dist/verify/gate-config/commit-gate-configured.d.ts.map +1 -1
- package/dist/verify/gate-config/commit-gate-configured.js.map +1 -1
- package/dist/verify/install-probe/in-repo-publish.d.ts +154 -0
- package/dist/verify/install-probe/in-repo-publish.d.ts.map +1 -0
- package/dist/verify/install-probe/in-repo-publish.js +183 -0
- package/dist/verify/install-probe/in-repo-publish.js.map +1 -0
- package/dist/verify/install-probe/install-probe-tick.d.ts +23 -2
- package/dist/verify/install-probe/install-probe-tick.d.ts.map +1 -1
- package/dist/verify/install-probe/install-probe-tick.js +84 -12
- package/dist/verify/install-probe/install-probe-tick.js.map +1 -1
- package/dist/verify/install-probe/install-probe.d.ts +16 -0
- package/dist/verify/install-probe/install-probe.d.ts.map +1 -1
- package/dist/verify/install-probe/install-probe.js +35 -19
- package/dist/verify/install-probe/install-probe.js.map +1 -1
- package/dist/verify/install-probe/npm-unresolved.d.ts +37 -0
- package/dist/verify/install-probe/npm-unresolved.d.ts.map +1 -0
- package/dist/verify/install-probe/npm-unresolved.js +63 -0
- package/dist/verify/install-probe/npm-unresolved.js.map +1 -0
- package/dist/verify/shortfalls/each-table.d.ts +45 -0
- package/dist/verify/shortfalls/each-table.d.ts.map +1 -0
- package/dist/verify/shortfalls/each-table.js +219 -0
- package/dist/verify/shortfalls/each-table.js.map +1 -0
- package/dist/verify/shortfalls/each-title-render.d.ts +67 -0
- package/dist/verify/shortfalls/each-title-render.d.ts.map +1 -0
- package/dist/verify/shortfalls/each-title-render.js +473 -0
- package/dist/verify/shortfalls/each-title-render.js.map +1 -0
- package/dist/verify/shortfalls/generated-test-titles.d.ts +18 -0
- package/dist/verify/shortfalls/generated-test-titles.d.ts.map +1 -0
- package/dist/verify/shortfalls/generated-test-titles.js +232 -0
- package/dist/verify/shortfalls/generated-test-titles.js.map +1 -0
- package/dist/verify/shortfalls/ruling-evidence-resolution.d.ts.map +1 -1
- package/dist/verify/shortfalls/ruling-evidence-resolution.js +6 -2
- package/dist/verify/shortfalls/ruling-evidence-resolution.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
2
|
// Pinned by: packages/daemon/src/completion/state-cascade/standing-approval-convergence.test.ts,
|
|
3
|
+
// packages/daemon/src/completion/state-cascade/standing-approval-stranded.test.ts,
|
|
3
4
|
// packages/daemon/src/composition/review-holds-context.test.ts,
|
|
4
5
|
// packages/daemon/src/integration/approved-head-hold-release-regression.test.ts,
|
|
5
6
|
// packages/daemon/src/integration/shortfall-ruling-disposes-proposals-regression.test.ts,
|
|
@@ -29,10 +30,16 @@
|
|
|
29
30
|
* (isHeadAlreadyApproved: both known, same commit) -- a moved head or a revoked
|
|
30
31
|
* approval is review eligibility's business, not this pass's;
|
|
31
32
|
* - the newest census of that commit is not an approving one, or does not name the
|
|
32
|
-
* delivery at
|
|
33
|
-
*
|
|
33
|
+
* delivery at all (a delivery that reached verify after the approval was never
|
|
34
|
+
* judged by it). A census that named it at an EARLIER iteration still covers it:
|
|
35
|
+
* the head is the approved commit, so a verify bounce that re-queued it since
|
|
36
|
+
* (a late verify failure at that same commit, which raises the iteration
|
|
37
|
+
* count) changed no code the review judged. A re-code that COMMITTED moves the
|
|
38
|
+
* head, and the head check above refuses it;
|
|
34
39
|
* - the delivery has no durable verify PASS (org_nodes.verification_outcome) or
|
|
35
|
-
* its gate_state carries any hold or failure detail (gateStateHoldsNothing)
|
|
40
|
+
* its gate_state carries any hold or failure detail (gateStateHoldsNothing), or
|
|
41
|
+
* a verify run for it is still in flight (a `passed` outcome survives from an
|
|
42
|
+
* earlier run; the verdict is not final until that run ends);
|
|
36
43
|
* - a review session is live on the focus (its exit owns routing).
|
|
37
44
|
*
|
|
38
45
|
* Every candidate then crosses the SAME machinery the review exit's report-backed
|
|
@@ -52,7 +59,9 @@
|
|
|
52
59
|
* those markers are cleared by the review spawn park and the review exit, and no
|
|
53
60
|
* review runs at an approved head -- a marker would strand the delivery after its
|
|
54
61
|
* hold lifted. This pass writes nothing for a hold and re-reads every hold on the
|
|
55
|
-
* next poll instead (one log line per delivery per reason).
|
|
62
|
+
* next poll instead (one log line per delivery per reason). A delivery declined for
|
|
63
|
+
* the identical reason across consecutive polls is reported ONCE, anchored to it
|
|
64
|
+
* (completion/state-cascade/standing-approval-stranded.ts).
|
|
56
65
|
*
|
|
57
66
|
* FAILS CLOSED: an unreadable head, approval, census, issue list, workflow or hold
|
|
58
67
|
* leaves the delivery in verify; the next poll retries. A read failure is never
|
|
@@ -71,10 +80,11 @@ import { resolveReconciledWrite } from '../../delivery/delivery-reconciler-apply
|
|
|
71
80
|
import { resolveOperatorHold, describeOperatorHold } from '../../delivery/operator-hold.js';
|
|
72
81
|
import { resolveExternalHold, describeExternalHold } from '../../delivery/external-hold.js';
|
|
73
82
|
import { resolveShortfallHold, describeShortfallHold } from '../review-exit-holds/review-exit-shortfall.js';
|
|
74
|
-
import { readDoneRouteVerdict } from '../review-exit-holds/review-exit-verdict-gate.js';
|
|
83
|
+
import { readDoneRouteVerdict, verifyRunHoldsDone } from '../review-exit-holds/review-exit-verdict-gate.js';
|
|
75
84
|
import { isHeadAlreadyApproved } from './review-approved-head-gate.js';
|
|
76
85
|
import { readShortfallPark } from '../../queries/delivery-gate-state/delivery-gate-state.js';
|
|
77
86
|
import { createLogger } from '../../log/daemon-log.js';
|
|
87
|
+
import { reportStandingApprovalDeclines, } from './standing-approval-stranded.js';
|
|
78
88
|
const log = createLogger({ module: 'state-cascade' });
|
|
79
89
|
/** gate_state keys that record a verify failure or a hold (never a pass). */
|
|
80
90
|
const HOLD_OR_FAILURE_KEYS = [
|
|
@@ -110,7 +120,9 @@ export function isStandingApprovalCandidate(d) {
|
|
|
110
120
|
}
|
|
111
121
|
/**
|
|
112
122
|
* Whether the newest census of `approvedSha` is an approving one naming the
|
|
113
|
-
* delivery at its current re-code iteration
|
|
123
|
+
* delivery at its current re-code iteration or an earlier one (a verify bounce at
|
|
124
|
+
* the unchanged approved commit raises the count without changing the code the
|
|
125
|
+
* review judged; the caller has already required head == approved commit). Pure.
|
|
114
126
|
*/
|
|
115
127
|
export function censusCoversDelivery(censuses, approvedSha, delivery) {
|
|
116
128
|
const newest = censuses
|
|
@@ -118,7 +130,7 @@ export function censusCoversDelivery(censuses, approvedSha, delivery) {
|
|
|
118
130
|
.reduce((a, c) => (a === null || Date.parse(c.recordedAt) > Date.parse(a.recordedAt) ? c : a), null);
|
|
119
131
|
if (!newest?.approving)
|
|
120
132
|
return false;
|
|
121
|
-
return newest.verifyDeliveries.some((v) => v.id === delivery.id && v.iterationCount
|
|
133
|
+
return newest.verifyDeliveries.some((v) => v.id === delivery.id && v.iterationCount <= (delivery.iterationCount ?? 0));
|
|
122
134
|
}
|
|
123
135
|
/** The last hold reason logged per delivery (one line per delivery per reason, not one per poll). */
|
|
124
136
|
const lastLoggedReason = new Map();
|
|
@@ -134,8 +146,8 @@ function logHeldOnce(focus, d, sha, reason) {
|
|
|
134
146
|
`but does not converge on the standing approval: ${reason}. Left in verify; re-read next poll.`);
|
|
135
147
|
}
|
|
136
148
|
/**
|
|
137
|
-
*
|
|
138
|
-
*
|
|
149
|
+
* Why the review exit's done gates withhold `d`, or null when every gate lets it
|
|
150
|
+
* through. `shortfall` is the focus-scoped proposal read, taken once per pass.
|
|
139
151
|
*/
|
|
140
152
|
async function doneWithheldBy(deps, focus, d, approvedSha, shortfall) {
|
|
141
153
|
const issues = await deps.getDeliveryIssues(d.id);
|
|
@@ -149,22 +161,25 @@ async function doneWithheldBy(deps, focus, d, approvedSha, shortfall) {
|
|
|
149
161
|
reviewState: { reviewRequested: true, reportExists: true, sessionType: 'review', succeeded: true, outcome: 'approved', inspected: true },
|
|
150
162
|
},
|
|
151
163
|
});
|
|
152
|
-
if (decision.target !== DELIVERY_STATUS.DONE)
|
|
153
|
-
return `the reconciler routes it to ${decision.target} (${decision.result.reason})
|
|
164
|
+
if (decision.target !== DELIVERY_STATUS.DONE) {
|
|
165
|
+
return { kind: 'reconciler', reason: `the reconciler routes it to ${decision.target} (${decision.result.reason})` };
|
|
166
|
+
}
|
|
154
167
|
const operatorHold = await resolveOperatorHold(deps, d.id, focus.focusId);
|
|
155
168
|
if (operatorHold.held)
|
|
156
|
-
return describeOperatorHold(operatorHold);
|
|
169
|
+
return { kind: 'operator_hold', reason: describeOperatorHold(operatorHold) };
|
|
157
170
|
const externalHold = await resolveExternalHold(deps, d.id, d.gateState, deps.evaluateExternalCondition, deps.externalHoldClock);
|
|
158
171
|
if (externalHold.held)
|
|
159
|
-
return describeExternalHold(externalHold);
|
|
172
|
+
return { kind: 'external_hold', reason: describeExternalHold(externalHold) };
|
|
160
173
|
if (!shortfall.clear)
|
|
161
|
-
return describeShortfallHold(shortfall);
|
|
174
|
+
return { kind: 'shortfall_hold', reason: describeShortfallHold(shortfall) };
|
|
175
|
+
if (verifyRunHoldsDone(deps, d.id))
|
|
176
|
+
return { kind: 'verdict', reason: 'a verify run for it is still in flight' };
|
|
162
177
|
const verdict = await readDoneRouteVerdict(deps, { ...focus, currentBranchTip: approvedSha }, { read_only: focus.readOnly }, d);
|
|
163
178
|
if (verdict.state !== 'passed' && verdict.state !== 'unconfigured') {
|
|
164
|
-
return `the gate verdict for ${(verdict.sha ?? '<unreadable>').slice(0, 12)} is ${verdict.state}
|
|
179
|
+
return { kind: 'verdict', reason: `the gate verdict for ${(verdict.sha ?? '<unreadable>').slice(0, 12)} is ${verdict.state}` };
|
|
165
180
|
}
|
|
166
181
|
if (verdict.sha === null || !sameCommit(verdict.sha, approvedSha)) {
|
|
167
|
-
return `the judged commit ${(verdict.sha ?? '<unreadable>').slice(0, 12)} is not the approved commit
|
|
182
|
+
return { kind: 'verdict', reason: `the judged commit ${(verdict.sha ?? '<unreadable>').slice(0, 12)} is not the approved commit` };
|
|
168
183
|
}
|
|
169
184
|
return null;
|
|
170
185
|
}
|
|
@@ -190,27 +205,40 @@ export async function convergeOnStandingApproval(focus, deliveries, deps) {
|
|
|
190
205
|
for (const d of deliveries)
|
|
191
206
|
if (!candidates.includes(d))
|
|
192
207
|
lastLoggedReason.delete(d.id);
|
|
193
|
-
|
|
208
|
+
const seen = deliveries.map((d) => d.id);
|
|
209
|
+
if (candidates.length === 0 || deps.isReviewSessionActive(focus.focusId)) {
|
|
210
|
+
await reportStandingApprovalDeclines(focus, null, seen, [], deps.fileStrandedEscalation);
|
|
194
211
|
return outcome;
|
|
212
|
+
}
|
|
195
213
|
const approvedSha = await readApprovedHead(deps, focus);
|
|
196
|
-
if (approvedSha === null)
|
|
214
|
+
if (approvedSha === null) {
|
|
215
|
+
await reportStandingApprovalDeclines(focus, null, seen, [], deps.fileStrandedEscalation);
|
|
197
216
|
return outcome;
|
|
217
|
+
}
|
|
218
|
+
const declines = [];
|
|
219
|
+
const decline = (d, { kind, reason }) => {
|
|
220
|
+
outcome.held.push({ deliveryId: d.id, reason });
|
|
221
|
+
declines.push({ deliveryId: d.id, deliveryName: d.name, kind, reason });
|
|
222
|
+
logHeldOnce(focus, d, approvedSha, reason);
|
|
223
|
+
};
|
|
198
224
|
const censuses = deps.listReviewCensuses();
|
|
199
225
|
const covered = candidates.filter((d) => censusCoversDelivery(censuses, approvedSha, d));
|
|
200
226
|
for (const d of candidates.filter((c) => !covered.includes(c))) {
|
|
201
|
-
|
|
202
|
-
outcome.held.push({ deliveryId: d.id, reason });
|
|
203
|
-
logHeldOnce(focus, d, approvedSha, reason);
|
|
227
|
+
decline(d, { kind: 'census', reason: 'no approving review of that commit saw it in verify' });
|
|
204
228
|
}
|
|
205
|
-
if (covered.length
|
|
206
|
-
|
|
229
|
+
if (covered.length > 0)
|
|
230
|
+
await convergeCovered(focus, covered, deps, approvedSha, outcome, decline);
|
|
231
|
+
await reportStandingApprovalDeclines(focus, approvedSha, seen, declines, deps.fileStrandedEscalation);
|
|
232
|
+
return outcome;
|
|
233
|
+
}
|
|
234
|
+
/** Cross each census-covered candidate through the done gates, writing done for every one they let through. */
|
|
235
|
+
async function convergeCovered(focus, covered, deps, approvedSha, outcome, decline) {
|
|
207
236
|
const shortfall = await resolveShortfallHold(deps, focus.focusId, focus.focusName);
|
|
208
237
|
for (const d of covered) {
|
|
209
238
|
try {
|
|
210
|
-
const
|
|
211
|
-
if (
|
|
212
|
-
|
|
213
|
-
logHeldOnce(focus, d, approvedSha, reason);
|
|
239
|
+
const withheld = await doneWithheldBy(deps, focus, d, approvedSha, shortfall);
|
|
240
|
+
if (withheld !== null) {
|
|
241
|
+
decline(d, withheld);
|
|
214
242
|
continue;
|
|
215
243
|
}
|
|
216
244
|
const doneStage = (await deps.fetchEffectiveWorkflow(d.id)).stages.find((s) => s.name === DELIVERY_STATUS.DONE);
|
|
@@ -224,11 +252,8 @@ export async function convergeOnStandingApproval(focus, deliveries, deps) {
|
|
|
224
252
|
`of that commit, whose review saw it in verify); verify passed and no hold stands. No review run, no approval written.`);
|
|
225
253
|
}
|
|
226
254
|
catch (err) {
|
|
227
|
-
|
|
228
|
-
outcome.held.push({ deliveryId: d.id, reason });
|
|
229
|
-
logHeldOnce(focus, d, approvedSha, reason);
|
|
255
|
+
decline(d, { kind: 'read_failed', reason: `a read or write failed (${err.message})` });
|
|
230
256
|
}
|
|
231
257
|
}
|
|
232
|
-
return outcome;
|
|
233
258
|
}
|
|
234
259
|
//# sourceMappingURL=standing-approval-convergence.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standing-approval-convergence.js","sourceRoot":"","sources":["../../../src/completion/state-cascade/standing-approval-convergence.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,iGAAiG;AACjG,kEAAkE;AAClE,mFAAmF;AACnF,4FAA4F;AAC5F,iFAAiF;AACjF,gBAAgB;AAEhB
|
|
1
|
+
{"version":3,"file":"standing-approval-convergence.js","sourceRoot":"","sources":["../../../src/completion/state-cascade/standing-approval-convergence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { FileEscalationIdempotentParams, FileEscalationIdempotentResult } from '../../supervision/escalation-suppression.js';
|
|
2
|
+
/** Consecutive passes with the identical decline before the delivery is filed, and between asks after (~2.5 min at the 30s poll). */
|
|
3
|
+
export declare const STANDING_APPROVAL_STRANDED_POLLS = 5;
|
|
4
|
+
/** The filing's escalation_kind (see the module header for why this existing kind). */
|
|
5
|
+
export declare const STANDING_APPROVAL_STRANDED_KIND = "verify_gate_unclearable";
|
|
6
|
+
/** metadata.diagnosis of the filing (its cause namespace). */
|
|
7
|
+
export declare const STANDING_APPROVAL_STRANDED_DIAGNOSIS = "standing_approval_unconverged";
|
|
8
|
+
/** Why a pass declined a delivery: the class decides whether it is ever filed. */
|
|
9
|
+
export type StandingApprovalDeclineKind = 'census' | 'reconciler' | 'operator_hold' | 'external_hold' | 'shortfall_hold' | 'verdict' | 'read_failed';
|
|
10
|
+
/** One decline a pass made. */
|
|
11
|
+
export interface StandingApprovalDecline {
|
|
12
|
+
deliveryId: string;
|
|
13
|
+
deliveryName: string;
|
|
14
|
+
kind: StandingApprovalDeclineKind;
|
|
15
|
+
reason: string;
|
|
16
|
+
}
|
|
17
|
+
/** The focus the filing is anchored under. */
|
|
18
|
+
export interface StrandedFocus {
|
|
19
|
+
organizationId: string;
|
|
20
|
+
productId: string;
|
|
21
|
+
focusId: string;
|
|
22
|
+
focusName: string;
|
|
23
|
+
}
|
|
24
|
+
/** The idempotent filer (supervision/escalation-suppression.ts fileEscalationIdempotent in production). */
|
|
25
|
+
export type StrandedEscalationFiler = (params: FileEscalationIdempotentParams) => Promise<FileEscalationIdempotentResult>;
|
|
26
|
+
/** Test seam: forget every streak. */
|
|
27
|
+
export declare function __resetStandingApprovalStrandedForTests(): void;
|
|
28
|
+
/** The cause key: one filing per delivery per approved commit. Pure. */
|
|
29
|
+
export declare function strandedCauseKey(deliveryId: string, approvedSha: string): string;
|
|
30
|
+
/** The filing for one stranded delivery. Pure. */
|
|
31
|
+
export declare function buildStrandedEscalation(focus: StrandedFocus, decline: StandingApprovalDecline, approvedSha: string, polls: number): FileEscalationIdempotentParams;
|
|
32
|
+
/**
|
|
33
|
+
* Record one pass's declines and ask the idempotent gate to file each delivery
|
|
34
|
+
* whose identical decline has run STANDING_APPROVAL_STRANDED_POLLS passes since it
|
|
35
|
+
* began or since the gate was last asked. `seen` is every delivery the pass looked
|
|
36
|
+
* at: one not declined this pass loses its streak. Never throws.
|
|
37
|
+
*/
|
|
38
|
+
export declare function reportStandingApprovalDeclines(focus: StrandedFocus, approvedSha: string | null, seen: readonly string[], declines: readonly StandingApprovalDecline[], file: StrandedEscalationFiler | undefined): Promise<string[]>;
|
|
39
|
+
//# sourceMappingURL=standing-approval-stranded.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standing-approval-stranded.d.ts","sourceRoot":"","sources":["../../../src/completion/state-cascade/standing-approval-stranded.ts"],"names":[],"mappings":"AAmDA,OAAO,KAAK,EACV,8BAA8B,EAC9B,8BAA8B,EAC/B,MAAM,6CAA6C,CAAC;AAMrD,qIAAqI;AACrI,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAElD,uFAAuF;AACvF,eAAO,MAAM,+BAA+B,4BAA4B,CAAC;AAEzE,8DAA8D;AAC9D,eAAO,MAAM,oCAAoC,kCAAmC,CAAC;AAErF,kFAAkF;AAClF,MAAM,MAAM,2BAA2B,GACnC,QAAQ,GAAG,YAAY,GAAG,eAAe,GAAG,eAAe,GAAG,gBAAgB,GAAG,SAAS,GAAG,aAAa,CAAC;AAK/G,+BAA+B;AAC/B,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,2BAA2B,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,8CAA8C;AAC9C,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,2GAA2G;AAC3G,MAAM,MAAM,uBAAuB,GAAG,CAAC,MAAM,EAAE,8BAA8B,KAAK,OAAO,CAAC,8BAA8B,CAAC,CAAC;AAO1H,sCAAsC;AACtC,wBAAgB,uCAAuC,IAAI,IAAI,CAE9D;AAED,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAEhF;AAED,kDAAkD;AAClD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,uBAAuB,EAChC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,8BAA8B,CAqChC;AAED;;;;;GAKG;AACH,wBAAsB,8BAA8B,CAClD,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,QAAQ,EAAE,SAAS,uBAAuB,EAAE,EAC5C,IAAI,EAAE,uBAAuB,GAAG,SAAS,GACxC,OAAO,CAAC,MAAM,EAAE,CAAC,CAuBnB"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
+
// Pinned by: packages/daemon/src/completion/state-cascade/standing-approval-stranded.test.ts
|
|
3
|
+
// PINNED-BY-END
|
|
4
|
+
/**
|
|
5
|
+
* A delivery the standing-approval convergence keeps declining for the SAME reason
|
|
6
|
+
* is reported ONCE, anchored to the delivery -- not only logged every poll.
|
|
7
|
+
*
|
|
8
|
+
* completion/state-cascade/standing-approval-convergence.ts leaves a passed verify
|
|
9
|
+
* delivery at an approved head in verify when a fact is missing (no census names
|
|
10
|
+
* it, a gate withholds done, a read fails) and re-reads next poll. Most of those
|
|
11
|
+
* clear on their own within a poll or two. One that does NOT is a stranded
|
|
12
|
+
* delivery: no review opens at an approved head, so nothing else will ever move
|
|
13
|
+
* it, and a log line is not something a human sees.
|
|
14
|
+
*
|
|
15
|
+
* So each pass reports its declines here. A delivery declined for the identical
|
|
16
|
+
* reason on STANDING_APPROVAL_STRANDED_POLLS consecutive passes is filed through
|
|
17
|
+
* the cause-keyed idempotent gate, keyed on the delivery and the approved commit
|
|
18
|
+
* (queries/escalations/cause-key.ts standingApprovalStrandedCauseKey).
|
|
19
|
+
*
|
|
20
|
+
* HOW IT REACHES A HUMAN. The daemon files no human-facing row
|
|
21
|
+
* (supervision/filing-route.ts): the filing proposes needs_operator with the human
|
|
22
|
+
* act that closes it, and lands as a machine-lane observation carrying both. The
|
|
23
|
+
* promotion sweep hands that observation to a routing decider IMMEDIATELY on the
|
|
24
|
+
* delivery_stranded basis (supervision/agent-resolvable-promotion.ts
|
|
25
|
+
* isDeliveryStrandedObservation, keyed on this cause key -- on the row, or on a
|
|
26
|
+
* symptom the incident reducer attached to the delivery's open row), and the
|
|
27
|
+
* decider -- the one agent that makes a filing human-facing -- files the ONE
|
|
28
|
+
* needs_operator escalation naming the act.
|
|
29
|
+
*
|
|
30
|
+
* ONE ROW WHILE IT IS OPEN. Every STANDING_APPROVAL_STRANDED_POLLS passes of an
|
|
31
|
+
* unbroken strand, the gate is asked again: an open (or dismissed) row with the
|
|
32
|
+
* key suppresses it, so nothing is re-filed while the escalation stands -- across
|
|
33
|
+
* polls and daemon restarts alike, since the row, not this process, is the memory.
|
|
34
|
+
* Once that row is resolved and the delivery is still stranded, the next ask files
|
|
35
|
+
* again. A delivery that converges, stops being a candidate, or changes reason
|
|
36
|
+
* starts its count over.
|
|
37
|
+
*
|
|
38
|
+
* Two declines are never filed: an operator hold (the open hold IS the human
|
|
39
|
+
* signal) and an external hold (a declared wait on another product's request,
|
|
40
|
+
* which clears itself). The kind is verify_gate_unclearable, whose self-report
|
|
41
|
+
* exclusion (supervision/holds.ts SELF_REPORT_STALL_HOLD_KINDS) keeps this row
|
|
42
|
+
* from becoming an operator hold on the very delivery it reports.
|
|
43
|
+
*
|
|
44
|
+
* Best-effort: a failed filing is logged and retried on a later pass; it never
|
|
45
|
+
* changes what the convergence decided.
|
|
46
|
+
*
|
|
47
|
+
* @module completion/state-cascade/standing-approval-stranded
|
|
48
|
+
*/
|
|
49
|
+
import { ESCALATION_DISPOSITIONS, ESCALATION_REASONS } from '@telora/daemon-core';
|
|
50
|
+
import { STANDING_APPROVAL_STRANDED_CAUSE, standingApprovalStrandedCauseKey } from '../../queries/escalations/cause-key.js';
|
|
51
|
+
import { createLogger } from '../../log/daemon-log.js';
|
|
52
|
+
const log = createLogger({ module: 'state-cascade' });
|
|
53
|
+
/** Consecutive passes with the identical decline before the delivery is filed, and between asks after (~2.5 min at the 30s poll). */
|
|
54
|
+
export const STANDING_APPROVAL_STRANDED_POLLS = 5;
|
|
55
|
+
/** The filing's escalation_kind (see the module header for why this existing kind). */
|
|
56
|
+
export const STANDING_APPROVAL_STRANDED_KIND = 'verify_gate_unclearable';
|
|
57
|
+
/** metadata.diagnosis of the filing (its cause namespace). */
|
|
58
|
+
export const STANDING_APPROVAL_STRANDED_DIAGNOSIS = STANDING_APPROVAL_STRANDED_CAUSE;
|
|
59
|
+
/** Decline kinds that are never filed: each already is the human signal or a self-clearing declared wait. */
|
|
60
|
+
const NEVER_FILED = new Set(['operator_hold', 'external_hold']);
|
|
61
|
+
/** Per-delivery streak of the identical decline since it began, or since the gate was last asked. */
|
|
62
|
+
const streaks = new Map();
|
|
63
|
+
/** Test seam: forget every streak. */
|
|
64
|
+
export function __resetStandingApprovalStrandedForTests() {
|
|
65
|
+
streaks.clear();
|
|
66
|
+
}
|
|
67
|
+
/** The cause key: one filing per delivery per approved commit. Pure. */
|
|
68
|
+
export function strandedCauseKey(deliveryId, approvedSha) {
|
|
69
|
+
return standingApprovalStrandedCauseKey(deliveryId, approvedSha);
|
|
70
|
+
}
|
|
71
|
+
/** The filing for one stranded delivery. Pure. */
|
|
72
|
+
export function buildStrandedEscalation(focus, decline, approvedSha, polls) {
|
|
73
|
+
const sha = approvedSha.slice(0, 12);
|
|
74
|
+
const act = `Decide delivery "${decline.deliveryName}" on focus "${focus.focusName}": it passed verify at ${sha}, the ` +
|
|
75
|
+
`commit the focus's standing approval judged, but cannot converge to done because ${decline.reason}. Clear ` +
|
|
76
|
+
`that cause, or move the delivery to done or back to coding.`;
|
|
77
|
+
return {
|
|
78
|
+
causeKey: strandedCauseKey(decline.deliveryId, approvedSha),
|
|
79
|
+
organizationId: focus.organizationId,
|
|
80
|
+
sessionId: '',
|
|
81
|
+
issueId: null,
|
|
82
|
+
reasonType: ESCALATION_REASONS.ERROR_ENCOUNTERED,
|
|
83
|
+
disposition: ESCALATION_DISPOSITIONS.NEEDS_OPERATOR,
|
|
84
|
+
humanAct: { kind: 'unreachable_capability', act },
|
|
85
|
+
anchor: { deliveryId: decline.deliveryId, focusId: focus.focusId },
|
|
86
|
+
productId: focus.productId,
|
|
87
|
+
escalationKind: STANDING_APPROVAL_STRANDED_KIND,
|
|
88
|
+
description: `Delivery "${decline.deliveryName}" is stranded in verify on focus "${focus.focusName}". It passed verify at ` +
|
|
89
|
+
`${sha}, the commit the focus's current approval judged, and the daemon declined to converge it to done on ` +
|
|
90
|
+
`that approval on at least ${polls} consecutive polls for the same reason: ${decline.reason}.\n\n` +
|
|
91
|
+
`No review opens at a head an approval already judged, so no daemon pass will move this delivery while ` +
|
|
92
|
+
`that reason stands.`,
|
|
93
|
+
whatWasTried: `Standing-approval convergence re-read every hold on each poll (at least ${polls} consecutive) and declined each time ` +
|
|
94
|
+
`for the identical reason.`,
|
|
95
|
+
helpNeeded: act,
|
|
96
|
+
metadata: {
|
|
97
|
+
cause: STANDING_APPROVAL_STRANDED_KIND,
|
|
98
|
+
diagnosis: STANDING_APPROVAL_STRANDED_DIAGNOSIS,
|
|
99
|
+
deliveryName: decline.deliveryName,
|
|
100
|
+
approvedSha,
|
|
101
|
+
declineKind: decline.kind,
|
|
102
|
+
reason: decline.reason,
|
|
103
|
+
consecutivePolls: polls,
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Record one pass's declines and ask the idempotent gate to file each delivery
|
|
109
|
+
* whose identical decline has run STANDING_APPROVAL_STRANDED_POLLS passes since it
|
|
110
|
+
* began or since the gate was last asked. `seen` is every delivery the pass looked
|
|
111
|
+
* at: one not declined this pass loses its streak. Never throws.
|
|
112
|
+
*/
|
|
113
|
+
export async function reportStandingApprovalDeclines(focus, approvedSha, seen, declines, file) {
|
|
114
|
+
const declined = new Map(declines.map((d) => [d.deliveryId, d]));
|
|
115
|
+
for (const id of seen)
|
|
116
|
+
if (!declined.has(id))
|
|
117
|
+
streaks.delete(id);
|
|
118
|
+
const filed = [];
|
|
119
|
+
for (const d of declines) {
|
|
120
|
+
const prior = streaks.get(d.deliveryId);
|
|
121
|
+
const streak = { reason: d.reason, count: prior?.reason === d.reason ? prior.count + 1 : 1 };
|
|
122
|
+
streaks.set(d.deliveryId, streak);
|
|
123
|
+
if (streak.count < STANDING_APPROVAL_STRANDED_POLLS || NEVER_FILED.has(d.kind))
|
|
124
|
+
continue;
|
|
125
|
+
if (approvedSha === null || file === undefined)
|
|
126
|
+
continue;
|
|
127
|
+
// Asked now; the next ask is STANDING_APPROVAL_STRANDED_POLLS passes on. The open row suppresses it, a resolved one does not.
|
|
128
|
+
streaks.set(d.deliveryId, { reason: d.reason, count: 0 });
|
|
129
|
+
try {
|
|
130
|
+
const result = await file(buildStrandedEscalation(focus, d, approvedSha, streak.count));
|
|
131
|
+
if (result.filed) {
|
|
132
|
+
filed.push(d.deliveryId);
|
|
133
|
+
log.info(`[state-cascade] Delivery "${d.deliveryName}" on "${focus.focusName}" is stranded at the approved head ${approvedSha.slice(0, 12)} (${d.reason}); filed its one escalation.`);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
catch (err) {
|
|
137
|
+
log.warn(`[state-cascade] failed to file the stranded-delivery escalation for "${d.deliveryName}": ${err.message}`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return filed;
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=standing-approval-stranded.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standing-approval-stranded.js","sourceRoot":"","sources":["../../../src/completion/state-cascade/standing-approval-stranded.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,6FAA6F;AAC7F,gBAAgB;AAEhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAKlF,OAAO,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,MAAM,wCAAwC,CAAC;AAC5H,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;AAEtD,qIAAqI;AACrI,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAElD,uFAAuF;AACvF,MAAM,CAAC,MAAM,+BAA+B,GAAG,yBAAyB,CAAC;AAEzE,8DAA8D;AAC9D,MAAM,CAAC,MAAM,oCAAoC,GAAG,gCAAgC,CAAC;AAMrF,6GAA6G;AAC7G,MAAM,WAAW,GAA6C,IAAI,GAAG,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC;AAuB1G,qGAAqG;AACrG,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE1C,sCAAsC;AACtC,MAAM,UAAU,uCAAuC;IACrD,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,gBAAgB,CAAC,UAAkB,EAAE,WAAmB;IACtE,OAAO,gCAAgC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AACnE,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,uBAAuB,CACrC,KAAoB,EACpB,OAAgC,EAChC,WAAmB,EACnB,KAAa;IAEb,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,GAAG,GACP,oBAAoB,OAAO,CAAC,YAAY,eAAe,KAAK,CAAC,SAAS,0BAA0B,GAAG,QAAQ;QAC3G,oFAAoF,OAAO,CAAC,MAAM,UAAU;QAC5G,6DAA6D,CAAC;IAChE,OAAO;QACL,QAAQ,EAAE,gBAAgB,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC;QAC3D,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,kBAAkB,CAAC,iBAAiB;QAChD,WAAW,EAAE,uBAAuB,CAAC,cAAc;QACnD,QAAQ,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,GAAG,EAAE;QACjD,MAAM,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;QAClE,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,cAAc,EAAE,+BAA+B;QAC/C,WAAW,EACT,aAAa,OAAO,CAAC,YAAY,qCAAqC,KAAK,CAAC,SAAS,yBAAyB;YAC9G,GAAG,GAAG,sGAAsG;YAC5G,6BAA6B,KAAK,2CAA2C,OAAO,CAAC,MAAM,OAAO;YAClG,wGAAwG;YACxG,qBAAqB;QACvB,YAAY,EACV,2EAA2E,KAAK,uCAAuC;YACvH,2BAA2B;QAC7B,UAAU,EAAE,GAAG;QACf,QAAQ,EAAE;YACR,KAAK,EAAE,+BAA+B;YACtC,SAAS,EAAE,oCAAoC;YAC/C,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,WAAW;YACX,WAAW,EAAE,OAAO,CAAC,IAAI;YACzB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,gBAAgB,EAAE,KAAK;SACxB;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,KAAoB,EACpB,WAA0B,EAC1B,IAAuB,EACvB,QAA4C,EAC5C,IAAyC;IAEzC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,KAAK,MAAM,EAAE,IAAI,IAAI;QAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,MAAM,GAAW,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAClC,IAAI,MAAM,CAAC,KAAK,GAAG,gCAAgC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,SAAS;QACzF,IAAI,WAAW,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;YAAE,SAAS;QACzD,8HAA8H;QAC9H,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACxF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gBACzB,GAAG,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,YAAY,SAAS,KAAK,CAAC,SAAS,sCAAsC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,8BAA8B,CAAC,CAAC;YACzL,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC,YAAY,MAAO,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACjI,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commit-gate-context.d.ts","sourceRoot":"","sources":["../../src/composition/commit-gate-context.ts"],"names":[],"mappings":"AA8BA,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACrB,MAAM,iDAAiD,CAAC;AAYzD;;;;GAIG;AACH,wBAAgB,6BAA6B,IAAI,wBAAwB,CAUxE;AAED,sDAAsD;AACtD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,wBAAwB,GAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"commit-gate-context.d.ts","sourceRoot":"","sources":["../../src/composition/commit-gate-context.ts"],"names":[],"mappings":"AA8BA,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACrB,MAAM,iDAAiD,CAAC;AAYzD;;;;GAIG;AACH,wBAAgB,6BAA6B,IAAI,wBAAwB,CAUxE;AAED,sDAAsD;AACtD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,wBAAwB,GAAG,eAAe,CASpF;AAED,mGAAmG;AACnG,eAAO,MAAM,eAAe,EAAE,eAAuE,CAAC"}
|
|
@@ -35,7 +35,7 @@ import { getFocusDeliveries } from '../queries/focuses/focuses.js';
|
|
|
35
35
|
import { getFocusWorktree } from '../worktree/focus-worktree-state.js';
|
|
36
36
|
import { runGitSync } from '../git/types.js';
|
|
37
37
|
import { readCommitVerdict } from '../verify/gate-verdicts/commit-verdict-record.js';
|
|
38
|
-
import { hasPendingGateRun } from '../verify/gate-verdicts/gate-run-registry.js';
|
|
38
|
+
import { hasPendingGateRun, isGateRunSelected } from '../verify/gate-verdicts/gate-run-registry.js';
|
|
39
39
|
import { readDeliveryGateOutcome } from '../verify/gate-verdicts/explicit-gate-outcome.js';
|
|
40
40
|
/**
|
|
41
41
|
* The resolution deps: the live daemon config, the process env, the durable
|
|
@@ -61,6 +61,7 @@ export function buildCommitGateSeams(deps) {
|
|
|
61
61
|
readCommitVerdict: (productId, focusId, sha, gate) => (gate ? readCommitVerdict(productId, focusId, sha, { gate }) : null),
|
|
62
62
|
readDeliveryGateOutcome,
|
|
63
63
|
hasPendingGateRun,
|
|
64
|
+
isGateRunSelected,
|
|
64
65
|
};
|
|
65
66
|
}
|
|
66
67
|
/** The daemon's gate seams: built once, read by every context builder that routes on a verdict. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commit-gate-context.js","sourceRoot":"","sources":["../../src/composition/commit-gate-context.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,2EAA2E;AAC3E,4FAA4F;AAC5F,uEAAuE;AACvE,+EAA+E;AAC/E,iEAAiE;AACjE,8EAA8E;AAC9E,8EAA8E;AAC9E,+EAA+E;AAC/E,2EAA2E;AAC3E,mFAAmF;AACnF,oEAAoE;AACpE,2EAA2E;AAC3E,0EAA0E;AAC1E,+EAA+E;AAC/E,gBAAgB;AAEhB;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EACL,iBAAiB,EACjB,wBAAwB,GAGzB,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAE,+BAA+B,EAAE,MAAM,8CAA8C,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,EAAE,+BAA+B,EAAE,MAAM,oDAAoD,CAAC;AACrG,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;
|
|
1
|
+
{"version":3,"file":"commit-gate-context.js","sourceRoot":"","sources":["../../src/composition/commit-gate-context.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,2EAA2E;AAC3E,4FAA4F;AAC5F,uEAAuE;AACvE,+EAA+E;AAC/E,iEAAiE;AACjE,8EAA8E;AAC9E,8EAA8E;AAC9E,+EAA+E;AAC/E,2EAA2E;AAC3E,mFAAmF;AACnF,oEAAoE;AACpE,2EAA2E;AAC3E,0EAA0E;AAC1E,+EAA+E;AAC/E,gBAAgB;AAEhB;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EACL,iBAAiB,EACjB,wBAAwB,GAGzB,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAE,+BAA+B,EAAE,MAAM,8CAA8C,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,EAAE,+BAA+B,EAAE,MAAM,oDAAoD,CAAC;AACrG,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACpG,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAE3F;;;;GAIG;AACH,MAAM,UAAU,6BAA6B;IAC3C,OAAO;QACL,SAAS,EAAE,GAAG,EAAE,CAAC,gBAAgB;QACjC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,kBAAkB;QAClB,uBAAuB;QACvB,0BAA0B,EAAE,+BAA+B,CAAC,OAAO,CAAC,GAAG,EAAE,kBAAkB,CAAC;QAC5F,kBAAkB;QAClB,wBAAwB,EAAE,+BAA+B,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,YAAY,IAAI,IAAI,EAAE,UAAU,CAAC;KACpI,CAAC;AACJ,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,oBAAoB,CAAC,IAA8B;IACjE,OAAO;QACL,iBAAiB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC;QAChE,mBAAmB,EAAE,wBAAwB;QAC7C,iBAAiB,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1H,uBAAuB;QACvB,iBAAiB;QACjB,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAED,mGAAmG;AACnG,MAAM,CAAC,MAAM,eAAe,GAAoB,oBAAoB,CAAC,6BAA6B,EAAE,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-spawn-context.d.ts","sourceRoot":"","sources":["../../src/composition/execution-spawn-context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"execution-spawn-context.d.ts","sourceRoot":"","sources":["../../src/composition/execution-spawn-context.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAIvF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAiC,KAAK,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACrG,OAAO,EAAuB,KAAK,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAetG,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACvB,MAAM,8BAA8B,CAAC;AAUtC,mFAAmF;AACnF,wBAAgB,0BAA0B,IAAI,qBAAqB,CAElE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,gBAAgB,CAYxD;AAED,0FAA0F;AAC1F,wBAAgB,qBAAqB,IAAI,gBAAgB,CAQxD;AAmBD,yFAAyF;AACzF,wBAAgB,4BAA4B,IAAI,uBAAuB,CAMtE;AAED,yGAAyG;AACzG,wBAAgB,uBAAuB,IAAI,IAAI,CAAC,kBAAkB,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAM9F;AAED,iKAAiK;AACjK,wBAAgB,sBAAsB,IAAI,wBAAwB,CAYjE;AAED,wHAAwH;AACxH,wBAAgB,sBAAsB,IAAI,iBAAiB,CAa1D;AAED,2GAA2G;AAC3G,wBAAgB,+BAA+B,IAAI,0BAA0B,CAE5E"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
// packages/daemon/src/spawn/pending-spawn-guard.test.ts,
|
|
8
8
|
// packages/daemon/src/spawn/progress-measure-wiring.test.ts,
|
|
9
9
|
// packages/daemon/src/spawn/review-worktree-no-verify-defer.test.ts,
|
|
10
|
+
// packages/daemon/src/spawn/team-working-delivery.test.ts,
|
|
10
11
|
// packages/daemon/src/spawn/worktree-session-provisioning.test.ts,
|
|
11
12
|
// packages/daemon/src/spawn/worktree-session.test.ts,
|
|
12
13
|
// packages/daemon/src/supervision/stall-detectors-clock-wiring.test.ts,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-spawn-context.js","sourceRoot":"","sources":["../../src/composition/execution-spawn-context.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"execution-spawn-context.js","sourceRoot":"","sources":["../../src/composition/execution-spawn-context.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,0EAA0E;AAC1E,iFAAiF;AACjF,+DAA+D;AAC/D,+DAA+D;AAC/D,mEAAmE;AACnE,2DAA2D;AAC3D,+DAA+D;AAC/D,uEAAuE;AACvE,6DAA6D;AAC7D,qEAAqE;AACrE,wDAAwD;AACxD,0EAA0E;AAC1E,+DAA+D;AAC/D,gBAAgB;AAEhB;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAEpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAEpF,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAIhF,OAAO,EAAE,6BAA6B,EAA2B,MAAM,6BAA6B,CAAC;AACrG,OAAO,EAAE,mBAAmB,EAAgC,MAAM,mCAAmC,CAAC;AACtG,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAChH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,sDAAsD,CAAC;AACvF,OAAO,EAAE,iCAAiC,EAAwB,MAAM,iCAAiC,CAAC;AAC1G,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,GAGtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,gCAAgC,EAAE,+BAA+B,EAAE,MAAM,8CAA8C,CAAC;AACjI,OAAO,EAAE,mBAAmB,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACvI,OAAO,EAAE,+BAA+B,EAAE,MAAM,kDAAkD,CAAC;AACnG,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,mFAAmF;AACnF,MAAM,UAAU,0BAA0B;IACxC,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,CAAC;AACnF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,kBAAkB;QAClB,cAAc;QACd,WAAW,EAAE,cAAc;QAC3B,WAAW;QACX,sBAAsB;QACtB,qBAAqB,EAAE,yBAAyB;QAChD,YAAY,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,IAAI;QACpH,WAAW,EAAE,eAAe;QAC5B,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC;AACJ,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,mBAAmB,EAAE,4BAA4B,EAAE;QACnD,cAAc,EAAE;YACd,iBAAiB;YACjB,aAAa,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,iCAAiC,CAAC,MAAM,EAAE,GAAG,CAAC;SAC/E;KACF,CAAC;AACJ,CAAC;AAED,iHAAiH;AACjH,KAAK,UAAU,4BAA4B,CAAC,OAA+B,EAAE,MAAoB;IAC/F,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;IACrC,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,aAAa,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACrE,MAAM,GAAG,GAAoB;QAC3B,OAAO;QACP,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,YAAY,EAAE,IAAI;QAClB,MAAM;QACN,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc;QACpE,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS;KACtD,CAAC;IACF,OAAO,CAAC,MAAM,iCAAiC,CAAC,CAAC,GAAG,6BAA6B,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;AACpG,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,4BAA4B;IAC1C,OAAO;QACL,YAAY,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CACvC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QACnG,YAAY;KACb,CAAC;AACJ,CAAC;AAED,yGAAyG;AACzG,MAAM,UAAU,uBAAuB;IACrC,MAAM,IAAI,GAAG,4BAA4B,EAAE,CAAC;IAC5C,OAAO;QACL,cAAc,EAAE,4BAA4B;QAC5C,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC;KACjD,CAAC;AACJ,CAAC;AAED,iKAAiK;AACjK,MAAM,UAAU,sBAAsB;IACpC,OAAO;QACL,qBAAqB;QACrB,gBAAgB;QAChB,qBAAqB,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,EAAE,CACpE,0BAA0B,CAAC,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,wBAAwB,EAAE,UAAU,CAAC;QAC9G,iBAAiB,EAAE,wBAAwB;QAC3C,aAAa,EAAE,8BAA8B;QAC7C,cAAc,EAAE,mBAAmB;QACnC,qBAAqB;QACrB,iBAAiB,EAAE,CAAC,YAAY,EAAE,EAAE,GAAG,KAAK,yBAAyB,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC;KACjH,CAAC;AACJ,CAAC;AAED,wHAAwH;AACxH,MAAM,UAAU,sBAAsB;IACpC,OAAO;QACL,wBAAwB,EAAE,2BAA2B;QACrD,kBAAkB,EAAE,gBAAgB;QACpC,wBAAwB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,gCAAgC,CAAC,GAAG,EAAE;YACvE,QAAQ,EAAE,+BAA+B;YACzC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YACrB,WAAW,EAAE,+BAA+B,EAAE;YAC9C,YAAY,EAAE,mBAAmB;YACjC,WAAW,EAAE,kBAAkB;YAC/B,sBAAsB,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,6BAA6B,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC;SACtH,CAAC;KACH,CAAC;AACJ,CAAC;AAED,2GAA2G;AAC3G,MAAM,UAAU,+BAA+B;IAC7C,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;AAC/G,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-activity-live-sources.d.ts","sourceRoot":"","sources":["../../src/composition/focus-activity-live-sources.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"focus-activity-live-sources.d.ts","sourceRoot":"","sources":["../../src/composition/focus-activity-live-sources.ts"],"names":[],"mappings":"AAkCA,OAAO,EAEL,KAAK,oBAAoB,EAG1B,MAAM,oCAAoC,CAAC;AAuB5C,wFAAwF;AACxF,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAc1E"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
// packages/daemon/src/focus/heartbeat-shutdown-guard.test.ts,
|
|
8
8
|
// packages/daemon/src/focus/heartbeat-team-liveness-phases.test.ts,
|
|
9
9
|
// packages/daemon/src/focus/retention-observation-heartbeat.test.ts,
|
|
10
|
+
// packages/daemon/src/spawn/team-working-delivery.test.ts,
|
|
10
11
|
// packages/daemon/src/verify/gate-verdicts/gate-run-activity.test.ts
|
|
11
12
|
// PINNED-BY-END
|
|
12
13
|
/**
|
|
@@ -36,6 +37,8 @@ function liveTeamViews() {
|
|
|
36
37
|
sessionType: team.sessionType === 'review' ? 'review' : 'coding',
|
|
37
38
|
sessionId: team.leadSessionId ?? null,
|
|
38
39
|
lastAgentEventAt: typeof team.lastActivityAt === 'number' ? team.lastActivityAt : null,
|
|
40
|
+
deliveryId: team.workingDeliveryId ?? null,
|
|
41
|
+
resolving: team.resolvingWithoutDelivery === true,
|
|
39
42
|
}));
|
|
40
43
|
}
|
|
41
44
|
function livePendingSpawns() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-activity-live-sources.js","sourceRoot":"","sources":["../../src/composition/focus-activity-live-sources.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,8EAA8E;AAC9E,6DAA6D;AAC7D,iEAAiE;AACjE,iEAAiE;AACjE,gEAAgE;AAChE,gEAAgE;AAChE,sEAAsE;AACtE,uEAAuE;AACvE,uEAAuE;AACvE,gBAAgB;AAEhB;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AACpG,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EACL,gBAAgB,GAIjB,MAAM,oCAAoC,CAAC;AAE5C,SAAS,aAAa;IACpB,OAAO,CAAC,GAAG,cAAc,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,OAAO;QACP,WAAW,EAAE,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;QAChE,SAAS,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI;QACrC,gBAAgB,EAAE,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI;
|
|
1
|
+
{"version":3,"file":"focus-activity-live-sources.js","sourceRoot":"","sources":["../../src/composition/focus-activity-live-sources.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,8EAA8E;AAC9E,6DAA6D;AAC7D,iEAAiE;AACjE,iEAAiE;AACjE,gEAAgE;AAChE,gEAAgE;AAChE,sEAAsE;AACtE,uEAAuE;AACvE,6DAA6D;AAC7D,uEAAuE;AACvE,gBAAgB;AAEhB;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AACpG,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EACL,gBAAgB,GAIjB,MAAM,oCAAoC,CAAC;AAE5C,SAAS,aAAa;IACpB,OAAO,CAAC,GAAG,cAAc,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,OAAO;QACP,WAAW,EAAE,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;QAChE,SAAS,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI;QACrC,gBAAgB,EAAE,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI;QACtF,UAAU,EAAE,IAAI,CAAC,iBAAiB,IAAI,IAAI;QAC1C,SAAS,EAAE,IAAI,CAAC,wBAAwB,KAAK,IAAI;KAClD,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO,uBAAuB,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACnD,MAAM,SAAS,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACpD,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC;AAED,sEAAsE;AACtE,MAAM,aAAa,GAAG,IAAI,gBAAgB,EAAE,CAAC;AAE7C,wFAAwF;AACxF,MAAM,UAAU,wBAAwB,CAAC,GAAW;IAClD,OAAO;QACL,GAAG;QACH,QAAQ,EAAE,eAAe,EAAE;QAC3B,kBAAkB,EAAE,uBAAuB;QAC3C,kBAAkB,EAAE,qBAAqB;QACzC,KAAK,EAAE,aAAa,EAAE;QACtB,YAAY,EAAE,uBAAuB,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QACnH,aAAa,EAAE,iBAAiB,EAAE;QAClC,WAAW,EAAE,kBAAkB,EAAE;QACjC,kBAAkB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,uBAAuB,CAAC,OAAO,EAAE,GAAG,CAAC;QACtE,aAAa,EAAE,mBAAmB,EAAE;QACpC,SAAS,EAAE,aAAa;KACzB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standing-approval-context.d.ts","sourceRoot":"","sources":["../../src/composition/standing-approval-context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"standing-approval-context.d.ts","sourceRoot":"","sources":["../../src/composition/standing-approval-context.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAC;AACnG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8DAA8D,CAAC;AAEzG,kHAAkH;AAClH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,sBAAsB,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,GACxD,oBAAoB,CAetB"}
|
|
@@ -23,6 +23,7 @@ import { getActiveTeams } from '../daemon-state/focus-team-state.js';
|
|
|
23
23
|
import { commitGateSeams } from './commit-gate-context.js';
|
|
24
24
|
import { makeDeferredRequestClosureEvaluator } from '../delivery/external-hold.js';
|
|
25
25
|
import { listReviewCensuses } from '../completion/review-exit/review-census-record.js';
|
|
26
|
+
import { fileEscalationIdempotent } from '../supervision/escalation-suppression.js';
|
|
26
27
|
/** The production deps for one focus; `readReviewHeadApproval` is the cascade's own head/approval read for it. */
|
|
27
28
|
export function buildStandingApprovalDeps(productId, focusId, readReviewHeadApproval) {
|
|
28
29
|
return {
|
|
@@ -37,6 +38,7 @@ export function buildStandingApprovalDeps(productId, focusId, readReviewHeadAppr
|
|
|
37
38
|
listOpenShortfallProposalIds: (id) => listOpenShortfallProposalIds(id, { callApi }),
|
|
38
39
|
evaluateExternalCondition: makeDeferredRequestClosureEvaluator(productId),
|
|
39
40
|
externalHoldClock: () => new Date().toISOString(),
|
|
41
|
+
fileStrandedEscalation: fileEscalationIdempotent,
|
|
40
42
|
};
|
|
41
43
|
}
|
|
42
44
|
//# sourceMappingURL=standing-approval-context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standing-approval-context.js","sourceRoot":"","sources":["../../src/composition/standing-approval-context.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,iGAAiG;AACjG,iEAAiE;AACjE,gBAAgB;AAEhB;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,mCAAmC,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;
|
|
1
|
+
{"version":3,"file":"standing-approval-context.js","sourceRoot":"","sources":["../../src/composition/standing-approval-context.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,iGAAiG;AACjG,iEAAiE;AACjE,gBAAgB;AAEhB;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,mCAAmC,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAIpF,kHAAkH;AAClH,MAAM,UAAU,yBAAyB,CACvC,SAAiB,EACjB,OAAe,EACf,sBAAyD;IAEzD,OAAO;QACL,GAAG,eAAe;QAClB,sBAAsB;QACtB,kBAAkB,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC;QAChE,qBAAqB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,WAAW,KAAK,QAAQ;QACjF,iBAAiB;QACjB,sBAAsB;QACtB,oBAAoB,EAAE,kBAAkB,CAAC,qBAAqB;QAC9D,+BAA+B;QAC/B,4BAA4B,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,4BAA4B,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;QACnF,yBAAyB,EAAE,mCAAmC,CAAC,SAAS,CAAC;QACzE,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACjD,sBAAsB,EAAE,wBAAwB;KACjD,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import { type InstallProbeTickDeps } from '../verify/install-probe/install-probe-tick.js';
|
|
2
|
+
import { type InRepoPublishDeps } from '../verify/install-probe/in-repo-publish.js';
|
|
3
|
+
/**
|
|
4
|
+
* The in-repo publish's production IO: npm in a detached checkout of the probed
|
|
5
|
+
* commit (build + publish) and in the focus worktree (re-lock), and one
|
|
6
|
+
* attributed lockfile commit.
|
|
7
|
+
*/
|
|
8
|
+
export declare function buildInRepoPublishDeps(): InRepoPublishDeps;
|
|
2
9
|
/** Build the install probe's production IO. */
|
|
3
10
|
export declare function buildInstallProbeTickDeps(): InstallProbeTickDeps;
|
|
4
11
|
//# sourceMappingURL=verify-probe-context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-probe-context.d.ts","sourceRoot":"","sources":["../../src/composition/verify-probe-context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"verify-probe-context.d.ts","sourceRoot":"","sources":["../../src/composition/verify-probe-context.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAC/G,OAAO,EAA4B,KAAK,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAW9G;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,iBAAiB,CAkC1D;AAED,+CAA+C;AAC/C,wBAAgB,yBAAyB,IAAI,oBAAoB,CAehE"}
|