@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
package/dist/focus/listener.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { getAgentRoles } from '../queries/roles.js';
|
|
10
10
|
import { checkDeliveryAutoAdvance, checkVerifyDeliveriesForOpenIssues, checkDeliveryWorkStart } from './listener-auto-advance.js';
|
|
11
|
+
import { checkPausedDeliveriesForRevival, buildDefaultPausedRevivalDeps } from '../delivery/paused-revival.js';
|
|
11
12
|
import { runReconcilerShadow } from '../delivery/delivery-reconciler-shadow.js';
|
|
12
13
|
import { spawnFocusTeam, hasActiveTeam, getActiveTeamCount, getActiveTeams, checkAndMergeCompletedDeliveries } from './focus-executor.js';
|
|
13
14
|
import { applyRespawnGuard } from './focus-respawn-guard.js';
|
|
@@ -75,10 +76,13 @@ let lastRolesRefreshAt = 0;
|
|
|
75
76
|
let healthCheckConsecutiveFailures = 0;
|
|
76
77
|
const HEALTH_CHECK_MAX_SKIP_CYCLES = 10; // max backoff = 10 * 30s = 5 minutes
|
|
77
78
|
// Spawn cooldown imported from dedicated module (avoids circular deps)
|
|
78
|
-
import { isInSpawnCooldown, isRespawnCycleTerminated } from '../spawn/spawn-cooldown.js';
|
|
79
|
+
import { isInSpawnCooldown, isRespawnCycleTerminated, hydrateSpawnCooldownEntry } from '../spawn/spawn-cooldown.js';
|
|
80
|
+
import { hydrateDeliveryAdvancementState } from '../completion/delivery-advancement-guard.js';
|
|
81
|
+
import { hydrateBelowCoverageDriftCount } from '../completion/coverage-drift-state.js';
|
|
79
82
|
import { shouldSkipPendingSpawn, recordPendingSpawnAttempt } from '../spawn/index.js';
|
|
80
83
|
import { fileRespawnCycleExhaustedEscalation } from '../spawn/respawn-cycle-escalation.js';
|
|
81
84
|
import { createLogger } from '../shell/log.js';
|
|
85
|
+
import { runWithTickDeadline, DEFAULT_TICK_DEADLINE_MS } from './tick-deadline.js';
|
|
82
86
|
const log = createLogger({ module: 'listener' });
|
|
83
87
|
/**
|
|
84
88
|
* Initialize the listener with configuration.
|
|
@@ -111,6 +115,19 @@ export async function initListener(daemonConfig) {
|
|
|
111
115
|
try {
|
|
112
116
|
const focuses = await getActiveFocuses(daemonConfig.organizationId, product.id);
|
|
113
117
|
for (const focus of focuses) {
|
|
118
|
+
// Restore the durable spawn-cooldown streak + `exhausted` latch from the
|
|
119
|
+
// persisted columns the first time we see each focus after a (re-)start,
|
|
120
|
+
// BEFORE any stage/review skip -- a halted focus must stay halted across
|
|
121
|
+
// a re-exec regardless of its stage. Non-clobbering + first-sight-only.
|
|
122
|
+
hydrateSpawnCooldownEntry(focus.focus_id, {
|
|
123
|
+
firstAt: focus.spawn_teardown_first_at,
|
|
124
|
+
lastAt: focus.spawn_teardown_last_at,
|
|
125
|
+
count: focus.spawn_teardown_count,
|
|
126
|
+
exhausted: focus.spawn_cooldown_exhausted,
|
|
127
|
+
});
|
|
128
|
+
// Same restart-recovery for the other two terminating bounds (TEL-2).
|
|
129
|
+
hydrateDeliveryAdvancementState(focus.focus_id, focus.delivery_advancement_state);
|
|
130
|
+
hydrateBelowCoverageDriftCount(focus.focus_id, focus.below_coverage_drift_count);
|
|
114
131
|
if (!focus.current_workflow_stage_id)
|
|
115
132
|
continue;
|
|
116
133
|
if (focus.review_requested_at) {
|
|
@@ -156,79 +173,102 @@ export function startDeliveryListener() {
|
|
|
156
173
|
// Per-product functions are called with product-scoped configs so that
|
|
157
174
|
// config.productId and config.repoPath resolve to the correct product.
|
|
158
175
|
pollInterval = safeInterval(async () => {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
176
|
+
// Deadline watchdog (TEL-3): surface a poll tick that stops making progress.
|
|
177
|
+
// safeInterval has no deadline and recordActivity() (heartbeat) is emitted
|
|
178
|
+
// inside this body, so a hung tick is silent AND stops the heartbeat -- from
|
|
179
|
+
// outside the process it looks idle, not stalled. runWithTickDeadline emits a
|
|
180
|
+
// warning-level `poll.stalled` health event if the body overruns and pairs a
|
|
181
|
+
// recovery when it settles; skipIfRunning above keeps overlapping ticks from
|
|
182
|
+
// piling up while a hung one drains.
|
|
183
|
+
await runWithTickDeadline('focus-poll', DEFAULT_TICK_DEADLINE_MS, async () => {
|
|
184
|
+
for (const product of config.products) {
|
|
185
|
+
const pc = configForProduct(config, product);
|
|
186
|
+
await ensureFocusWorktrees(pc, roles);
|
|
187
|
+
await checkForDeactivatedFocuses(pc);
|
|
188
|
+
await checkControlStateChanges(pc);
|
|
189
|
+
// Disarm reaper: clearing assigned_agent_role_id (dashboard Stop) only
|
|
190
|
+
// removes the focus from the spawn set; this stops the in-flight team via
|
|
191
|
+
// the same cooperative-stop -> SIGTERM path so Stop means stop. Runs after
|
|
192
|
+
// checkForDeactivatedFocuses (which owns genuine status!=active teardown).
|
|
193
|
+
await reapDisarmedTeams(pc);
|
|
194
|
+
await checkDeliveryAutoAdvance(pc);
|
|
195
|
+
await checkVerifyDeliveriesForOpenIssues(pc);
|
|
196
|
+
// Paused-revival (TEL-1): the daemon-traversable EXIT from `paused`. A
|
|
197
|
+
// guard-blocked delivery wedges the ranked queue and, before this, was
|
|
198
|
+
// never re-evaluated -- it waited for a human re-queue that never comes on
|
|
199
|
+
// an armed focus. This re-reads each paused delivery's open transition
|
|
200
|
+
// block, re-evaluates the SAME guard, and revives to queued when it has
|
|
201
|
+
// cleared (single-writer reconciler); a still-blocked pause stays a named
|
|
202
|
+
// human-act hold the wedge watchdog surfaces. Best-effort: never throws.
|
|
203
|
+
{
|
|
204
|
+
const revival = await checkPausedDeliveriesForRevival({ organizationId: pc.organizationId, productId: pc.productId }, buildDefaultPausedRevivalDeps());
|
|
205
|
+
if (revival.revived > 0) {
|
|
206
|
+
log.info(`[listener] Paused-revival: revived ${revival.revived} delivery(ies) whose blocking ` +
|
|
207
|
+
`guard cleared (held=${revival.held}, no-block=${revival.noBlock}).`);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
// Work-START edge: cross queued -> coding the moment a work issue is In
|
|
211
|
+
// Progress, during active execution (restores the deleted
|
|
212
|
+
// auto_advance_delivery_on_issue_active trigger via the single-writer
|
|
213
|
+
// reconciler). Runs for active-team focuses too, unlike checkDeliveryAutoAdvance.
|
|
214
|
+
await checkDeliveryWorkStart(pc);
|
|
215
|
+
// Single-writer consolidation (injection #10), SHADOW step: compute the
|
|
216
|
+
// reconciler's target for each delivery and log divergence from the live
|
|
217
|
+
// status. Writes nothing; default-OFF (opt-in via TELORA_RECONCILER_SHADOW),
|
|
218
|
+
// so this is a no-op until an operator enables it.
|
|
219
|
+
await runReconcilerShadow(pc);
|
|
220
|
+
// Nexus: pick up incoming cross-product requests and apply the accept gate.
|
|
221
|
+
await checkIncomingRequests(pc);
|
|
222
|
+
// Nexus: spawn a target-side scoping agent for each accepted, not-yet-
|
|
223
|
+
// materialized request so the receiving team authors a per-request focus
|
|
224
|
+
// (no server-side authoring, no dead-letter inbox).
|
|
225
|
+
await checkIntakePendingRequests(pc);
|
|
226
|
+
// Nexus: close the loop -- resolve done deliveries + notify blocked sources.
|
|
227
|
+
await checkResolvedRequests(pc);
|
|
228
|
+
// Nexus: clear externally-owned obstacles whose endpoint-typed request has
|
|
229
|
+
// been fulfilled (registry-shape), advancing the consumer's frontier.
|
|
230
|
+
await checkEndpointClearance(pc);
|
|
231
|
+
}
|
|
232
|
+
// Endpoint discovery (D5): org-scoped, once per cycle. Best-effort -- the
|
|
233
|
+
// daemon is the only LAN-reachable component, so it resolves the add-model
|
|
234
|
+
// form's pending {baseUrl}/models lookups. FIRE-AND-FORGET (TEL-7): never
|
|
235
|
+
// awaited, so a slow/blocked endpoint fetch can't delay spawn/merge work.
|
|
236
|
+
// Its own module-level re-entrancy guard drops overlapping cycles.
|
|
237
|
+
void checkDiscoveryRequests().catch((err) => log.warn('discovery poll failed:', err.message));
|
|
238
|
+
await processReadyFocuses();
|
|
239
|
+
await checkAndMergeCompletedDeliveries(config);
|
|
240
|
+
// checkDirectives runs syncFocusPhase (writing
|
|
241
|
+
// focus.current_workflow_stage_id) and fires stage-change directives
|
|
242
|
+
// -- including the spawn directive that starts the review team on
|
|
243
|
+
// entry to the `reviewing` phase. Run it before the cascade so phase
|
|
244
|
+
// and directive state are settled when the cascade reads them.
|
|
245
|
+
await checkDirectives(config);
|
|
246
|
+
// Pick up focuses that have a pending spawn directive but weren't
|
|
247
|
+
// surfaced by getReadyFocuses (e.g., review-stage spawns on focuses
|
|
248
|
+
// whose deliveries are all in verify).
|
|
249
|
+
await processPendingSpawnFocuses();
|
|
250
|
+
// The cascade no longer auto-completes reviews -- closing out a
|
|
251
|
+
// review and routing verify deliveries to done/verify_failed is the
|
|
252
|
+
// exclusive responsibility of focus-completion.ts's review exit
|
|
253
|
+
// handler, which gates on the exiting team's sessionType === 'review'
|
|
254
|
+
// (positive signal that an actual review ran).
|
|
255
|
+
await runCascadeChecks(config);
|
|
256
|
+
// New focus workflow lifecycle transitions (D2):
|
|
257
|
+
// - verify -> review when pipeline_config.review.enabled
|
|
258
|
+
// - review -> close_loop on state-based convergence
|
|
259
|
+
// - review -> review_nonconvergent escalation past the N-iter cap
|
|
260
|
+
// Runs after the legacy cascade so the new authoritative `stage`
|
|
261
|
+
// column reflects any updates the cascade may have made.
|
|
262
|
+
await runStageLifecycleTransitions(config);
|
|
263
|
+
await checkResolvedMergeConflicts(config);
|
|
264
|
+
await detectGitStates(config);
|
|
265
|
+
await detectFocusMerges(config);
|
|
266
|
+
// NOTE: the targeted daemon-owned stall detectors (verify_failed re-code cap
|
|
267
|
+
// + review-window staleness) run INSIDE runCascadeChecks above -- they ride
|
|
268
|
+
// its existing per-focus review-handling loop (reusing the deliveries +
|
|
269
|
+
// review phase it already fetched) rather than fanning out a second pass.
|
|
270
|
+
await checkSessionHealth();
|
|
271
|
+
});
|
|
232
272
|
}, POLL_INTERVAL_MS, 'focus-poll', { skipIfRunning: true });
|
|
233
273
|
log.info(`Started focus polling (every ${POLL_INTERVAL_MS / 1000}s)`);
|
|
234
274
|
}
|
|
@@ -620,7 +660,17 @@ export async function processPendingSpawnFocuses() {
|
|
|
620
660
|
// surfaces (and clearSpawnCooldown can reset it); a team that idle-exits is
|
|
621
661
|
// rate-limited by the growing cooldown. This bounds spawn count on a
|
|
622
662
|
// wedged-in-verify focus. See pending-spawn-guard.ts.
|
|
623
|
-
|
|
663
|
+
//
|
|
664
|
+
// ONLY when a team actually spawned (TEL, delivery 5): if spawnFocusTeam
|
|
665
|
+
// SKIPPED (e.g. a terminal focus whose deliveries are all terminal now
|
|
666
|
+
// returns 'skip', or the pre-spawn guards declined), no team exists to tear
|
|
667
|
+
// down, so recording a teardown here would accrue the respawn streak against
|
|
668
|
+
// a focus that correctly spawned nothing -- penalising quiet correctness. The
|
|
669
|
+
// idle-exit backoff is preserved: a genuine spawn leaves hasActiveTeam true at
|
|
670
|
+
// this point (the team runs asynchronously and exits later).
|
|
671
|
+
if (hasActiveTeam(focus.focus_id)) {
|
|
672
|
+
recordPendingSpawnAttempt(focus.focus_id);
|
|
673
|
+
}
|
|
624
674
|
}
|
|
625
675
|
}
|
|
626
676
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listener.js","sourceRoot":"","sources":["../../src/focus/listener.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"listener.js","sourceRoot":"","sources":["../../src/focus/listener.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Poll-tick deadline watchdog (TEL-3).
|
|
3
|
+
*
|
|
4
|
+
* The focus poll tick runs under daemon-core's safeInterval, which has NO
|
|
5
|
+
* deadline: it wraps the callback in try/catch and (with skipIfRunning) drops
|
|
6
|
+
* overlapping ticks, but a tick that stops making progress -- hung on a slow
|
|
7
|
+
* DB call, a wedged await -- simply never returns, silently. recordActivity()
|
|
8
|
+
* (the heartbeat) is emitted INSIDE the tick, so a stalled tick also stops the
|
|
9
|
+
* heartbeat: from outside the process a stalled daemon looks exactly like an
|
|
10
|
+
* idle one. Nothing surfaces the difference.
|
|
11
|
+
*
|
|
12
|
+
* This module arms a deadline timer around the tick body. If the body has not
|
|
13
|
+
* settled by `deadlineMs`, it emits a warning-level health event (code
|
|
14
|
+
* `poll.stalled`) naming the tick and its elapsed time -- the external signal
|
|
15
|
+
* that distinguishes stalled from idle. When the body finally settles, a paired
|
|
16
|
+
* recovery is surfaced (resolveByCode) and the elapsed overrun logged. The tick
|
|
17
|
+
* itself cannot be force-aborted in JS (there is no cooperative cancellation on
|
|
18
|
+
* an arbitrary await); safeInterval's skipIfRunning already prevents a pile-up
|
|
19
|
+
* of overlapping ticks while the hung one drains, so surfacing IS the
|
|
20
|
+
* reclamation the daemon can offer: the stall becomes observable and the next
|
|
21
|
+
* clean tick resumes once the hung body returns.
|
|
22
|
+
*
|
|
23
|
+
* The emit/log effects are injected (deps) and the stall decision is a pure
|
|
24
|
+
* function so the whole thing is unit-testable with no real timers.
|
|
25
|
+
*/
|
|
26
|
+
/** Default: a poll tick still running this long past its start is "stalled". */
|
|
27
|
+
export declare const DEFAULT_TICK_DEADLINE_MS = 90000;
|
|
28
|
+
/**
|
|
29
|
+
* Pure stall decision: has a tick that started at `startMs` and is observed at
|
|
30
|
+
* `nowMs` exceeded `deadlineMs`? Extracted so the deadline arithmetic is tested
|
|
31
|
+
* without any timer. Returns the elapsed time so callers can log/emit it.
|
|
32
|
+
*/
|
|
33
|
+
export declare function evaluateTickStall(startMs: number, nowMs: number, deadlineMs: number): {
|
|
34
|
+
stalled: boolean;
|
|
35
|
+
elapsedMs: number;
|
|
36
|
+
};
|
|
37
|
+
export interface TickDeadlineDeps {
|
|
38
|
+
/** Current time (epoch ms). Defaults to Date.now(). */
|
|
39
|
+
now?: () => number;
|
|
40
|
+
/** Arm a one-shot timer; returns a canceller. Defaults to setTimeout (unref'd). */
|
|
41
|
+
arm?: (fn: () => void, ms: number) => () => void;
|
|
42
|
+
/** Emit a stall signal. Defaults to a warning log + a `poll.stalled` health event. */
|
|
43
|
+
onStall?: (label: string, deadlineMs: number) => void;
|
|
44
|
+
/** Emit a recovery signal after a flagged stall settles. Defaults to log + resolveByCode. */
|
|
45
|
+
onRecover?: (label: string, elapsedMs: number) => void;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Run `body` under the deadline watchdog. Resolves/rejects exactly as `body`
|
|
49
|
+
* does; the watchdog only observes. If the body overruns `deadlineMs`, the
|
|
50
|
+
* stall is surfaced once; when it settles after a flagged stall, recovery is
|
|
51
|
+
* surfaced. The watchdog timer is always cleared in `finally`, so a fast tick
|
|
52
|
+
* emits nothing.
|
|
53
|
+
*/
|
|
54
|
+
export declare function runWithTickDeadline(label: string, deadlineMs: number, body: () => Promise<void>, deps?: TickDeadlineDeps): Promise<void>;
|
|
55
|
+
//# sourceMappingURL=tick-deadline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tick-deadline.d.ts","sourceRoot":"","sources":["../../src/focus/tick-deadline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAOH,gFAAgF;AAChF,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAE/C;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GACjB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAGzC;AAED,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,mFAAmF;IACnF,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,KAAK,MAAM,IAAI,CAAC;IACjD,sFAAsF;IACtF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,6FAA6F;IAC7F,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACxD;AA+BD;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EACzB,IAAI,CAAC,EAAE,gBAAgB,GACtB,OAAO,CAAC,IAAI,CAAC,CAqBf"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Poll-tick deadline watchdog (TEL-3).
|
|
3
|
+
*
|
|
4
|
+
* The focus poll tick runs under daemon-core's safeInterval, which has NO
|
|
5
|
+
* deadline: it wraps the callback in try/catch and (with skipIfRunning) drops
|
|
6
|
+
* overlapping ticks, but a tick that stops making progress -- hung on a slow
|
|
7
|
+
* DB call, a wedged await -- simply never returns, silently. recordActivity()
|
|
8
|
+
* (the heartbeat) is emitted INSIDE the tick, so a stalled tick also stops the
|
|
9
|
+
* heartbeat: from outside the process a stalled daemon looks exactly like an
|
|
10
|
+
* idle one. Nothing surfaces the difference.
|
|
11
|
+
*
|
|
12
|
+
* This module arms a deadline timer around the tick body. If the body has not
|
|
13
|
+
* settled by `deadlineMs`, it emits a warning-level health event (code
|
|
14
|
+
* `poll.stalled`) naming the tick and its elapsed time -- the external signal
|
|
15
|
+
* that distinguishes stalled from idle. When the body finally settles, a paired
|
|
16
|
+
* recovery is surfaced (resolveByCode) and the elapsed overrun logged. The tick
|
|
17
|
+
* itself cannot be force-aborted in JS (there is no cooperative cancellation on
|
|
18
|
+
* an arbitrary await); safeInterval's skipIfRunning already prevents a pile-up
|
|
19
|
+
* of overlapping ticks while the hung one drains, so surfacing IS the
|
|
20
|
+
* reclamation the daemon can offer: the stall becomes observable and the next
|
|
21
|
+
* clean tick resumes once the hung body returns.
|
|
22
|
+
*
|
|
23
|
+
* The emit/log effects are injected (deps) and the stall decision is a pure
|
|
24
|
+
* function so the whole thing is unit-testable with no real timers.
|
|
25
|
+
*/
|
|
26
|
+
import { healthEvents } from '@telora/daemon-core';
|
|
27
|
+
import { createLogger } from '../shell/log.js';
|
|
28
|
+
const log = createLogger({ module: 'tick-deadline' });
|
|
29
|
+
/** Default: a poll tick still running this long past its start is "stalled". */
|
|
30
|
+
export const DEFAULT_TICK_DEADLINE_MS = 90_000;
|
|
31
|
+
/**
|
|
32
|
+
* Pure stall decision: has a tick that started at `startMs` and is observed at
|
|
33
|
+
* `nowMs` exceeded `deadlineMs`? Extracted so the deadline arithmetic is tested
|
|
34
|
+
* without any timer. Returns the elapsed time so callers can log/emit it.
|
|
35
|
+
*/
|
|
36
|
+
export function evaluateTickStall(startMs, nowMs, deadlineMs) {
|
|
37
|
+
const elapsedMs = nowMs - startMs;
|
|
38
|
+
return { stalled: elapsedMs >= deadlineMs, elapsedMs };
|
|
39
|
+
}
|
|
40
|
+
function defaultArm(fn, ms) {
|
|
41
|
+
const t = setTimeout(fn, ms);
|
|
42
|
+
// Never keep the process alive just for the watchdog.
|
|
43
|
+
t.unref?.();
|
|
44
|
+
return () => clearTimeout(t);
|
|
45
|
+
}
|
|
46
|
+
function defaultOnStall(label, deadlineMs) {
|
|
47
|
+
log.warn(`[${label}] Poll tick has not completed within ${deadlineMs}ms -- it is STALLED, ` +
|
|
48
|
+
'not idle. The heartbeat is emitted inside the tick, so the daemon may look ' +
|
|
49
|
+
'dead from outside; investigate the wedged await (slow DB call / blocked I/O).');
|
|
50
|
+
healthEvents.emit({
|
|
51
|
+
severity: 'warn',
|
|
52
|
+
source: `poll:${label}`,
|
|
53
|
+
code: 'poll.stalled',
|
|
54
|
+
message: `Poll tick '${label}' exceeded its ${deadlineMs}ms deadline and is still ` +
|
|
55
|
+
'running. A stalled tick is distinct from an idle one: no work is advancing ' +
|
|
56
|
+
'and the heartbeat has stopped for this cycle.',
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
function defaultOnRecover(label, elapsedMs) {
|
|
60
|
+
log.warn(`[${label}] Poll tick recovered after ${elapsedMs}ms (was flagged stalled).`);
|
|
61
|
+
healthEvents.resolveByCode('poll.stalled');
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Run `body` under the deadline watchdog. Resolves/rejects exactly as `body`
|
|
65
|
+
* does; the watchdog only observes. If the body overruns `deadlineMs`, the
|
|
66
|
+
* stall is surfaced once; when it settles after a flagged stall, recovery is
|
|
67
|
+
* surfaced. The watchdog timer is always cleared in `finally`, so a fast tick
|
|
68
|
+
* emits nothing.
|
|
69
|
+
*/
|
|
70
|
+
export async function runWithTickDeadline(label, deadlineMs, body, deps) {
|
|
71
|
+
const now = deps?.now ?? Date.now;
|
|
72
|
+
const arm = deps?.arm ?? defaultArm;
|
|
73
|
+
const onStall = deps?.onStall ?? defaultOnStall;
|
|
74
|
+
const onRecover = deps?.onRecover ?? defaultOnRecover;
|
|
75
|
+
const startMs = now();
|
|
76
|
+
let stalled = false;
|
|
77
|
+
const cancel = arm(() => {
|
|
78
|
+
stalled = true;
|
|
79
|
+
onStall(label, deadlineMs);
|
|
80
|
+
}, deadlineMs);
|
|
81
|
+
try {
|
|
82
|
+
await body();
|
|
83
|
+
}
|
|
84
|
+
finally {
|
|
85
|
+
cancel();
|
|
86
|
+
if (stalled) {
|
|
87
|
+
onRecover(label, now() - startMs);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=tick-deadline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tick-deadline.js","sourceRoot":"","sources":["../../src/focus/tick-deadline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;AAEtD,gFAAgF;AAChF,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAE/C;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,KAAa,EACb,UAAkB;IAElB,MAAM,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;IAClC,OAAO,EAAE,OAAO,EAAE,SAAS,IAAI,UAAU,EAAE,SAAS,EAAE,CAAC;AACzD,CAAC;AAaD,SAAS,UAAU,CAAC,EAAc,EAAE,EAAU;IAC5C,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7B,sDAAsD;IACrD,CAA4B,CAAC,KAAK,EAAE,EAAE,CAAC;IACxC,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,cAAc,CAAC,KAAa,EAAE,UAAkB;IACvD,GAAG,CAAC,IAAI,CACN,IAAI,KAAK,wCAAwC,UAAU,uBAAuB;QAChF,6EAA6E;QAC7E,+EAA+E,CAClF,CAAC;IACF,YAAY,CAAC,IAAI,CAAC;QAChB,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,QAAQ,KAAK,EAAE;QACvB,IAAI,EAAE,cAAc;QACpB,OAAO,EACL,cAAc,KAAK,kBAAkB,UAAU,2BAA2B;YAC1E,6EAA6E;YAC7E,+CAA+C;KAClD,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa,EAAE,SAAiB;IACxD,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,+BAA+B,SAAS,2BAA2B,CAAC,CAAC;IACvF,YAAY,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAAa,EACb,UAAkB,EAClB,IAAyB,EACzB,IAAuB;IAEvB,MAAM,GAAG,GAAG,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IAClC,MAAM,GAAG,GAAG,IAAI,EAAE,GAAG,IAAI,UAAU,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,cAAc,CAAC;IAChD,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,gBAAgB,CAAC;IAEtD,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;IACtB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE;QACtB,OAAO,GAAG,IAAI,CAAC;QACf,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC7B,CAAC,EAAE,UAAU,CAAC,CAAC;IAEf,IAAI,CAAC;QACH,MAAM,IAAI,EAAE,CAAC;IACf,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC;QACT,IAAI,OAAO,EAAE,CAAC;YACZ,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1,36 +1,33 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Focus workflow lifecycle stage transitions (D2).
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* review -> close_loop when there are no in-flight remediation deliveries
|
|
16
|
-
* (Issue 2: state-based convergence) AND we have not
|
|
17
|
-
* exceeded the N-iteration cap.
|
|
18
|
-
*
|
|
19
|
-
* review -> (escalate) when iteration count exceeds the cap
|
|
20
|
-
* (Issue 3: review_nonconvergent escalation, focus
|
|
21
|
-
* stays at review until a human intervenes).
|
|
4
|
+
* Historically the daemon advanced a `product_focuses.stage` column along
|
|
5
|
+
* `planning -> queued -> in_progress -> verify -> review -> close_loop -> done`.
|
|
6
|
+
* That machine-driven stage axis is being retired in favour of a single derived
|
|
7
|
+
* lifecycle (`deriveFocusPhase`): review ENTRY is owned by
|
|
8
|
+
* state-cascade.checkAutoReview (`review_requested_at`), and both the machine
|
|
9
|
+
* verify->review advance (TEL-6) and the review->close_loop advance (TEL-4) have
|
|
10
|
+
* been removed. Review completion is derived (`winding_down`), never a
|
|
11
|
+
* stage='close_loop' write; a non-convergent review is bounded by the
|
|
12
|
+
* review-cycle churn meter + review_window_stalled detector, not a permanent
|
|
13
|
+
* stage hold awaiting a human.
|
|
22
14
|
*
|
|
23
15
|
* This module owns the poll-loop dispatcher `runStageLifecycleTransitions` and
|
|
24
|
-
* re-exports the decomposed transition logic, which lives in
|
|
16
|
+
* re-exports the decomposed transition logic, which lives in two cohesive
|
|
25
17
|
* submodules:
|
|
26
18
|
*
|
|
27
|
-
* - `focus-stage-lifecycle/review-convergence` -- the verify->review and
|
|
28
|
-
* review->close_loop transitions plus their pure convergence helpers.
|
|
29
19
|
* - `focus-stage-lifecycle/planning-release` -- the ratify-to-execute and
|
|
30
20
|
* writable-focus planning->queued delivery releases.
|
|
31
21
|
* - `focus-stage-lifecycle/wedge-watchdog` -- the planning-wedge watchdog +
|
|
32
22
|
* zero-actionable log.
|
|
33
23
|
*
|
|
24
|
+
* The former `review-convergence` submodule (the machine-driven
|
|
25
|
+
* verify->review and review->close_loop stage advances) was removed: review
|
|
26
|
+
* ENTRY is owned by state-cascade.checkAutoReview (review_requested_at), and
|
|
27
|
+
* review COMPLETION is derived (`winding_down`) rather than written as
|
|
28
|
+
* stage='close_loop'. A non-convergent review is bounded by the review-cycle
|
|
29
|
+
* churn meter + review_window_stalled detector, not a permanent stage hold.
|
|
30
|
+
*
|
|
34
31
|
* It does not advance `current_workflow_stage_id` directly -- the existing
|
|
35
32
|
* `syncFocusPhase` does that on the next poll, after the daemon's `stage` write
|
|
36
33
|
* lands.
|
|
@@ -40,10 +37,8 @@
|
|
|
40
37
|
import type { DaemonConfig, FocusDeliveryInfo } from '../types/index.js';
|
|
41
38
|
import { getActiveFocuses as defaultGetActiveFocuses } from '../queries/deliveries.js';
|
|
42
39
|
import { getFocusDeliveries as defaultGetFocusDeliveries } from '../queries/focuses.js';
|
|
43
|
-
import { advanceVerifyToReviewIfEnabled, advanceReviewToCloseLoopIfConverged, type ReviewTransitionOutcome } from './review-convergence.js';
|
|
44
40
|
import { releaseRatifiedReadOnlyFocus, releaseWritableFocusPlanningDeliveries } from './planning-release.js';
|
|
45
41
|
import { evaluateFocusWedge, type WedgeOutcome } from './wedge-watchdog.js';
|
|
46
|
-
export * from './review-convergence.js';
|
|
47
42
|
export * from './planning-release.js';
|
|
48
43
|
export * from './wedge-watchdog.js';
|
|
49
44
|
/**
|
|
@@ -53,8 +48,6 @@ export * from './wedge-watchdog.js';
|
|
|
53
48
|
export declare function runStageLifecycleTransitions(config: DaemonConfig, deps?: {
|
|
54
49
|
getActiveFocuses: typeof defaultGetActiveFocuses;
|
|
55
50
|
getFocusDeliveries: typeof defaultGetFocusDeliveries;
|
|
56
|
-
advanceVerifyToReview: (focus: Parameters<typeof advanceVerifyToReviewIfEnabled>[0]) => Promise<boolean>;
|
|
57
|
-
advanceReviewToCloseLoop: (focus: Parameters<typeof advanceReviewToCloseLoopIfConverged>[0]) => Promise<ReviewTransitionOutcome>;
|
|
58
51
|
releaseRatifiedReadOnly: (focus: Parameters<typeof releaseRatifiedReadOnlyFocus>[0]) => Promise<number>;
|
|
59
52
|
releaseWritablePlanning: (focus: Parameters<typeof releaseWritableFocusPlanningDeliveries>[0]) => Promise<number>;
|
|
60
53
|
evaluateWedge: (focus: Parameters<typeof evaluateFocusWedge>[0]) => Promise<WedgeOutcome>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/focus-stage-lifecycle/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/focus-stage-lifecycle/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEzE,OAAO,EAAE,gBAAgB,IAAI,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,kBAAkB,IAAI,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,EACL,4BAA4B,EAC5B,sCAAsC,EACvC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,kBAAkB,EAElB,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAQ7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AAIpC;;;GAGG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,YAAY,EACpB,IAAI,GAAE;IACJ,gBAAgB,EAAE,OAAO,uBAAuB,CAAC;IACjD,kBAAkB,EAAE,OAAO,yBAAyB,CAAC;IACrD,uBAAuB,EAAE,CACvB,KAAK,EAAE,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC,CAAC,CAAC,KACtD,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,uBAAuB,EAAE,CACvB,KAAK,EAAE,UAAU,CAAC,OAAO,sCAAsC,CAAC,CAAC,CAAC,CAAC,KAChE,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,aAAa,EAAE,CACb,KAAK,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAC5C,OAAO,CAAC,YAAY,CAAC,CAAC;CAO5B,GACA,OAAO,CAAC,IAAI,CAAC,CAuHf;AAGD,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
|