@telora/daemon 0.21.98 → 0.21.134
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 +6 -3
- package/dist/audit/audit-hooks.d.ts +106 -0
- package/dist/audit/audit-hooks.d.ts.map +1 -1
- package/dist/audit/audit-hooks.js +149 -17
- package/dist/audit/audit-hooks.js.map +1 -1
- package/dist/ci/ci-sensor-loop.d.ts +6 -0
- package/dist/ci/ci-sensor-loop.d.ts.map +1 -1
- package/dist/ci/ci-sensor-loop.js +50 -3
- package/dist/ci/ci-sensor-loop.js.map +1 -1
- package/dist/completion/coverage-drift-state.d.ts +29 -2
- package/dist/completion/coverage-drift-state.d.ts.map +1 -1
- package/dist/completion/coverage-drift-state.js +42 -2
- package/dist/completion/coverage-drift-state.js.map +1 -1
- package/dist/completion/coverage-stabilized.d.ts +58 -0
- package/dist/completion/coverage-stabilized.d.ts.map +1 -0
- package/dist/completion/coverage-stabilized.js +84 -0
- package/dist/completion/coverage-stabilized.js.map +1 -0
- package/dist/completion/delivery-advancement-guard.d.ts +21 -0
- package/dist/completion/delivery-advancement-guard.d.ts.map +1 -1
- package/dist/completion/delivery-advancement-guard.js +31 -3
- package/dist/completion/delivery-advancement-guard.js.map +1 -1
- package/dist/completion/event-escalations.d.ts +15 -0
- package/dist/completion/event-escalations.d.ts.map +1 -1
- package/dist/completion/event-escalations.js +42 -4
- package/dist/completion/event-escalations.js.map +1 -1
- package/dist/completion/event-phases.d.ts.map +1 -1
- package/dist/completion/event-phases.js +5 -2
- package/dist/completion/event-phases.js.map +1 -1
- package/dist/completion/machine-remediable-demotion.d.ts +74 -0
- package/dist/completion/machine-remediable-demotion.d.ts.map +1 -0
- package/dist/completion/machine-remediable-demotion.js +147 -0
- package/dist/completion/machine-remediable-demotion.js.map +1 -0
- package/dist/completion/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.js +10 -6
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/completion/settle-injection-sweep.d.ts +55 -0
- package/dist/completion/settle-injection-sweep.d.ts.map +1 -0
- package/dist/completion/settle-injection-sweep.js +88 -0
- package/dist/completion/settle-injection-sweep.js.map +1 -0
- package/dist/completion/state-cascade.d.ts.map +1 -1
- package/dist/completion/state-cascade.js +41 -0
- package/dist/completion/state-cascade.js.map +1 -1
- package/dist/completion/status-advance-phase.d.ts.map +1 -1
- package/dist/completion/status-advance-phase.js +18 -1
- package/dist/completion/status-advance-phase.js.map +1 -1
- package/dist/completion/team-lifecycle.d.ts +42 -0
- package/dist/completion/team-lifecycle.d.ts.map +1 -1
- package/dist/completion/team-lifecycle.js +71 -0
- package/dist/completion/team-lifecycle.js.map +1 -1
- package/dist/delivery/delivery-lifecycle.d.ts +19 -33
- package/dist/delivery/delivery-lifecycle.d.ts.map +1 -1
- package/dist/delivery/delivery-lifecycle.js +19 -147
- package/dist/delivery/delivery-lifecycle.js.map +1 -1
- package/dist/delivery/delivery-merge-ops.d.ts +46 -0
- package/dist/delivery/delivery-merge-ops.d.ts.map +1 -0
- package/dist/delivery/delivery-merge-ops.js +154 -0
- package/dist/delivery/delivery-merge-ops.js.map +1 -0
- package/dist/delivery/delivery-reconciler-apply.d.ts +28 -0
- package/dist/delivery/delivery-reconciler-apply.d.ts.map +1 -1
- package/dist/delivery/delivery-reconciler-apply.js +30 -0
- package/dist/delivery/delivery-reconciler-apply.js.map +1 -1
- package/dist/delivery/delivery-reconciler.d.ts +7 -2
- package/dist/delivery/delivery-reconciler.d.ts.map +1 -1
- package/dist/delivery/delivery-reconciler.js +34 -5
- package/dist/delivery/delivery-reconciler.js.map +1 -1
- package/dist/delivery/external-hold-surface.d.ts +32 -0
- package/dist/delivery/external-hold-surface.d.ts.map +1 -0
- package/dist/delivery/external-hold-surface.js +67 -0
- package/dist/delivery/external-hold-surface.js.map +1 -0
- package/dist/delivery/external-hold.d.ts +21 -0
- package/dist/delivery/external-hold.d.ts.map +1 -1
- package/dist/delivery/external-hold.js +40 -5
- package/dist/delivery/external-hold.js.map +1 -1
- package/dist/delivery/paused-revival.d.ts +140 -0
- package/dist/delivery/paused-revival.d.ts.map +1 -0
- package/dist/delivery/paused-revival.js +229 -0
- package/dist/delivery/paused-revival.js.map +1 -0
- package/dist/delivery/wait-reachability.d.ts.map +1 -1
- package/dist/delivery/wait-reachability.js +11 -0
- package/dist/delivery/wait-reachability.js.map +1 -1
- package/dist/directive/close-loop-dispatcher.d.ts +16 -263
- package/dist/directive/close-loop-dispatcher.d.ts.map +1 -1
- package/dist/directive/close-loop-dispatcher.js +21 -259
- package/dist/directive/close-loop-dispatcher.js.map +1 -1
- package/dist/directive/directive-dispatch.d.ts +19 -0
- package/dist/directive/directive-dispatch.d.ts.map +1 -1
- package/dist/directive/directive-dispatch.js +18 -0
- package/dist/directive/directive-dispatch.js.map +1 -1
- package/dist/directive/directive-executor.d.ts +1 -3
- package/dist/directive/directive-executor.d.ts.map +1 -1
- package/dist/directive/directive-executor.js +23 -21
- package/dist/directive/directive-executor.js.map +1 -1
- package/dist/directive/phase-sync.d.ts +28 -15
- package/dist/directive/phase-sync.d.ts.map +1 -1
- package/dist/directive/phase-sync.js +28 -36
- package/dist/directive/phase-sync.js.map +1 -1
- package/dist/directive/resolver-dispatch.d.ts +19 -92
- package/dist/directive/resolver-dispatch.d.ts.map +1 -1
- package/dist/directive/resolver-dispatch.js +19 -65
- package/dist/directive/resolver-dispatch.js.map +1 -1
- package/dist/focus/focus-engine.d.ts.map +1 -1
- package/dist/focus/focus-engine.js +26 -0
- package/dist/focus/focus-engine.js.map +1 -1
- package/dist/focus/focus-executor.d.ts.map +1 -1
- package/dist/focus/focus-executor.js +290 -256
- package/dist/focus/focus-executor.js.map +1 -1
- package/dist/focus/focus-loop-registry.d.ts.map +1 -1
- package/dist/focus/focus-loop-registry.js +43 -1
- package/dist/focus/focus-loop-registry.js.map +1 -1
- package/dist/focus/focus-respawn-guard.d.ts.map +1 -1
- package/dist/focus/focus-respawn-guard.js +11 -2
- package/dist/focus/focus-respawn-guard.js.map +1 -1
- package/dist/focus/focus-team-state.d.ts +11 -0
- package/dist/focus/focus-team-state.d.ts.map +1 -1
- package/dist/focus/focus-team-state.js +17 -0
- package/dist/focus/focus-team-state.js.map +1 -1
- package/dist/focus/listener-auto-advance.d.ts +13 -1
- package/dist/focus/listener-auto-advance.d.ts.map +1 -1
- package/dist/focus/listener-auto-advance.js +103 -22
- package/dist/focus/listener-auto-advance.js.map +1 -1
- package/dist/focus/listener.d.ts.map +1 -1
- package/dist/focus/listener.js +125 -75
- package/dist/focus/listener.js.map +1 -1
- package/dist/focus/tick-deadline.d.ts +55 -0
- package/dist/focus/tick-deadline.d.ts.map +1 -0
- package/dist/focus/tick-deadline.js +91 -0
- package/dist/focus/tick-deadline.js.map +1 -0
- package/dist/focus-stage-lifecycle/index.d.ts +18 -25
- package/dist/focus-stage-lifecycle/index.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle/index.js +26 -38
- package/dist/focus-stage-lifecycle/index.js.map +1 -1
- package/dist/focus-stage-lifecycle/wedge-cause-arbiter.d.ts +52 -0
- package/dist/focus-stage-lifecycle/wedge-cause-arbiter.d.ts.map +1 -0
- package/dist/focus-stage-lifecycle/wedge-cause-arbiter.js +94 -0
- package/dist/focus-stage-lifecycle/wedge-cause-arbiter.js.map +1 -0
- package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts +18 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.js +57 -7
- package/dist/focus-stage-lifecycle/wedge-watchdog.js.map +1 -1
- package/dist/guard/condition-evaluators.d.ts +9 -0
- package/dist/guard/condition-evaluators.d.ts.map +1 -1
- package/dist/guard/condition-evaluators.js +15 -0
- package/dist/guard/condition-evaluators.js.map +1 -1
- package/dist/guard/guard-evaluator.d.ts +17 -1
- package/dist/guard/guard-evaluator.d.ts.map +1 -1
- package/dist/guard/guard-evaluator.js +61 -2
- package/dist/guard/guard-evaluator.js.map +1 -1
- package/dist/guard/trigger-executor.d.ts +30 -18
- package/dist/guard/trigger-executor.d.ts.map +1 -1
- package/dist/guard/trigger-executor.js +55 -31
- package/dist/guard/trigger-executor.js.map +1 -1
- package/dist/prompt/team-prompt-base.d.ts +1 -1
- package/dist/prompt/team-prompt-base.d.ts.map +1 -1
- package/dist/prompt/team-prompt-base.js +1 -1
- package/dist/prompt/team-prompt-base.js.map +1 -1
- package/dist/prompt-sections/persona-sections.d.ts +0 -32
- package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
- package/dist/prompt-sections/persona-sections.js +19 -88
- package/dist/prompt-sections/persona-sections.js.map +1 -1
- package/dist/queries/deliveries.d.ts +23 -0
- package/dist/queries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries.js +6 -0
- package/dist/queries/deliveries.js.map +1 -1
- package/dist/queries/focuses.d.ts +36 -0
- package/dist/queries/focuses.d.ts.map +1 -1
- package/dist/queries/focuses.js +45 -0
- package/dist/queries/focuses.js.map +1 -1
- package/dist/queries/guards.d.ts +10 -0
- package/dist/queries/guards.d.ts.map +1 -1
- package/dist/queries/guards.js +14 -1
- package/dist/queries/guards.js.map +1 -1
- package/dist/queries/issues.d.ts +65 -1
- package/dist/queries/issues.d.ts.map +1 -1
- package/dist/queries/issues.js +135 -2
- package/dist/queries/issues.js.map +1 -1
- package/dist/queries/schemas.d.ts +51 -0
- package/dist/queries/schemas.d.ts.map +1 -1
- package/dist/queries/schemas.js +34 -0
- package/dist/queries/schemas.js.map +1 -1
- package/dist/queries/verification.d.ts +5 -6
- package/dist/queries/verification.d.ts.map +1 -1
- package/dist/queries/verification.js +5 -6
- package/dist/queries/verification.js.map +1 -1
- package/dist/resolvers/loop-persona.d.ts +1 -11
- package/dist/resolvers/loop-persona.d.ts.map +1 -1
- package/dist/resolvers/loop-persona.js +2 -16
- package/dist/resolvers/loop-persona.js.map +1 -1
- package/dist/shell/unified-shell-provisioning.d.ts +40 -0
- package/dist/shell/unified-shell-provisioning.d.ts.map +1 -1
- package/dist/shell/unified-shell-provisioning.js +72 -0
- package/dist/shell/unified-shell-provisioning.js.map +1 -1
- package/dist/shell/unified-shell.d.ts.map +1 -1
- package/dist/shell/unified-shell.js +18 -1
- package/dist/shell/unified-shell.js.map +1 -1
- package/dist/spawn/helpers.d.ts.map +1 -1
- package/dist/spawn/helpers.js +6 -1
- package/dist/spawn/helpers.js.map +1 -1
- package/dist/spawn/process-spawn.d.ts.map +1 -1
- package/dist/spawn/process-spawn.js +7 -0
- package/dist/spawn/process-spawn.js.map +1 -1
- package/dist/spawn/spawn-cooldown.d.ts +41 -7
- package/dist/spawn/spawn-cooldown.d.ts.map +1 -1
- package/dist/spawn/spawn-cooldown.js +47 -0
- package/dist/spawn/spawn-cooldown.js.map +1 -1
- package/dist/spawn/spawn-decision.d.ts.map +1 -1
- package/dist/spawn/spawn-decision.js +33 -1
- package/dist/spawn/spawn-decision.js.map +1 -1
- package/dist/verify/stall-detectors.d.ts +20 -8
- package/dist/verify/stall-detectors.d.ts.map +1 -1
- package/dist/verify/stall-detectors.js +27 -46
- package/dist/verify/stall-detectors.js.map +1 -1
- package/dist/workflow/gate-failure-policy.d.ts +48 -0
- package/dist/workflow/gate-failure-policy.d.ts.map +1 -0
- package/dist/workflow/gate-failure-policy.js +57 -0
- package/dist/workflow/gate-failure-policy.js.map +1 -0
- package/dist/workflow/pipeline-config.d.ts +2 -2
- package/dist/workflow/pipeline-config.js +2 -2
- package/package.json +1 -1
- package/dist/directive/close-loop-stage.d.ts +0 -50
- package/dist/directive/close-loop-stage.d.ts.map +0 -1
- package/dist/directive/close-loop-stage.js +0 -210
- package/dist/directive/close-loop-stage.js.map +0 -1
- package/dist/focus-stage-lifecycle/review-convergence.d.ts +0 -133
- package/dist/focus-stage-lifecycle/review-convergence.d.ts.map +0 -1
- package/dist/focus-stage-lifecycle/review-convergence.js +0 -237
- package/dist/focus-stage-lifecycle/review-convergence.js.map +0 -1
|
@@ -14,10 +14,45 @@
|
|
|
14
14
|
* the exact state it would approve). First drift arms a full-pass re-review (no
|
|
15
15
|
* escalation); a second consecutive drift files ONE needs_operator escalation
|
|
16
16
|
* (deduped in the DB by kind+focus). Cleared on a coverage-complete exit and on
|
|
17
|
-
* the coverage-escalation re-arm edge.
|
|
18
|
-
*
|
|
17
|
+
* the coverage-escalation re-arm edge.
|
|
18
|
+
*
|
|
19
|
+
* DURABLE: the count is a spent budget toward the review_coverage_incomplete
|
|
20
|
+
* escalation, persisted to product_focuses.below_coverage_drift_count so the
|
|
21
|
+
* second drift is still reached when a daemon re-exec falls between the two --
|
|
22
|
+
* "a spent budget stays spent" (TEL-2). recordBelowCoverageDrift /
|
|
23
|
+
* resetCoverageDriftState write through; hydrateBelowCoverageDriftCount restores
|
|
24
|
+
* it on boot. (Mutate ONLY through those functions so the write-through holds --
|
|
25
|
+
* the raw Map export remains for the read/reset call sites.)
|
|
19
26
|
*/
|
|
20
27
|
export const belowCoverageDriftCounts = new Map();
|
|
28
|
+
let coveragePersister = null;
|
|
29
|
+
/** Register (or clear, with null) the durable write-through persister at boot. */
|
|
30
|
+
export function setCoverageDriftPersister(fn) {
|
|
31
|
+
coveragePersister = fn;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Increment a focus's consecutive below-coverage drift streak by one, write it
|
|
35
|
+
* through durably, and return the new streak. The single mutation path for the
|
|
36
|
+
* increment so the durable column cannot drift from the in-memory Map.
|
|
37
|
+
*/
|
|
38
|
+
export function recordBelowCoverageDrift(focusId) {
|
|
39
|
+
const streak = (belowCoverageDriftCounts.get(focusId) ?? 0) + 1;
|
|
40
|
+
belowCoverageDriftCounts.set(focusId, streak);
|
|
41
|
+
coveragePersister?.(focusId, streak);
|
|
42
|
+
return streak;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Restore a focus's below-coverage drift count from its persisted column, the
|
|
46
|
+
* first time the daemon sees the focus after a (re-)start. Non-clobbering +
|
|
47
|
+
* first-sight-only; skips a focus with no persisted streak.
|
|
48
|
+
*/
|
|
49
|
+
export function hydrateBelowCoverageDriftCount(focusId, count) {
|
|
50
|
+
if (belowCoverageDriftCounts.has(focusId))
|
|
51
|
+
return; // in-memory wins during a run
|
|
52
|
+
if (count <= 0)
|
|
53
|
+
return; // no streak to restore
|
|
54
|
+
belowCoverageDriftCounts.set(focusId, count);
|
|
55
|
+
}
|
|
21
56
|
/**
|
|
22
57
|
* Focuses whose NEXT review must be a full pass (drift was detected, so the
|
|
23
58
|
* prior coverage cannot be trusted incrementally). Consumed + cleared by the
|
|
@@ -35,8 +70,13 @@ export const forceFullPassReviewFocuses = new Set();
|
|
|
35
70
|
* mirrors resetDeliveryAdvancementGuard's role for the team_failure re-arm.
|
|
36
71
|
*/
|
|
37
72
|
export function resetCoverageDriftState(focusId) {
|
|
73
|
+
const hadStreak = (belowCoverageDriftCounts.get(focusId) ?? 0) > 0;
|
|
38
74
|
belowCoverageDriftCounts.delete(focusId);
|
|
39
75
|
forceFullPassReviewFocuses.delete(focusId);
|
|
76
|
+
// Write the cleared budget through -- but only when it stood above 0, to avoid
|
|
77
|
+
// a needless DB write on every routed exit / re-arm (the streak is usually 0).
|
|
78
|
+
if (hadStreak)
|
|
79
|
+
coveragePersister?.(focusId, 0);
|
|
40
80
|
}
|
|
41
81
|
/** Test reset hook for the in-memory drift trackers. */
|
|
42
82
|
export function __resetCoverageDriftStateForTests() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coverage-drift-state.js","sourceRoot":"","sources":["../../src/completion/coverage-drift-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH
|
|
1
|
+
{"version":3,"file":"coverage-drift-state.js","sourceRoot":"","sources":["../../src/completion/coverage-drift-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAAkB,CAAC;AASlE,IAAI,iBAAiB,GAAkC,IAAI,CAAC;AAE5D,kFAAkF;AAClF,MAAM,UAAU,yBAAyB,CAAC,EAAiC;IACzE,iBAAiB,GAAG,EAAE,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,MAAM,MAAM,GAAG,CAAC,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAChE,wBAAwB,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9C,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACrC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAAC,OAAe,EAAE,KAAa;IAC3E,IAAI,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,CAAC,8BAA8B;IACjF,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,CAAC,uBAAuB;IAC/C,wBAAwB,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,GAAG,EAAU,CAAC;AAE5D;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAe;IACrD,MAAM,SAAS,GAAG,CAAC,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACnE,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzC,0BAA0B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3C,+EAA+E;IAC/E,+EAA+E;IAC/E,IAAI,SAAS;QAAE,iBAAiB,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,iCAAiC;IAC/C,wBAAwB,CAAC,KAAK,EAAE,CAAC;IACjC,0BAA0B,CAAC,KAAK,EAAE,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Close half for the review_coverage_incomplete spawn block (delivery 7, Task 2).
|
|
3
|
+
*
|
|
4
|
+
* applyRespawnGuard parks EVERY spawn (coding AND review) while a
|
|
5
|
+
* review_coverage_incomplete escalation is open. The drift-streak breaker files
|
|
6
|
+
* it precisely because the focus branch kept advancing DURING each review pass,
|
|
7
|
+
* so a clean review never covered the exact state it would approve. That creates
|
|
8
|
+
* a deadlock: with review spawns blocked, no review can run to complete coverage,
|
|
9
|
+
* so the escalation can never clear at the review-exit site.
|
|
10
|
+
*
|
|
11
|
+
* The clearing condition is SPAWN-INDEPENDENT and distinct from delivery
|
|
12
|
+
* advancement (Task 1's signal): the branch has STABILIZED. The escalation
|
|
13
|
+
* records the branch tip at filing (metadata.current_tip). When the focus branch
|
|
14
|
+
* tip has not moved since -- no new commits landed -- a re-review can now cover
|
|
15
|
+
* the exact state, so the daemon resolves the escalation itself. applyRespawnGuard
|
|
16
|
+
* then permits a review spawn; if the branch has in fact re-drifted, the next
|
|
17
|
+
* review re-files the escalation, and the whole cycle is bounded by the existing
|
|
18
|
+
* review_cycle_cap. No human act.
|
|
19
|
+
*
|
|
20
|
+
* Pure decision (isCoverageBranchStable) + a thin reconcile whose git read,
|
|
21
|
+
* escalation list, and resolve are injected so it is unit-testable with no real
|
|
22
|
+
* git or DB.
|
|
23
|
+
*/
|
|
24
|
+
import { listOpenFocusEscalationsOfKind, markEscalationResolved as defaultMarkEscalationResolved } from '../queries/issues.js';
|
|
25
|
+
import { resolveRef as defaultResolveRef } from '../git/index.js';
|
|
26
|
+
/**
|
|
27
|
+
* Pure decision: has the focus branch STABILIZED at the tip recorded when the
|
|
28
|
+
* coverage-incomplete escalation was filed? True only when BOTH tips are known
|
|
29
|
+
* and equal (no commits landed since filing). A missing recorded tip (a legacy
|
|
30
|
+
* filing, or a null live read) is NOT stable -- the hold is kept, so a re-review
|
|
31
|
+
* is never armed over an unknown/moving branch. Exported for direct unit testing.
|
|
32
|
+
*/
|
|
33
|
+
export declare function isCoverageBranchStable(recordedTip: string | null | undefined, liveTip: string | null): boolean;
|
|
34
|
+
export interface CoverageStabilizedDeps {
|
|
35
|
+
/** List the focus's open review_coverage_incomplete rows (id + metadata). */
|
|
36
|
+
listOpen: typeof listOpenFocusEscalationsOfKind;
|
|
37
|
+
/** Resolve the focus branch ref to its live tip SHA (null when unreadable). */
|
|
38
|
+
resolveRef: typeof defaultResolveRef;
|
|
39
|
+
/** Resolve a single escalation row (the close-half write). */
|
|
40
|
+
markEscalationResolved: typeof defaultMarkEscalationResolved;
|
|
41
|
+
}
|
|
42
|
+
export interface CoverageStabilizedContext {
|
|
43
|
+
focusId: string;
|
|
44
|
+
focusName: string;
|
|
45
|
+
/** Pinned focus branch identity (product_focuses.branch_name), or null. */
|
|
46
|
+
branchName: string | null;
|
|
47
|
+
/** Product repo path -- the branch ref lives in its git dir (worktrees share it). */
|
|
48
|
+
repoPath: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Reconcile ONE focus's open review_coverage_incomplete hold: resolve it iff the
|
|
52
|
+
* focus branch has stabilized at the tip recorded at filing. Best-effort: any
|
|
53
|
+
* failure is logged and swallowed so the caller's cascade pass is never blocked.
|
|
54
|
+
* Returns the number of holds resolved (0 or 1 in practice -- the kind is
|
|
55
|
+
* cause-key deduped to one open row per focus).
|
|
56
|
+
*/
|
|
57
|
+
export declare function reconcileCoverageIncompleteHold(ctx: CoverageStabilizedContext, deps?: CoverageStabilizedDeps): Promise<number>;
|
|
58
|
+
//# sourceMappingURL=coverage-stabilized.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coverage-stabilized.d.ts","sourceRoot":"","sources":["../../src/completion/coverage-stabilized.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,8BAA8B,EAAE,sBAAsB,IAAI,6BAA6B,EAA8C,MAAM,sBAAsB,CAAC;AAC3K,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAKlE;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACtC,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAET;AAED,MAAM,WAAW,sBAAsB;IACrC,6EAA6E;IAC7E,QAAQ,EAAE,OAAO,8BAA8B,CAAC;IAChD,+EAA+E;IAC/E,UAAU,EAAE,OAAO,iBAAiB,CAAC;IACrC,8DAA8D;IAC9D,sBAAsB,EAAE,OAAO,6BAA6B,CAAC;CAC9D;AAQD,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,qFAAqF;IACrF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,yBAAyB,EAC9B,IAAI,GAAE,sBAAoC,GACzC,OAAO,CAAC,MAAM,CAAC,CAkCjB"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Close half for the review_coverage_incomplete spawn block (delivery 7, Task 2).
|
|
3
|
+
*
|
|
4
|
+
* applyRespawnGuard parks EVERY spawn (coding AND review) while a
|
|
5
|
+
* review_coverage_incomplete escalation is open. The drift-streak breaker files
|
|
6
|
+
* it precisely because the focus branch kept advancing DURING each review pass,
|
|
7
|
+
* so a clean review never covered the exact state it would approve. That creates
|
|
8
|
+
* a deadlock: with review spawns blocked, no review can run to complete coverage,
|
|
9
|
+
* so the escalation can never clear at the review-exit site.
|
|
10
|
+
*
|
|
11
|
+
* The clearing condition is SPAWN-INDEPENDENT and distinct from delivery
|
|
12
|
+
* advancement (Task 1's signal): the branch has STABILIZED. The escalation
|
|
13
|
+
* records the branch tip at filing (metadata.current_tip). When the focus branch
|
|
14
|
+
* tip has not moved since -- no new commits landed -- a re-review can now cover
|
|
15
|
+
* the exact state, so the daemon resolves the escalation itself. applyRespawnGuard
|
|
16
|
+
* then permits a review spawn; if the branch has in fact re-drifted, the next
|
|
17
|
+
* review re-files the escalation, and the whole cycle is bounded by the existing
|
|
18
|
+
* review_cycle_cap. No human act.
|
|
19
|
+
*
|
|
20
|
+
* Pure decision (isCoverageBranchStable) + a thin reconcile whose git read,
|
|
21
|
+
* escalation list, and resolve are injected so it is unit-testable with no real
|
|
22
|
+
* git or DB.
|
|
23
|
+
*/
|
|
24
|
+
import { listOpenFocusEscalationsOfKind, markEscalationResolved as defaultMarkEscalationResolved, REVIEW_COVERAGE_INCOMPLETE_ESCALATION_KIND } from '../queries/issues.js';
|
|
25
|
+
import { resolveRef as defaultResolveRef } from '../git/index.js';
|
|
26
|
+
import { createLogger } from '../shell/log.js';
|
|
27
|
+
const log = createLogger({ module: 'focus-executor' });
|
|
28
|
+
/**
|
|
29
|
+
* Pure decision: has the focus branch STABILIZED at the tip recorded when the
|
|
30
|
+
* coverage-incomplete escalation was filed? True only when BOTH tips are known
|
|
31
|
+
* and equal (no commits landed since filing). A missing recorded tip (a legacy
|
|
32
|
+
* filing, or a null live read) is NOT stable -- the hold is kept, so a re-review
|
|
33
|
+
* is never armed over an unknown/moving branch. Exported for direct unit testing.
|
|
34
|
+
*/
|
|
35
|
+
export function isCoverageBranchStable(recordedTip, liveTip) {
|
|
36
|
+
return !!recordedTip && !!liveTip && recordedTip === liveTip;
|
|
37
|
+
}
|
|
38
|
+
const defaultDeps = {
|
|
39
|
+
listOpen: listOpenFocusEscalationsOfKind,
|
|
40
|
+
resolveRef: defaultResolveRef,
|
|
41
|
+
markEscalationResolved: defaultMarkEscalationResolved,
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Reconcile ONE focus's open review_coverage_incomplete hold: resolve it iff the
|
|
45
|
+
* focus branch has stabilized at the tip recorded at filing. Best-effort: any
|
|
46
|
+
* failure is logged and swallowed so the caller's cascade pass is never blocked.
|
|
47
|
+
* Returns the number of holds resolved (0 or 1 in practice -- the kind is
|
|
48
|
+
* cause-key deduped to one open row per focus).
|
|
49
|
+
*/
|
|
50
|
+
export async function reconcileCoverageIncompleteHold(ctx, deps = defaultDeps) {
|
|
51
|
+
if (!ctx.branchName)
|
|
52
|
+
return 0; // no pinned branch identity -> nothing to compare
|
|
53
|
+
let open;
|
|
54
|
+
try {
|
|
55
|
+
open = await deps.listOpen(ctx.focusId, REVIEW_COVERAGE_INCOMPLETE_ESCALATION_KIND);
|
|
56
|
+
}
|
|
57
|
+
catch (err) {
|
|
58
|
+
log.warn(`[coverage-stabilized] list failed for "${ctx.focusName}": ${err.message}`);
|
|
59
|
+
return 0;
|
|
60
|
+
}
|
|
61
|
+
if (open.length === 0)
|
|
62
|
+
return 0;
|
|
63
|
+
const liveTip = deps.resolveRef(ctx.repoPath, ctx.branchName);
|
|
64
|
+
let resolved = 0;
|
|
65
|
+
for (const row of open) {
|
|
66
|
+
const recordedTip = row.metadata?.current_tip ?? null;
|
|
67
|
+
if (!isCoverageBranchStable(recordedTip, liveTip))
|
|
68
|
+
continue;
|
|
69
|
+
try {
|
|
70
|
+
await deps.markEscalationResolved(row.id, 'Auto-resolved by the daemon: the focus branch stabilized at the tip recorded when coverage-incomplete ' +
|
|
71
|
+
'was filed (no commits since), so a re-review can now complete coverage -- the spawn block cleared.');
|
|
72
|
+
resolved++;
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
log.warn(`[coverage-stabilized] resolve failed for escalation ${row.id} on "${ctx.focusName}": ${err.message}`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (resolved > 0) {
|
|
79
|
+
log.info(`[coverage-stabilized] Resolved ${resolved} review_coverage_incomplete hold(s) for "${ctx.focusName}" ` +
|
|
80
|
+
`-- branch stabilized at ${liveTip?.slice(0, 12)}; review spawns unblocked with no human act.`);
|
|
81
|
+
}
|
|
82
|
+
return resolved;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=coverage-stabilized.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coverage-stabilized.js","sourceRoot":"","sources":["../../src/completion/coverage-stabilized.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,8BAA8B,EAAE,sBAAsB,IAAI,6BAA6B,EAAE,0CAA0C,EAAE,MAAM,sBAAsB,CAAC;AAC3K,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,WAAsC,EACtC,OAAsB;IAEtB,OAAO,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,IAAI,WAAW,KAAK,OAAO,CAAC;AAC/D,CAAC;AAWD,MAAM,WAAW,GAA2B;IAC1C,QAAQ,EAAE,8BAA8B;IACxC,UAAU,EAAE,iBAAiB;IAC7B,sBAAsB,EAAE,6BAA6B;CACtD,CAAC;AAWF;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,GAA8B,EAC9B,OAA+B,WAAW;IAE1C,IAAI,CAAC,GAAG,CAAC,UAAU;QAAE,OAAO,CAAC,CAAC,CAAC,kDAAkD;IACjF,IAAI,IAAqE,CAAC;IAC1E,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,0CAA0C,CAAC,CAAC;IACtF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,0CAA0C,GAAG,CAAC,SAAS,MAAO,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAChG,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9D,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,WAAW,GAAI,GAAG,CAAC,QAAQ,EAAE,WAAyC,IAAI,IAAI,CAAC;QACrF,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,OAAO,CAAC;YAAE,SAAS;QAC5D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,sBAAsB,CAC/B,GAAG,CAAC,EAAE,EACN,wGAAwG;gBACtG,oGAAoG,CACvG,CAAC;YACF,QAAQ,EAAE,CAAC;QACb,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,uDAAuD,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,SAAS,MAAO,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7H,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACjB,GAAG,CAAC,IAAI,CACN,kCAAkC,QAAQ,4CAA4C,GAAG,CAAC,SAAS,IAAI;YACvG,2BAA2B,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,8CAA8C,CAC/F,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -70,6 +70,27 @@ export interface DeliveryAdvancementDecision {
|
|
|
70
70
|
noAdvancementCycles: number;
|
|
71
71
|
thresholdReached: boolean;
|
|
72
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Durable write-through seam for the cross-respawn no-progress state. Registered
|
|
75
|
+
* once at daemon boot (setDeliveryAdvancementPersister); called best-effort
|
|
76
|
+
* (fire-and-forget) whenever the state changes, and with null when the guard is
|
|
77
|
+
* reset for a focus. Unset in tests -> the guard stays pure in-memory. This is
|
|
78
|
+
* what makes a spent no-advancement budget survive the auto-updater's re-exec
|
|
79
|
+
* (module-scope state alone reset noAdvancementCycles to 0 every restart, handing
|
|
80
|
+
* a focus about to trip its team_failure halt a fresh budget).
|
|
81
|
+
*/
|
|
82
|
+
export type DeliveryAdvancementPersister = (focusId: string, state: DeliveryAdvancementState | null) => void;
|
|
83
|
+
/** Register (or clear, with null) the durable write-through persister at boot. */
|
|
84
|
+
export declare function setDeliveryAdvancementPersister(fn: DeliveryAdvancementPersister | null): void;
|
|
85
|
+
/**
|
|
86
|
+
* Restore a focus's no-progress watchdog state from its persisted column, the
|
|
87
|
+
* FIRST time the daemon sees the focus after a (re-)start. Non-clobbering: a
|
|
88
|
+
* state already tracked in memory this run wins (hydrate never overwrites a live
|
|
89
|
+
* cycle). Restoring the SNAPSHOT alongside the counter is essential -- a bare
|
|
90
|
+
* counter would rebase to 0 on the first post-restart cycle for lack of a prior
|
|
91
|
+
* to compare against, silently forgiving the streak.
|
|
92
|
+
*/
|
|
93
|
+
export declare function hydrateDeliveryAdvancementState(focusId: string, state: DeliveryAdvancementState | null): void;
|
|
73
94
|
export declare function takeDeliveryAdvancementSnapshot(deliveries: Pick<FocusDeliveryInfo, 'id' | 'executionStatus'>[], issues?: Pick<FocusIssueInfo, 'id' | 'status'>[], focusHeadSha?: string | null): DeliveryAdvancementSnapshot;
|
|
74
95
|
export declare function deliveryAdvancementSnapshotsEqual(a: DeliveryAdvancementSnapshot, b: DeliveryAdvancementSnapshot): boolean;
|
|
75
96
|
export declare function recordDeliveryAdvancementCycle(focusId: string, deliveries: Pick<FocusDeliveryInfo, 'id' | 'executionStatus'>[], issues: Pick<FocusIssueInfo, 'id' | 'status'>[], focusHeadSha: string | null, threshold: number,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery-advancement-guard.d.ts","sourceRoot":"","sources":["../../src/completion/delivery-advancement-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE3E,MAAM,WAAW,2BAA2B;IAC1C;iFAC6E;IAC7E,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC;mEAC+D;IAC/D,gBAAgB,EAAE,MAAM,CAAC;IACzB;+DAC2D;IAC3D,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,2BAA2B,CAAC;IACtC,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,OAAO,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,OAAO,CAAC;CAC3B;
|
|
1
|
+
{"version":3,"file":"delivery-advancement-guard.d.ts","sourceRoot":"","sources":["../../src/completion/delivery-advancement-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE3E,MAAM,WAAW,2BAA2B;IAC1C;iFAC6E;IAC7E,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC;mEAC+D;IAC/D,gBAAgB,EAAE,MAAM,CAAC;IACzB;+DAC2D;IAC3D,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,2BAA2B,CAAC;IACtC,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,OAAO,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAID;;;;;;;;GAQG;AACH,MAAM,MAAM,4BAA4B,GAAG,CACzC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,wBAAwB,GAAG,IAAI,KACnC,IAAI,CAAC;AAIV,kFAAkF;AAClF,wBAAgB,+BAA+B,CAAC,EAAE,EAAE,4BAA4B,GAAG,IAAI,GAAG,IAAI,CAE7F;AAQD;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,wBAAwB,GAAG,IAAI,GACrC,IAAI,CAIN;AAeD,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,iBAAiB,CAAC,EAAE,EAC/D,MAAM,GAAE,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,QAAQ,CAAC,EAAO,EACpD,YAAY,GAAE,MAAM,GAAG,IAAW,GACjC,2BAA2B,CAU7B;AAED,wBAAgB,iCAAiC,CAC/C,CAAC,EAAE,2BAA2B,EAC9B,CAAC,EAAE,2BAA2B,GAC7B,OAAO,CAaT;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,iBAAiB,CAAC,EAAE,EAC/D,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,QAAQ,CAAC,EAAE,EAC/C,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,SAAS,EAAE,MAAM;AACjB,+EAA+E;AAC/E,KAAK,GAAE,MAAmB;AAC1B;;;;;GAKG;AACH,OAAO,SAAI,GACV,2BAA2B,CAqC7B;AAED,wBAAgB,6BAA6B,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CASpE"}
|
|
@@ -41,6 +41,31 @@
|
|
|
41
41
|
* guard: cross-respawn; madeProgress: within a single keep-alive team).
|
|
42
42
|
*/
|
|
43
43
|
const perFocusState = new Map();
|
|
44
|
+
let advancementPersister = null;
|
|
45
|
+
/** Register (or clear, with null) the durable write-through persister at boot. */
|
|
46
|
+
export function setDeliveryAdvancementPersister(fn) {
|
|
47
|
+
advancementPersister = fn;
|
|
48
|
+
}
|
|
49
|
+
/** Set the in-memory state AND write it through to durable storage. */
|
|
50
|
+
function commitState(focusId, state) {
|
|
51
|
+
perFocusState.set(focusId, state);
|
|
52
|
+
advancementPersister?.(focusId, state);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Restore a focus's no-progress watchdog state from its persisted column, the
|
|
56
|
+
* FIRST time the daemon sees the focus after a (re-)start. Non-clobbering: a
|
|
57
|
+
* state already tracked in memory this run wins (hydrate never overwrites a live
|
|
58
|
+
* cycle). Restoring the SNAPSHOT alongside the counter is essential -- a bare
|
|
59
|
+
* counter would rebase to 0 on the first post-restart cycle for lack of a prior
|
|
60
|
+
* to compare against, silently forgiving the streak.
|
|
61
|
+
*/
|
|
62
|
+
export function hydrateDeliveryAdvancementState(focusId, state) {
|
|
63
|
+
if (!state)
|
|
64
|
+
return;
|
|
65
|
+
if (perFocusState.has(focusId))
|
|
66
|
+
return; // in-memory wins during a run
|
|
67
|
+
perFocusState.set(focusId, state);
|
|
68
|
+
}
|
|
44
69
|
/**
|
|
45
70
|
* Stable, key-order-independent fingerprint of the work-issue state. Sorting by
|
|
46
71
|
* issueId makes the fingerprint depend only on the set of issues and their
|
|
@@ -94,14 +119,14 @@ floorMs = 0) {
|
|
|
94
119
|
const snapshot = takeDeliveryAdvancementSnapshot(deliveries, issues, focusHeadSha);
|
|
95
120
|
const prior = perFocusState.get(focusId);
|
|
96
121
|
if (!prior) {
|
|
97
|
-
|
|
122
|
+
commitState(focusId, { snapshot, noAdvancementCycles: 0, lastRecordedAt: nowMs });
|
|
98
123
|
return { advanced: true, noAdvancementCycles: 0, thresholdReached: false };
|
|
99
124
|
}
|
|
100
125
|
const advanced = !deliveryAdvancementSnapshotsEqual(prior.snapshot, snapshot);
|
|
101
126
|
if (advanced) {
|
|
102
127
|
// Progress is progress regardless of timing -- reset the counter and rebase
|
|
103
128
|
// the snapshot + floor clock on this cycle.
|
|
104
|
-
|
|
129
|
+
commitState(focusId, { snapshot, noAdvancementCycles: 0, lastRecordedAt: nowMs });
|
|
105
130
|
return { advanced: true, noAdvancementCycles: 0, thresholdReached: false };
|
|
106
131
|
}
|
|
107
132
|
// No advancement. FLOOR the increment: a cycle arriving within floorMs of the
|
|
@@ -118,7 +143,7 @@ floorMs = 0) {
|
|
|
118
143
|
};
|
|
119
144
|
}
|
|
120
145
|
const noAdvancementCycles = prior.noAdvancementCycles + 1;
|
|
121
|
-
|
|
146
|
+
commitState(focusId, { snapshot, noAdvancementCycles, lastRecordedAt: nowMs });
|
|
122
147
|
return {
|
|
123
148
|
advanced,
|
|
124
149
|
noAdvancementCycles,
|
|
@@ -128,6 +153,9 @@ floorMs = 0) {
|
|
|
128
153
|
export function resetDeliveryAdvancementGuard(focusId) {
|
|
129
154
|
if (focusId) {
|
|
130
155
|
perFocusState.delete(focusId);
|
|
156
|
+
// Write the cleared state through so the re-arm (team_failure resolved) or a
|
|
157
|
+
// recovered focus does not re-hydrate a spent budget on the next restart.
|
|
158
|
+
advancementPersister?.(focusId, null);
|
|
131
159
|
}
|
|
132
160
|
else {
|
|
133
161
|
perFocusState.clear();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery-advancement-guard.js","sourceRoot":"","sources":["../../src/completion/delivery-advancement-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAoCH,MAAM,aAAa,GAAG,IAAI,GAAG,EAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"delivery-advancement-guard.js","sourceRoot":"","sources":["../../src/completion/delivery-advancement-guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,6 +51,15 @@ export declare function escalatePlanningFailure(params: {
|
|
|
51
51
|
focusName: string;
|
|
52
52
|
agentRoleId: string;
|
|
53
53
|
}, deps?: EscalationDeps): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Whether the stalled lead's STATED cause names a genuine human decision -- a
|
|
56
|
+
* change to WHAT gets built (scope / requirement / priority / product
|
|
57
|
+
* direction) -- as opposed to a machine-remediable blocker (a missing
|
|
58
|
+
* capability the incoming team can supply). Absent a stated cause it returns
|
|
59
|
+
* false, so a no-progress stall DEFAULTS to machine ownership: the human inbox
|
|
60
|
+
* receives it only on positive evidence, never as the reflexive default.
|
|
61
|
+
*/
|
|
62
|
+
export declare function statedCauseNeedsIntent(statedCause: string | undefined): boolean;
|
|
54
63
|
/**
|
|
55
64
|
* Escalate when the team has been re-engaged repeatedly without making
|
|
56
65
|
* any measurable progress on the remaining non-terminal deliveries.
|
|
@@ -65,6 +74,12 @@ export declare function escalateNoProgress(params: {
|
|
|
65
74
|
agentRoleId: string;
|
|
66
75
|
cycles: number;
|
|
67
76
|
remaining: FocusDeliveryInfo[];
|
|
77
|
+
/**
|
|
78
|
+
* The stalled lead's own stated cause (its exit summary), when available.
|
|
79
|
+
* Read to decide whether a NON-gate-stuck stall genuinely needs the intent
|
|
80
|
+
* owner; absent, the stall defaults to machine ownership (agent_resolvable).
|
|
81
|
+
*/
|
|
82
|
+
statedCause?: string;
|
|
68
83
|
}, deps?: EscalationDeps): Promise<void>;
|
|
69
84
|
/**
|
|
70
85
|
* Escalate when the team has no actionable work AND a remaining non-terminal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-escalations.d.ts","sourceRoot":"","sources":["../../src/completion/event-escalations.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAA+C,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAMhH,yEAAyE;AACzE,eAAO,MAAM,6BAA6B,oCAAoC,CAAC;AAE/E,gFAAgF;AAChF,eAAO,MAAM,6BAA6B,yDACc,CAAC;AAEzD;;;;;GAKG;AACH,eAAO,MAAM,iCAAiC,oEACqB,CAAC;AAEpE;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,6BAA6B,CAAC;AAEhE,eAAO,MAAM,mCAAmC,gEACe,CAAC;AAEhE,eAAO,MAAM,kCAAkC,iCAAiC,CAAC;AAEjF,2FAA2F;AAC3F,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CACvG;AAMD;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE;IACN,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,EACD,IAAI,GAAE,cAAsC,GAC3C,OAAO,CAAC,IAAI,CAAC,CAkCf;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE;IACN,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,iBAAiB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"event-escalations.d.ts","sourceRoot":"","sources":["../../src/completion/event-escalations.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAA+C,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAMhH,yEAAyE;AACzE,eAAO,MAAM,6BAA6B,oCAAoC,CAAC;AAE/E,gFAAgF;AAChF,eAAO,MAAM,6BAA6B,yDACc,CAAC;AAEzD;;;;;GAKG;AACH,eAAO,MAAM,iCAAiC,oEACqB,CAAC;AAEpE;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,6BAA6B,CAAC;AAEhE,eAAO,MAAM,mCAAmC,gEACe,CAAC;AAEhE,eAAO,MAAM,kCAAkC,iCAAiC,CAAC;AAEjF,2FAA2F;AAC3F,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CACvG;AAMD;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE;IACN,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,EACD,IAAI,GAAE,cAAsC,GAC3C,OAAO,CAAC,IAAI,CAAC,CAkCf;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAK/E;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE;IACN,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,EACD,IAAI,GAAE,cAAsC,GAC3C,OAAO,CAAC,IAAI,CAAC,CA2Hf;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE;IACN,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,iBAAiB,CAAC;IACzB,SAAS,EAAE,iBAAiB,EAAE,CAAC;CAChC,EACD,IAAI,GAAE,cAAsC,GAC3C,OAAO,CAAC,IAAI,CAAC,CAyEf;AAED;;;;;GAKG;AACH,wBAAsB,kCAAkC,CACtD,MAAM,EAAE;IACN,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,iBAAiB,EAAE,CAAC;CACjC,EACD,IAAI,GAAE,cAAsC,GAC3C,OAAO,CAAC,IAAI,CAAC,CAqDf"}
|
|
@@ -71,6 +71,19 @@ export async function escalatePlanningFailure(params, deps = defaultEscalationDe
|
|
|
71
71
|
log.error(`[focus-executor] Failed to create planning-failure escalation for "${focusName}": ${err.message}`);
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Whether the stalled lead's STATED cause names a genuine human decision -- a
|
|
76
|
+
* change to WHAT gets built (scope / requirement / priority / product
|
|
77
|
+
* direction) -- as opposed to a machine-remediable blocker (a missing
|
|
78
|
+
* capability the incoming team can supply). Absent a stated cause it returns
|
|
79
|
+
* false, so a no-progress stall DEFAULTS to machine ownership: the human inbox
|
|
80
|
+
* receives it only on positive evidence, never as the reflexive default.
|
|
81
|
+
*/
|
|
82
|
+
export function statedCauseNeedsIntent(statedCause) {
|
|
83
|
+
if (!statedCause)
|
|
84
|
+
return false;
|
|
85
|
+
return /\b(re-?scope|rescoping|requirement|intent|priorit|product decision|design decision|what to build|change (?:what|the scope)|which .{0,40}?(?:should|to build))\b/i.test(statedCause);
|
|
86
|
+
}
|
|
74
87
|
/**
|
|
75
88
|
* Escalate when the team has been re-engaged repeatedly without making
|
|
76
89
|
* any measurable progress on the remaining non-terminal deliveries.
|
|
@@ -96,11 +109,23 @@ export async function escalateNoProgress(params, deps = defaultEscalationDeps) {
|
|
|
96
109
|
const gateStuckDeliveries = params.remaining.filter(d => d.gateState != null);
|
|
97
110
|
const anyDaemonGateStuck = gateStuckDeliveries.length > 0;
|
|
98
111
|
const escalationKind = anyDaemonGateStuck ? 'daemon_gate_stuck' : 'team_failure';
|
|
99
|
-
//
|
|
100
|
-
//
|
|
112
|
+
// Ownership is decided from EVIDENCE, defaulting to the machine (TEL-1):
|
|
113
|
+
// - ANY gate-stuck delivery -> needs_operator (a daemon-side gap the
|
|
114
|
+
// operator triages from gate_state, on its own merits).
|
|
115
|
+
// - otherwise, the lead's STATED cause names a genuine build-changing
|
|
116
|
+
// decision -> needs_intent (the intent owner must re-scope/decide).
|
|
117
|
+
// - otherwise (the DEFAULT) -> agent_resolvable: a no-progress stall is
|
|
118
|
+
// usually a capability the incoming coding team can supply. The
|
|
119
|
+
// agent-resolvable transport rides it into the next spawn, and the
|
|
120
|
+
// agent-resolvable PROMOTION path escalates it to the operator only if it
|
|
121
|
+
// survives unresolved past the promotion window. So the human inbox
|
|
122
|
+
// receives a stall on evidence, never as the reflexive fall-through.
|
|
123
|
+
const needsIntent = statedCauseNeedsIntent(params.statedCause);
|
|
101
124
|
const disposition = anyDaemonGateStuck
|
|
102
125
|
? ESCALATION_DISPOSITIONS.NEEDS_OPERATOR
|
|
103
|
-
:
|
|
126
|
+
: needsIntent
|
|
127
|
+
? ESCALATION_DISPOSITIONS.NEEDS_INTENT
|
|
128
|
+
: ESCALATION_DISPOSITIONS.AGENT_RESOLVABLE;
|
|
104
129
|
// Evidence/payload only -- provenance (focusId) now lives in the first-class
|
|
105
130
|
// focus_id column, stamped via the anchor. hasOpenTeamFailureEscalation
|
|
106
131
|
// filters by the column, not metadata. cycles/gateStates are evidence.
|
|
@@ -108,6 +133,13 @@ export async function escalateNoProgress(params, deps = defaultEscalationDeps) {
|
|
|
108
133
|
cycles: params.cycles,
|
|
109
134
|
cause: escalationKind,
|
|
110
135
|
};
|
|
136
|
+
// Record the stated cause so the evidence-driven demotion (TEL-3) can
|
|
137
|
+
// re-classify this row later: a needs_intent team_failure whose recorded cause
|
|
138
|
+
// is NOT a human decision is a machine-remediable filing that should return to
|
|
139
|
+
// the machine lane. Absent here (legacy / no cause) reads as demotable.
|
|
140
|
+
if (params.statedCause) {
|
|
141
|
+
metadata.statedCause = params.statedCause;
|
|
142
|
+
}
|
|
111
143
|
if (anyDaemonGateStuck) {
|
|
112
144
|
metadata.gateStates = gateStuckDeliveries.map(d => ({
|
|
113
145
|
deliveryId: d.id,
|
|
@@ -131,11 +163,17 @@ export async function escalateNoProgress(params, deps = defaultEscalationDeps) {
|
|
|
131
163
|
`condition. See docs/runbook-verify-gate.md.`
|
|
132
164
|
: `Team for focus "${params.focusName}" has been re-engaged ${params.cycles} ` +
|
|
133
165
|
`consecutive cycles without measurable progress. Reason: ${NO_PROGRESS_ESCALATION_REASON}.\n\n` +
|
|
166
|
+
(params.statedCause ? `**Stated cause:** ${params.statedCause}\n` : '') +
|
|
134
167
|
`**Focus:** ${params.focusName}\n` +
|
|
135
168
|
`**Focus ID:** ${params.focusId}\n` +
|
|
136
169
|
`**Agent role:** ${params.agentRoleId}\n` +
|
|
137
170
|
`**Remaining non-terminal deliveries:**\n${remainingList}\n\n` +
|
|
138
|
-
|
|
171
|
+
(needsIntent
|
|
172
|
+
? `The stated cause names a build-changing decision -- the intent owner ` +
|
|
173
|
+
`must re-scope or decide before work can resume.`
|
|
174
|
+
: `Machine-owned (agent_resolvable): the incoming coding team will attempt ` +
|
|
175
|
+
`to resolve this on the next spawn. It is promoted to the operator only ` +
|
|
176
|
+
`if it survives unresolved past the agent-resolvable promotion window.`);
|
|
139
177
|
try {
|
|
140
178
|
await withRetry(() => deps.createEscalation({
|
|
141
179
|
organizationId: params.organizationId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-escalations.js","sourceRoot":"","sources":["../../src/completion/event-escalations.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EAAE,gBAAgB,IAAI,uBAAuB,EAA+B,MAAM,sBAAsB,CAAC;AAChH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAGvD,yEAAyE;AACzE,MAAM,CAAC,MAAM,6BAA6B,GAAG,iCAAiC,CAAC;AAE/E,gFAAgF;AAChF,MAAM,CAAC,MAAM,6BAA6B,GACxC,sDAAsD,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAC5C,iEAAiE,CAAC;AAEpE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,0BAA0B,CAAC;AAEhE,MAAM,CAAC,MAAM,mCAAmC,GAC9C,6DAA6D,CAAC;AAEhE,MAAM,CAAC,MAAM,kCAAkC,GAAG,8BAA8B,CAAC;AAOjF,MAAM,qBAAqB,GAAmB;IAC5C,gBAAgB,EAAE,uBAAuB;CAC1C,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAMC,EACD,OAAuB,qBAAqB;IAE5C,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IACrD,IAAI,CAAC;QACH,MAAM,SAAS,CACb,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAC1B,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,SAAS;YACT,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,kBAAkB,CAAC,mBAAmB;YAClD,yEAAyE;YACzE,WAAW,EAAE,uBAAuB,CAAC,YAAY;YACjD,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;YACnC,WAAW,EACT,4BAA4B,SAAS,sCAAsC;gBAC3E,oCAAoC,6BAA6B,OAAO;gBACxE,cAAc,SAAS,IAAI;gBAC3B,iBAAiB,MAAM,CAAC,OAAO,IAAI;gBACnC,mBAAmB,WAAW,MAAM;gBACpC,oEAAoE;gBACpE,kDAAkD;YACpD,YAAY,EAAE,oDAAoD,SAAS,IAAI;YAC/E,UAAU,EAAE,wIAAwI;SACrJ,CAAC,EACF,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,qCAAqC,MAAM,CAAC,OAAO,EAAE,EAAE,CACjF,CAAC;QACF,GAAG,CAAC,IAAI,CACN,6DAA6D,SAAS,IAAI;YAC1E,YAAY,6BAA6B,GAAG,CAC7C,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CACP,sEAAsE,SAAS,MAAO,GAAa,CAAC,OAAO,EAAE,CAC9G,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,
|
|
1
|
+
{"version":3,"file":"event-escalations.js","sourceRoot":"","sources":["../../src/completion/event-escalations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-phases.d.ts","sourceRoot":"","sources":["../../src/completion/event-phases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"event-phases.d.ts","sourceRoot":"","sources":["../../src/completion/event-phases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAO7F,OAAO,EAA6B,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAmB5F,OAAO,KAAK,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAc9E;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAEjD;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAE5C;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAE9C;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAI7C,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC9B,8EAA8E;IAC9E,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;IACvC,mBAAmB,EAAE,iBAAiB,EAAE,CAAC;IACzC,aAAa,EAAE,cAAc,EAAE,CAAC;IAChC,eAAe,EAAE,iBAAiB,EAAE,CAAC;IACrC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACvC,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAChC,uBAAuB,EAAE,MAAM,CAAC;IAChC,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,sBAAsB,EAAE,OAAO,CAAC;IAChC;;;OAGG;IACH,4BAA4B,EAAE,MAAM,GAAG,SAAS,CAAC;CAClD;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,sBAAsB,EAC3B,IAAI,EAAE,mBAAmB,EACzB,iBAAiB,EAAE,iBAAiB,EAAE,EACtC,mBAAmB,EAAE,iBAAiB,EAAE,EACxC,aAAa,EAAE,cAAc,EAAE,GAC9B,OAAO,CAAC,eAAe,CAAC,CAkL1B;AAID;;;;;;GAMG;AACH,wBAAsB,6BAA6B,CACjD,GAAG,EAAE,sBAAsB,EAC3B,IAAI,EAAE,mBAAmB,EACzB,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,gBAAgB,EACxB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,OAAO,CAAC,CAuDlB;AAID;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,sBAAsB,EAC3B,IAAI,EAAE,mBAAmB,EACzB,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,gBAAgB,EACxB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC,CAmSf"}
|
|
@@ -25,6 +25,7 @@ import { isStatusCascadable, isStatusAgentActionable } from '../workflow/stage-c
|
|
|
25
25
|
import { buildWakeMessage, buildReEngagementMessage } from '../prompt/focus-prompt-builder.js';
|
|
26
26
|
import { OPEN_ISSUE_STATUSES } from '../shell/constants.js';
|
|
27
27
|
import { isAuditPhaseFocus } from '../audit/audit-shape.js';
|
|
28
|
+
import { advancementReadFailsOpen } from '../workflow/gate-failure-policy.js';
|
|
28
29
|
import { shouldCheckNonAdvanceable } from './completion-decision.js';
|
|
29
30
|
import { takeProgressSnapshot, snapshotsEqual } from './progress-snapshot.js';
|
|
30
31
|
import { findNonAdvanceableDelivery } from './advanceability.js';
|
|
@@ -115,8 +116,10 @@ export async function computeCompletionFacts(ctx, deps, currentDeliveries, effec
|
|
|
115
116
|
});
|
|
116
117
|
}
|
|
117
118
|
catch (err) {
|
|
118
|
-
|
|
119
|
-
|
|
119
|
+
// ADVANCEMENT/LIVENESS read (focus ratification state) -> FAIL OPEN per the
|
|
120
|
+
// stated per-class policy: treat as not-audit-phase (false), so the team
|
|
121
|
+
// keeps working on a transient read error rather than being parked.
|
|
122
|
+
focusAuditPhase = advancementReadFailsOpen(`event-phases ratification "${focusName}"`, err, false);
|
|
120
123
|
}
|
|
121
124
|
}
|
|
122
125
|
// Planning deliveries count as team-actionable ONLY on a non-audit-phase focus
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-phases.js","sourceRoot":"","sources":["../../src/completion/event-phases.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"event-phases.js","sourceRoot":"","sources":["../../src/completion/event-phases.ts"],"names":[],"mappings":"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"}
|