@telora/daemon 0.22.189 → 0.22.226
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/backends/index.d.ts.map +1 -1
- package/dist/backends/index.js +5 -1
- package/dist/backends/index.js.map +1 -1
- package/dist/completion/advancement-stall-watchdog.d.ts.map +1 -1
- package/dist/completion/advancement-stall-watchdog.js +6 -2
- package/dist/completion/advancement-stall-watchdog.js.map +1 -1
- package/dist/completion/completion-decision.d.ts +10 -1
- package/dist/completion/completion-decision.d.ts.map +1 -1
- package/dist/completion/completion-decision.js +1 -1
- package/dist/completion/completion-decision.js.map +1 -1
- package/dist/completion/completion-fact-readers.d.ts +35 -0
- package/dist/completion/completion-fact-readers.d.ts.map +1 -0
- package/dist/completion/completion-fact-readers.js +70 -0
- package/dist/completion/completion-fact-readers.js.map +1 -0
- package/dist/completion/delivery-advancement-guard.d.ts +31 -16
- package/dist/completion/delivery-advancement-guard.d.ts.map +1 -1
- package/dist/completion/delivery-advancement-guard.js +22 -37
- package/dist/completion/delivery-advancement-guard.js.map +1 -1
- package/dist/completion/detector.d.ts.map +1 -1
- package/dist/completion/detector.js +3 -1
- package/dist/completion/detector.js.map +1 -1
- package/dist/completion/event-dep-defaults.d.ts +27 -0
- package/dist/completion/event-dep-defaults.d.ts.map +1 -0
- package/dist/completion/event-dep-defaults.js +30 -0
- package/dist/completion/event-dep-defaults.js.map +1 -0
- package/dist/completion/event-phases.d.ts +19 -8
- package/dist/completion/event-phases.d.ts.map +1 -1
- package/dist/completion/event-phases.js +72 -101
- package/dist/completion/event-phases.js.map +1 -1
- package/dist/completion/event.d.ts +44 -9
- package/dist/completion/event.d.ts.map +1 -1
- package/dist/completion/event.js +36 -27
- package/dist/completion/event.js.map +1 -1
- package/dist/completion/index.js +1 -1
- package/dist/completion/progress-snapshot.d.ts +13 -9
- package/dist/completion/progress-snapshot.d.ts.map +1 -1
- package/dist/completion/progress-snapshot.js +16 -13
- package/dist/completion/progress-snapshot.js.map +1 -1
- package/dist/completion/reengagement-redrive.d.ts +8 -1
- package/dist/completion/reengagement-redrive.d.ts.map +1 -1
- package/dist/completion/reengagement-redrive.js +16 -2
- package/dist/completion/reengagement-redrive.js.map +1 -1
- package/dist/completion/session-hold.d.ts +13 -1
- package/dist/completion/session-hold.d.ts.map +1 -1
- package/dist/completion/session-hold.js +18 -0
- package/dist/completion/session-hold.js.map +1 -1
- package/dist/completion/state-cascade.d.ts.map +1 -1
- package/dist/completion/state-cascade.js +11 -19
- package/dist/completion/state-cascade.js.map +1 -1
- package/dist/completion/team-phase.d.ts.map +1 -1
- package/dist/completion/team-phase.js +1 -0
- package/dist/completion/team-phase.js.map +1 -1
- package/dist/completion/team-progress-measure.d.ts +70 -0
- package/dist/completion/team-progress-measure.d.ts.map +1 -0
- package/dist/completion/team-progress-measure.js +285 -0
- package/dist/completion/team-progress-measure.js.map +1 -0
- package/dist/completion/team-stillness.d.ts +76 -0
- package/dist/completion/team-stillness.d.ts.map +1 -0
- package/dist/completion/team-stillness.js +96 -0
- package/dist/completion/team-stillness.js.map +1 -0
- package/dist/completion/unclaimed-migration-notice-phase.d.ts +97 -0
- package/dist/completion/unclaimed-migration-notice-phase.d.ts.map +1 -0
- package/dist/completion/unclaimed-migration-notice-phase.js +270 -0
- package/dist/completion/unclaimed-migration-notice-phase.js.map +1 -0
- package/dist/completion/worker-wait.d.ts +84 -0
- package/dist/completion/worker-wait.d.ts.map +1 -0
- package/dist/completion/worker-wait.js +89 -0
- package/dist/completion/worker-wait.js.map +1 -0
- package/dist/delivery/delivery-advance-block.d.ts.map +1 -1
- package/dist/delivery/delivery-advance-block.js +1 -2
- package/dist/delivery/delivery-advance-block.js.map +1 -1
- package/dist/directive/directive-executor.d.ts.map +1 -1
- package/dist/directive/directive-executor.js +1 -20
- package/dist/directive/directive-executor.js.map +1 -1
- package/dist/focus/focus-executor.d.ts +1 -0
- package/dist/focus/focus-executor.d.ts.map +1 -1
- package/dist/focus/focus-executor.js +18 -17
- package/dist/focus/focus-executor.js.map +1 -1
- package/dist/focus/focus-lifecycle.d.ts.map +1 -1
- package/dist/focus/focus-lifecycle.js +7 -1
- package/dist/focus/focus-lifecycle.js.map +1 -1
- package/dist/focus/focus-team-state.js +1 -1
- package/dist/focus/focus-worktree-state.d.ts.map +1 -1
- package/dist/focus/focus-worktree-state.js +2 -1
- package/dist/focus/focus-worktree-state.js.map +1 -1
- package/dist/focus/listener-spawn.d.ts.map +1 -1
- package/dist/focus/listener-spawn.js +5 -20
- package/dist/focus/listener-spawn.js.map +1 -1
- package/dist/focus/listener-state.d.ts.map +1 -1
- package/dist/focus/listener-state.js +1 -0
- package/dist/focus/listener-state.js.map +1 -1
- package/dist/focus/listener.d.ts +1 -0
- package/dist/focus/listener.d.ts.map +1 -1
- package/dist/focus/listener.js +9 -0
- package/dist/focus/listener.js.map +1 -1
- package/dist/focus/migration-claim-pass.d.ts +50 -0
- package/dist/focus/migration-claim-pass.d.ts.map +1 -0
- package/dist/focus/migration-claim-pass.js +234 -0
- package/dist/focus/migration-claim-pass.js.map +1 -0
- package/dist/focus/pending-spawn-pass-deps.d.ts.map +1 -1
- package/dist/focus/pending-spawn-pass-deps.js +2 -1
- package/dist/focus/pending-spawn-pass-deps.js.map +1 -1
- package/dist/focus/team-actionable-work.d.ts +21 -0
- package/dist/focus/team-actionable-work.d.ts.map +1 -1
- package/dist/focus/team-actionable-work.js +3 -0
- package/dist/focus/team-actionable-work.js.map +1 -1
- package/dist/git/focus-integration-sync.d.ts +42 -4
- package/dist/git/focus-integration-sync.d.ts.map +1 -1
- package/dist/git/focus-integration-sync.js +53 -9
- package/dist/git/focus-integration-sync.js.map +1 -1
- package/dist/git/types.d.ts.map +1 -1
- package/dist/git/types.js +4 -1
- package/dist/git/types.js.map +1 -1
- package/dist/loops/llm-client.d.ts.map +1 -1
- package/dist/loops/llm-client.js +11 -1
- package/dist/loops/llm-client.js.map +1 -1
- package/dist/merge/merge-back-loop.d.ts.map +1 -1
- package/dist/merge/merge-back-loop.js +0 -1
- package/dist/merge/merge-back-loop.js.map +1 -1
- package/dist/migrations/migration-claim-lifecycle.d.ts +166 -0
- package/dist/migrations/migration-claim-lifecycle.d.ts.map +1 -0
- package/dist/migrations/migration-claim-lifecycle.js +198 -0
- package/dist/migrations/migration-claim-lifecycle.js.map +1 -0
- package/dist/migrations/migration-held-set.d.ts +171 -0
- package/dist/migrations/migration-held-set.d.ts.map +1 -0
- package/dist/migrations/migration-held-set.js +295 -0
- package/dist/migrations/migration-held-set.js.map +1 -0
- package/dist/migrations/migration-inventory.d.ts +187 -0
- package/dist/migrations/migration-inventory.d.ts.map +1 -0
- package/dist/migrations/migration-inventory.js +253 -0
- package/dist/migrations/migration-inventory.js.map +1 -0
- package/dist/migrations/migration-manifest.d.ts +114 -0
- package/dist/migrations/migration-manifest.d.ts.map +1 -0
- package/dist/migrations/migration-manifest.js +295 -0
- package/dist/migrations/migration-manifest.js.map +1 -0
- package/dist/prompt/team-prompt-base.js +1 -1
- package/dist/prompt-sections/migration-numbering-section.d.ts +58 -0
- package/dist/prompt-sections/migration-numbering-section.d.ts.map +1 -0
- package/dist/prompt-sections/migration-numbering-section.js +70 -0
- package/dist/prompt-sections/migration-numbering-section.js.map +1 -0
- package/dist/prompt-sections/migration-numbering-state.d.ts +30 -0
- package/dist/prompt-sections/migration-numbering-state.d.ts.map +1 -0
- package/dist/prompt-sections/migration-numbering-state.js +24 -0
- package/dist/prompt-sections/migration-numbering-state.js.map +1 -0
- package/dist/prompt-sections/unclaimed-migration-section.d.ts +38 -0
- package/dist/prompt-sections/unclaimed-migration-section.d.ts.map +1 -0
- package/dist/prompt-sections/unclaimed-migration-section.js +57 -0
- package/dist/prompt-sections/unclaimed-migration-section.js.map +1 -0
- package/dist/queries/claim-pass-focuses.d.ts +19 -0
- package/dist/queries/claim-pass-focuses.d.ts.map +1 -0
- package/dist/queries/claim-pass-focuses.js +72 -0
- package/dist/queries/claim-pass-focuses.js.map +1 -0
- package/dist/queries/daemon-connection.d.ts.map +1 -1
- package/dist/queries/daemon-connection.js +1 -0
- package/dist/queries/daemon-connection.js.map +1 -1
- package/dist/queries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries.js +3 -1
- package/dist/queries/deliveries.js.map +1 -1
- package/dist/queries/delivery-gate-state.js +1 -1
- package/dist/queries/escalation-suppression.js +1 -1
- package/dist/queries/focus-discovery.d.ts +25 -2
- package/dist/queries/focus-discovery.d.ts.map +1 -1
- package/dist/queries/focus-discovery.js +16 -9
- package/dist/queries/focus-discovery.js.map +1 -1
- package/dist/queries/focus-integration-conflict.d.ts +7 -4
- package/dist/queries/focus-integration-conflict.d.ts.map +1 -1
- package/dist/queries/focus-integration-conflict.js +6 -3
- package/dist/queries/focus-integration-conflict.js.map +1 -1
- package/dist/queries/focus-unclaimed-migration.d.ts +146 -0
- package/dist/queries/focus-unclaimed-migration.d.ts.map +1 -0
- package/dist/queries/focus-unclaimed-migration.js +266 -0
- package/dist/queries/focus-unclaimed-migration.js.map +1 -0
- package/dist/queries/live-focus-branches.d.ts +32 -0
- package/dist/queries/live-focus-branches.d.ts.map +1 -0
- package/dist/queries/live-focus-branches.js +66 -0
- package/dist/queries/live-focus-branches.js.map +1 -0
- package/dist/queries/migration-claims.d.ts +25 -0
- package/dist/queries/migration-claims.d.ts.map +1 -0
- package/dist/queries/migration-claims.js +79 -0
- package/dist/queries/migration-claims.js.map +1 -0
- package/dist/queries/schemas.d.ts +17 -0
- package/dist/queries/schemas.d.ts.map +1 -1
- package/dist/queries/schemas.js +18 -1
- package/dist/queries/schemas.js.map +1 -1
- package/dist/queries/shared.js +1 -1
- package/dist/queries/shortfall-park-record.d.ts +6 -1
- package/dist/queries/shortfall-park-record.d.ts.map +1 -1
- package/dist/queries/shortfall-park-record.js.map +1 -1
- package/dist/queries/shortfall-rulings.d.ts +14 -2
- package/dist/queries/shortfall-rulings.d.ts.map +1 -1
- package/dist/queries/shortfall-rulings.js +17 -3
- package/dist/queries/shortfall-rulings.js.map +1 -1
- package/dist/queries/verification.js +1 -1
- package/dist/queries/verify-own-holds.d.ts.map +1 -1
- package/dist/queries/verify-own-holds.js +1 -0
- package/dist/queries/verify-own-holds.js.map +1 -1
- package/dist/session/session-lineage.d.ts.map +1 -1
- package/dist/session/session-lineage.js +3 -0
- package/dist/session/session-lineage.js.map +1 -1
- package/dist/shell/heartbeat-metadata.d.ts +48 -2
- package/dist/shell/heartbeat-metadata.d.ts.map +1 -1
- package/dist/shell/heartbeat-metadata.js +80 -3
- package/dist/shell/heartbeat-metadata.js.map +1 -1
- package/dist/shell/heartbeat.d.ts +13 -0
- package/dist/shell/heartbeat.d.ts.map +1 -1
- package/dist/shell/heartbeat.js +31 -10
- package/dist/shell/heartbeat.js.map +1 -1
- package/dist/shell/mcp-resolution.js +1 -1
- package/dist/shell/mcp-resolution.js.map +1 -1
- package/dist/shell/migration-held-set-publish.d.ts +170 -0
- package/dist/shell/migration-held-set-publish.d.ts.map +1 -0
- package/dist/shell/migration-held-set-publish.js +172 -0
- package/dist/shell/migration-held-set-publish.js.map +1 -0
- package/dist/shell/worker-pidfile.d.ts.map +1 -1
- package/dist/shell/worker-pidfile.js +1 -0
- package/dist/shell/worker-pidfile.js.map +1 -1
- package/dist/spawn/helpers.d.ts.map +1 -1
- package/dist/spawn/helpers.js +10 -1
- package/dist/spawn/helpers.js.map +1 -1
- package/dist/spawn/lead-continuation.d.ts +10 -2
- package/dist/spawn/lead-continuation.d.ts.map +1 -1
- package/dist/spawn/lead-continuation.js +39 -22
- package/dist/spawn/lead-continuation.js.map +1 -1
- package/dist/spawn/lead-launch.d.ts.map +1 -1
- package/dist/spawn/lead-launch.js +1 -0
- package/dist/spawn/lead-launch.js.map +1 -1
- package/dist/spawn/lead-process-ownership.d.ts.map +1 -1
- package/dist/spawn/lead-process-ownership.js +1 -0
- package/dist/spawn/lead-process-ownership.js.map +1 -1
- package/dist/spawn/one-shot-model.d.ts.map +1 -1
- package/dist/spawn/one-shot-model.js +1 -0
- package/dist/spawn/one-shot-model.js.map +1 -1
- package/dist/spawn/process-group-kill.d.ts.map +1 -1
- package/dist/spawn/process-group-kill.js +1 -0
- package/dist/spawn/process-group-kill.js.map +1 -1
- package/dist/spawn/process-spawn.d.ts +18 -1
- package/dist/spawn/process-spawn.d.ts.map +1 -1
- package/dist/spawn/process-spawn.js +11 -6
- package/dist/spawn/process-spawn.js.map +1 -1
- package/dist/spawn/prompt-assembly.d.ts +115 -18
- package/dist/spawn/prompt-assembly.d.ts.map +1 -1
- package/dist/spawn/prompt-assembly.js +121 -2
- package/dist/spawn/prompt-assembly.js.map +1 -1
- package/dist/spawn/spawn-and-acknowledge.d.ts +61 -0
- package/dist/spawn/spawn-and-acknowledge.d.ts.map +1 -0
- package/dist/spawn/spawn-and-acknowledge.js +117 -0
- package/dist/spawn/spawn-and-acknowledge.js.map +1 -0
- package/dist/spawn/spawn-cooldown.js +1 -1
- package/dist/spawn/spawn-decision.d.ts +10 -10
- package/dist/spawn/spawn-decision.d.ts.map +1 -1
- package/dist/spawn/spawn-decision.js +33 -5
- package/dist/spawn/spawn-decision.js.map +1 -1
- package/dist/spawn/worktree-session.d.ts.map +1 -1
- package/dist/spawn/worktree-session.js +11 -1
- package/dist/spawn/worktree-session.js.map +1 -1
- package/dist/templates/claude-md.d.ts +1 -1
- package/dist/templates/claude-md.d.ts.map +1 -1
- package/dist/templates/claude-md.js +24 -0
- package/dist/templates/claude-md.js.map +1 -1
- package/dist/testing/fixtures/conflicting-repo.d.ts +17 -0
- package/dist/testing/fixtures/conflicting-repo.d.ts.map +1 -1
- package/dist/testing/fixtures/conflicting-repo.js +31 -0
- package/dist/testing/fixtures/conflicting-repo.js.map +1 -1
- package/dist/testing/fixtures/index.d.ts.map +1 -1
- package/dist/testing/fixtures/index.js +1 -2
- package/dist/testing/fixtures/index.js.map +1 -1
- package/dist/testing/fixtures/migration-namespace-repo.d.ts +63 -0
- package/dist/testing/fixtures/migration-namespace-repo.d.ts.map +1 -0
- package/dist/testing/fixtures/migration-namespace-repo.js +164 -0
- package/dist/testing/fixtures/migration-namespace-repo.js.map +1 -0
- package/dist/testing/fixtures/stubborn-lead-process.d.ts.map +1 -1
- package/dist/testing/fixtures/stubborn-lead-process.js +1 -0
- package/dist/testing/fixtures/stubborn-lead-process.js.map +1 -1
- package/dist/types/focus.d.ts +59 -26
- package/dist/types/focus.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/verify/commit-verdict-pull.d.ts +28 -3
- package/dist/verify/commit-verdict-pull.d.ts.map +1 -1
- package/dist/verify/commit-verdict-pull.js +160 -23
- package/dist/verify/commit-verdict-pull.js.map +1 -1
- package/dist/verify/credit-rearm.d.ts.map +1 -1
- package/dist/verify/credit-rearm.js +72 -17
- package/dist/verify/credit-rearm.js.map +1 -1
- package/dist/verify/default-on-guards.d.ts +54 -8
- package/dist/verify/default-on-guards.d.ts.map +1 -1
- package/dist/verify/default-on-guards.js +132 -17
- package/dist/verify/default-on-guards.js.map +1 -1
- package/dist/verify/explicit-rearm.d.ts.map +1 -1
- package/dist/verify/explicit-rearm.js +1 -0
- package/dist/verify/explicit-rearm.js.map +1 -1
- package/dist/verify/explicit-row-selection.d.ts +47 -0
- package/dist/verify/explicit-row-selection.d.ts.map +1 -0
- package/dist/verify/explicit-row-selection.js +37 -0
- package/dist/verify/explicit-row-selection.js.map +1 -0
- package/dist/verify/gate-run-registry.d.ts.map +1 -1
- package/dist/verify/gate-run-registry.js +2 -0
- package/dist/verify/gate-run-registry.js.map +1 -1
- package/dist/verify/no-own-delta-verdict.d.ts +16 -2
- package/dist/verify/no-own-delta-verdict.d.ts.map +1 -1
- package/dist/verify/no-own-delta-verdict.js +18 -2
- package/dist/verify/no-own-delta-verdict.js.map +1 -1
- package/dist/verify/parked-shortfall-reuse.d.ts +194 -0
- package/dist/verify/parked-shortfall-reuse.d.ts.map +1 -0
- package/dist/verify/parked-shortfall-reuse.js +310 -0
- package/dist/verify/parked-shortfall-reuse.js.map +1 -0
- package/dist/verify/reselection-log.d.ts +22 -0
- package/dist/verify/reselection-log.d.ts.map +1 -0
- package/dist/verify/reselection-log.js +87 -0
- package/dist/verify/reselection-log.js.map +1 -0
- package/dist/verify/shortfall-park.d.ts +8 -1
- package/dist/verify/shortfall-park.d.ts.map +1 -1
- package/dist/verify/shortfall-park.js +17 -3
- package/dist/verify/shortfall-park.js.map +1 -1
- package/dist/verify/shortfall-repeat.d.ts.map +1 -1
- package/dist/verify/shortfall-repeat.js +7 -2
- package/dist/verify/shortfall-repeat.js.map +1 -1
- package/dist/verify/shortfall-rulings.d.ts +93 -6
- package/dist/verify/shortfall-rulings.d.ts.map +1 -1
- package/dist/verify/shortfall-rulings.js +69 -12
- package/dist/verify/shortfall-rulings.js.map +1 -1
- package/dist/verify/stall-detector-config.d.ts.map +1 -1
- package/dist/verify/stall-detector-config.js +2 -1
- package/dist/verify/stall-detector-config.js.map +1 -1
- package/dist/verify/stall-detectors.d.ts +6 -4
- package/dist/verify/stall-detectors.d.ts.map +1 -1
- package/dist/verify/stall-detectors.js +9 -6
- package/dist/verify/stall-detectors.js.map +1 -1
- package/dist/verify/stalled-team-backstop.d.ts +8 -2
- package/dist/verify/stalled-team-backstop.d.ts.map +1 -1
- package/dist/verify/stalled-team-backstop.js +15 -11
- package/dist/verify/stalled-team-backstop.js.map +1 -1
- package/dist/verify/team-stall-reapers.d.ts +28 -0
- package/dist/verify/team-stall-reapers.d.ts.map +1 -0
- package/dist/verify/team-stall-reapers.js +23 -0
- package/dist/verify/team-stall-reapers.js.map +1 -0
- package/dist/verify/verification-attribution-deps.d.ts +1 -1
- package/dist/verify/verification-attribution-deps.d.ts.map +1 -1
- package/dist/verify/verification-attribution-deps.js +20 -1
- package/dist/verify/verification-attribution-deps.js.map +1 -1
- package/dist/verify/verification-boundary-env.d.ts.map +1 -1
- package/dist/verify/verification-boundary-env.js +23 -9
- package/dist/verify/verification-boundary-env.js.map +1 -1
- package/dist/verify/verification-checkout.d.ts +1 -1
- package/dist/verify/verification-checkout.d.ts.map +1 -1
- package/dist/verify/verification-checkout.js.map +1 -1
- package/dist/verify/verification-commit-sharing.d.ts.map +1 -1
- package/dist/verify/verification-commit-sharing.js +14 -3
- package/dist/verify/verification-commit-sharing.js.map +1 -1
- package/dist/verify/verification-config.d.ts.map +1 -1
- package/dist/verify/verification-config.js +1 -20
- package/dist/verify/verification-config.js.map +1 -1
- package/dist/verify/verification-default-on.d.ts +4 -1
- package/dist/verify/verification-default-on.d.ts.map +1 -1
- package/dist/verify/verification-default-on.js +29 -2
- package/dist/verify/verification-default-on.js.map +1 -1
- package/dist/verify/verification-deps-default.d.ts.map +1 -1
- package/dist/verify/verification-deps-default.js +13 -0
- package/dist/verify/verification-deps-default.js.map +1 -1
- package/dist/verify/verification-deps.d.ts +38 -0
- package/dist/verify/verification-deps.d.ts.map +1 -1
- package/dist/verify/verification-deps.js +2 -1
- package/dist/verify/verification-deps.js.map +1 -1
- package/dist/verify/verification-engine.d.ts.map +1 -1
- package/dist/verify/verification-engine.js +44 -15
- package/dist/verify/verification-engine.js.map +1 -1
- package/dist/verify/verification-feedback.d.ts.map +1 -1
- package/dist/verify/verification-feedback.js +1 -19
- package/dist/verify/verification-feedback.js.map +1 -1
- package/dist/verify/verify-restatement.d.ts.map +1 -1
- package/dist/verify/verify-restatement.js +5 -1
- package/dist/verify/verify-restatement.js.map +1 -1
- package/dist/worktree/provision.d.ts.map +1 -1
- package/dist/worktree/provision.js +3 -1
- package/dist/worktree/provision.js.map +1 -1
- package/package.json +2 -2
package/build-info.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"commitSha": "
|
|
3
|
-
"builtAt": "2026-09-
|
|
2
|
+
"commitSha": "54639704b",
|
|
3
|
+
"builtAt": "2026-09-24T17:30:38.767Z",
|
|
4
4
|
"expectedMigrations": [
|
|
5
5
|
"20250829113330_create_org_nodes_table.sql",
|
|
6
6
|
"20250829113402_fix_function_security_search_path.sql",
|
|
@@ -821,10 +821,13 @@
|
|
|
821
821
|
"20260920225339_builtin_workflow_child_policies_authorize_on_entity.sql",
|
|
822
822
|
"20260921000043_stamp_arm_covered_target_nodes.sql",
|
|
823
823
|
"20260922150418_product_request_source_and_mirrored_nodes.sql",
|
|
824
|
+
"20260922152730_create_product_migration_claims.sql",
|
|
824
825
|
"20260922173056_arm_states_the_future_it_covers.sql",
|
|
825
826
|
"20260922185904_focus_debug_arm_refused_section.sql",
|
|
827
|
+
"20260922192310_migration_claims_record_their_snapshot.sql",
|
|
826
828
|
"20260922221935_product_request_observation_snapshot.sql",
|
|
827
829
|
"20260922225316_product_request_observation_entry_is_atomic.sql",
|
|
828
|
-
"20260923002532_capture_request_observation_in_one_snapshot.sql"
|
|
830
|
+
"20260923002532_capture_request_observation_in_one_snapshot.sql",
|
|
831
|
+
"20260924010304_org_default_pass_models_opus_5_5.sql"
|
|
829
832
|
]
|
|
830
833
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/backends/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/backends/index.ts"],"names":[],"mappings":"AAmCA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,UAAU,EACV,YAAY,EACZ,cAAc,GACf,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACxB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,KAAK,yBAAyB,GAC/B,MAAM,mBAAmB,CAAC"}
|
package/dist/backends/index.js
CHANGED
|
@@ -2,14 +2,18 @@
|
|
|
2
2
|
// Pinned by: packages/daemon/src/backends/agent-backend.test.ts,
|
|
3
3
|
// packages/daemon/src/backends/backend-availability.test.ts,
|
|
4
4
|
// packages/daemon/src/backends/resolve-backend.test.ts,
|
|
5
|
+
// packages/daemon/src/completion/unclaimed-migration-notice-phase.test.ts,
|
|
5
6
|
// packages/daemon/src/focus/focus-executor-characterization.test.ts,
|
|
6
7
|
// packages/daemon/src/focus/resolve-effective-model.test.ts,
|
|
7
8
|
// packages/daemon/src/focus/spawn-crash-isolation.test.ts,
|
|
8
9
|
// packages/daemon/src/spawn/helpers-activity-wiring.test.ts,
|
|
9
10
|
// packages/daemon/src/spawn/per-pass-spawn-model.test.ts,
|
|
11
|
+
// packages/daemon/src/spawn/progress-measure-wiring.test.ts,
|
|
12
|
+
// packages/daemon/src/spawn/spawn-and-acknowledge.test.ts,
|
|
10
13
|
// packages/daemon/src/spawn/spawn-compact-turn.test.ts,
|
|
11
14
|
// packages/daemon/src/spawn/spawn-team-process-ownership.test.ts,
|
|
12
|
-
// packages/daemon/src/verify/stall-detectors-clock-wiring.test.ts
|
|
15
|
+
// packages/daemon/src/verify/stall-detectors-clock-wiring.test.ts,
|
|
16
|
+
// packages/daemon/src/verify/team-stall-reapers.test.ts
|
|
13
17
|
// PINNED-BY-END
|
|
14
18
|
/**
|
|
15
19
|
* Agent backend layer -- engine-agnostic spawn seam.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/backends/index.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,iEAAiE;AACjE,+DAA+D;AAC/D,0DAA0D;AAC1D,uEAAuE;AACvE,+DAA+D;AAC/D,6DAA6D;AAC7D,+DAA+D;AAC/D,4DAA4D;AAC5D,0DAA0D;AAC1D,oEAAoE;AACpE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/backends/index.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,iEAAiE;AACjE,+DAA+D;AAC/D,0DAA0D;AAC1D,6EAA6E;AAC7E,uEAAuE;AACvE,+DAA+D;AAC/D,6DAA6D;AAC7D,+DAA+D;AAC/D,4DAA4D;AAC5D,+DAA+D;AAC/D,6DAA6D;AAC7D,0DAA0D;AAC1D,oEAAoE;AACpE,qEAAqE;AACrE,0DAA0D;AAC1D,gBAAgB;AAEhB;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,6EAA6E;AAC7E,8EAA8E;AAC9E,6DAA6D;AAC7D,eAAe,CAAC,aAAa,CAAC,CAAC;AAC/B,eAAe,CAAC,YAAY,CAAC,CAAC;AAS9B,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,UAAU,EACV,YAAY,EACZ,cAAc,GACf,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,eAAe,GAMhB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GAExB,MAAM,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advancement-stall-watchdog.d.ts","sourceRoot":"","sources":["../../src/completion/advancement-stall-watchdog.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,
|
|
1
|
+
{"version":3,"file":"advancement-stall-watchdog.d.ts","sourceRoot":"","sources":["../../src/completion/advancement-stall-watchdog.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,EAA2D,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAClH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAKjE;;;;;;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,CA+DlB"}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import { recordDeliveryAdvancementCycle } from './delivery-advancement-guard.js';
|
|
18
18
|
import { escalateDeliveryAdvancementStalled } from './event-escalations.js';
|
|
19
|
-
import { NO_PROGRESS_CYCLE_FLOOR_MS } from './event-phases.js';
|
|
19
|
+
import { NO_PROGRESS_CYCLE_FLOOR_MS, NO_PROGRESS_STALL_WINDOW_MS } from './event-phases.js';
|
|
20
20
|
import { createLogger } from '../shell/log.js';
|
|
21
21
|
const log = createLogger({ module: 'focus-executor' });
|
|
22
22
|
/**
|
|
@@ -46,7 +46,11 @@ export async function checkDeliveryAdvancementStall(ctx, deps, facts, action, no
|
|
|
46
46
|
// watchdog is a cycle-counter too, so a burst of completion events must
|
|
47
47
|
// not be able to trip it either (without this the scope-coverage floor
|
|
48
48
|
// just moves the false team_failure from one guard to its twin).
|
|
49
|
-
facts.nowMs, NO_PROGRESS_CYCLE_FLOOR_MS
|
|
49
|
+
facts.nowMs, NO_PROGRESS_CYCLE_FLOOR_MS,
|
|
50
|
+
// The same team-activity axes the scope-coverage snapshot read, and the
|
|
51
|
+
// same stall window: this guard reads the ONE progress measure, measured
|
|
52
|
+
// across respawns from its own persisted last-advanced instant.
|
|
53
|
+
{ activity: facts.snapshot.activity ?? null, stallWindowMs: NO_PROGRESS_STALL_WINDOW_MS })
|
|
50
54
|
: null;
|
|
51
55
|
if (!deliveryAdvancement?.thresholdReached)
|
|
52
56
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advancement-stall-watchdog.js","sourceRoot":"","sources":["../../src/completion/advancement-stall-watchdog.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,oFAAoF;AACpF,gBAAgB;AAEhB;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,EAAE,kCAAkC,EAAE,MAAM,wBAAwB,CAAC;AAE5E,OAAO,EAAE,0BAA0B,EAAwB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"advancement-stall-watchdog.js","sourceRoot":"","sources":["../../src/completion/advancement-stall-watchdog.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,oFAAoF;AACpF,gBAAgB;AAEhB;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,EAAE,kCAAkC,EAAE,MAAM,wBAAwB,CAAC;AAE5E,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAwB,MAAM,mBAAmB,CAAC;AAElH,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,CAAC,KAAK,UAAU,6BAA6B,CACjD,GAA2B,EAC3B,IAAyB,EACzB,KAAsB,EACtB,MAAwB,EACxB,eAAuB;IAEvB,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC;IAE9C,MAAM,YAAY,GAChB,KAAK,CAAC,qBAAqB;QAC3B,MAAM,CAAC,IAAI,KAAK,oCAAoC;QACpD,CAAC,KAAK,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACxD,MAAM,mBAAmB,GAAG,YAAY;QACtC,CAAC,CAAC,8BAA8B,CAC9B,OAAO,EACP,KAAK,CAAC,oBAAoB;QAC1B,wEAAwE;QACxE,iEAAiE;QACjE,gEAAgE;QAChE,yEAAyE;QACzE,kEAAkE;QAClE,uEAAuE;QACvE,sEAAsE;QACtE,2CAA2C;QAC3C,KAAK,CAAC,gBAAgB,EACtB,KAAK,CAAC,YAAY,EAClB,eAAe;QACf,yEAAyE;QACzE,wEAAwE;QACxE,uEAAuE;QACvE,iEAAiE;QACjE,KAAK,CAAC,KAAK,EACX,0BAA0B;QAC1B,wEAAwE;QACxE,yEAAyE;QACzE,gEAAgE;QAChE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,EAAE,aAAa,EAAE,2BAA2B,EAAE,CAC1F;QACD,CAAC,CAAC,IAAI,CAAC;IACT,IAAI,CAAC,mBAAmB,EAAE,gBAAgB;QAAE,OAAO,KAAK,CAAC;IAEzD,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,CAAC;QACH,gBAAgB,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;IACtE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CACN,qCAAqC,SAAS,yDAA0D,GAAa,CAAC,OAAO,EAAE,CAChI,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,kCAAkC,CAAC;YACvC,cAAc,EAAE,SAAS,CAAC,cAAc;YACxC,SAAS,EAAE,SAAS,CAAC,aAAa,IAAI,EAAE;YACxC,OAAO;YACP,SAAS;YACT,WAAW,EAAE,SAAS,CAAC,MAAM;YAC7B,MAAM,EAAE,mBAAmB,CAAC,mBAAmB;YAC/C,UAAU,EAAE,KAAK,CAAC,oBAAoB;SACvC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,IAAI,CACN,mCAAmC,SAAS,gBAAgB;YAC5D,kFAAkF,CACnF,CAAC;IACJ,CAAC;IACD,SAAS,CAAC,cAAc,GAAG,eAAe,CAAC;IAC3C,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC5B,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -16,7 +16,9 @@
|
|
|
16
16
|
* and terminate
|
|
17
17
|
* 2. team has NO actionable work -> terminate cleanly (daemon/review-
|
|
18
18
|
* managed states move the remaining deliveries)
|
|
19
|
-
* 3. no-progress counter crossed the limit
|
|
19
|
+
* 3. no-progress counter crossed the limit AND the stall window elapsed
|
|
20
|
+
* (no movement on any axis of the one progress measure for
|
|
21
|
+
* NO_PROGRESS_STALL_WINDOW_MS) -> escalate and terminate
|
|
20
22
|
* 4. actionable deliveries carry open issues -> mid-focus handoff with
|
|
21
23
|
* the new work
|
|
22
24
|
* 5. otherwise (planning deliveries remain) -> re-engagement nudge
|
|
@@ -61,6 +63,13 @@ export interface CompletionDecisionFacts {
|
|
|
61
63
|
* new delivery in the wake message).
|
|
62
64
|
*/
|
|
63
65
|
hasNewlyAppearedDelivery: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* The team has been still -- no movement on any axis of the one progress
|
|
68
|
+
* measure -- for the whole stall window (NO_PROGRESS_STALL_WINDOW_MS). A
|
|
69
|
+
* count of cycles alone never ends a team: the cycles are the daemon's own
|
|
70
|
+
* wake-ups. Omitted only by callers that predate the window (read as elapsed).
|
|
71
|
+
*/
|
|
72
|
+
stallWindowElapsed?: boolean;
|
|
64
73
|
}
|
|
65
74
|
/** The action handleCompletionEvent executes for this cycle. */
|
|
66
75
|
export type CompletionAction =
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion-decision.d.ts","sourceRoot":"","sources":["../../src/completion/completion-decision.ts"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"completion-decision.d.ts","sourceRoot":"","sources":["../../src/completion/completion-decision.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,4EAA4E;AAC5E,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,qBAAqB,EAAE,OAAO,CAAC;IAC/B;;;;;OAKG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;;;;OAKG;IACH,sBAAsB,EAAE,OAAO,CAAC;IAChC,wEAAwE;IACxE,gBAAgB,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,eAAe,EAAE,MAAM,CAAC;IACxB,oEAAoE;IACpE,uBAAuB,EAAE,OAAO,CAAC;IACjC;;;;;;;;;;OAUG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAClC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,gEAAgE;AAChE,MAAM,MAAM,gBAAgB;AAC1B,6EAA6E;AAC3E;IAAE,IAAI,EAAE,wCAAwC,CAAA;CAAE;AACpD,0EAA0E;GACxE;IAAE,IAAI,EAAE,8BAA8B,CAAA;CAAE;AAC1C,0EAA0E;GACxE;IAAE,IAAI,EAAE,oCAAoC,CAAA;CAAE;AAChD,qEAAqE;GACnE;IAAE,IAAI,EAAE,kBAAkB,CAAA;CAAE;AAC9B,4EAA4E;GAC1E;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAEzB;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,IAAI,CAAC,uBAAuB,EAAE,uBAAuB,GAAG,mBAAmB,CAAC,GAClF,OAAO,CAET;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,uBAAuB,GAAG,gBAAgB,CAyBvF"}
|
|
@@ -32,7 +32,7 @@ export function decideCompletionAction(facts) {
|
|
|
32
32
|
}
|
|
33
33
|
return { kind: 'terminate_no_actionable_work' };
|
|
34
34
|
}
|
|
35
|
-
if (facts.noProgressCycles >= facts.noProgressLimit) {
|
|
35
|
+
if (facts.noProgressCycles >= facts.noProgressLimit && facts.stallWindowElapsed !== false) {
|
|
36
36
|
return { kind: 'escalate_no_progress_and_terminate' };
|
|
37
37
|
}
|
|
38
38
|
if (facts.hasActionableOpenIssues) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion-decision.js","sourceRoot":"","sources":["../../src/completion/completion-decision.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,wEAAwE;AACxE,gBAAgB;
|
|
1
|
+
{"version":3,"file":"completion-decision.js","sourceRoot":"","sources":["../../src/completion/completion-decision.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,wEAAwE;AACxE,gBAAgB;AA0FhB;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAmF;IAEnF,OAAO,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAA8B;IACnE,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;QACjC,uEAAuE;QACvE,wEAAwE;QACxE,6EAA6E;QAC7E,4EAA4E;QAC5E,4EAA4E;QAC5E,uEAAuE;QACvE,2EAA2E;QAC3E,8CAA8C;QAC9C,IAAI,KAAK,CAAC,wBAAwB,EAAE,CAAC;YACnC,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,sBAAsB,EAAE,CAAC;YAC7D,OAAO,EAAE,IAAI,EAAE,wCAAwC,EAAE,CAAC;QAC5D,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,8BAA8B,EAAE,CAAC;IAClD,CAAC;IACD,IAAI,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,kBAAkB,KAAK,KAAK,EAAE,CAAC;QAC1F,OAAO,EAAE,IAAI,EAAE,oCAAoC,EAAE,CAAC;IACxD,CAAC;IACD,IAAI,KAAK,CAAC,uBAAuB,EAAE,CAAC;QAClC,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;IACtC,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { CompletionEventDeps } from './event.js';
|
|
2
|
+
/**
|
|
3
|
+
* The focus worktree and the sha its HEAD is at, resolved once for BOTH the
|
|
4
|
+
* git-activity snapshot dimension and the dirty re-wake guard.
|
|
5
|
+
*
|
|
6
|
+
* A team that wrote AND committed code this cycle moved the focus branch HEAD
|
|
7
|
+
* even when no DB state moved; feeding that sha into the snapshot makes the
|
|
8
|
+
* commit reset the no-progress counter through the EXISTING
|
|
9
|
+
* madeProgress/snapshotsEqual machinery. Null when no worktree is registered or
|
|
10
|
+
* git could not be read.
|
|
11
|
+
*/
|
|
12
|
+
export declare function resolveFocusHead(focusId: string, deps: CompletionEventDeps): {
|
|
13
|
+
focusWorktreePath: string | null;
|
|
14
|
+
focusHeadSha: string | null;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Whether this focus holds an unclaimed-migration record the team has NOT been
|
|
18
|
+
* shown yet.
|
|
19
|
+
*
|
|
20
|
+
* Actionable work for exactly one turn (see
|
|
21
|
+
* TeamActionableWorkInput.unclaimedMigrationUnnamed): the file on the branch
|
|
22
|
+
* carries a migration number no claim knows about, and the team that wrote it
|
|
23
|
+
* is the only one that can claim or remove it.
|
|
24
|
+
*
|
|
25
|
+
* A FAILED READ ANSWERS FALSE HERE, and that is deliberate -- the fail-closed
|
|
26
|
+
* posture lives one layer up, in the phase that actually DELIVERS the notice.
|
|
27
|
+
* That phase runs first, holds the team on an unreadable record and marks
|
|
28
|
+
* nothing, so the state is retained and retried either way. This fact, by
|
|
29
|
+
* contrast, is folded into the shared actionable-work predicate AHEAD of the
|
|
30
|
+
* verify interlock: answering true on a failed artifact read would let an API
|
|
31
|
+
* outage override an unrelated hold and keep a team the verify interlock had
|
|
32
|
+
* just withheld. One place fails closed; this one stays out of the way.
|
|
33
|
+
*/
|
|
34
|
+
export declare function readUnnamedUnclaimedMigration(focusId: string, deps: CompletionEventDeps): Promise<boolean>;
|
|
35
|
+
//# sourceMappingURL=completion-fact-readers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion-fact-readers.d.ts","sourceRoot":"","sources":["../../src/completion/completion-fact-readers.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,mBAAmB,GACxB;IAAE,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAQnE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,OAAO,CAAC,CAUlB"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
+
// Pinned by: packages/daemon/src/completion/exit-unclaimed-migration-hold.test.ts,
|
|
3
|
+
// packages/daemon/src/migrations/claim-production-wiring.test.ts
|
|
4
|
+
// PINNED-BY-END
|
|
5
|
+
/**
|
|
6
|
+
* The IO-backed facts the completion decision gathers, each behind its own
|
|
7
|
+
* deps-defaulted reader.
|
|
8
|
+
*
|
|
9
|
+
* WHY THEY SIT HERE. `computeCompletionFacts` decides; these two go and look.
|
|
10
|
+
* Both follow the same pattern -- an injectable seam with a production default,
|
|
11
|
+
* so a test drives the decision without a worktree or an API, and production
|
|
12
|
+
* needs no wiring at the call site. Kept out of the decision module because
|
|
13
|
+
* they are the only IO in it and because that module is at the file-size
|
|
14
|
+
* ceiling, where every future fact would have to displace an old one.
|
|
15
|
+
*
|
|
16
|
+
* @module completion/completion-fact-readers
|
|
17
|
+
*/
|
|
18
|
+
import { getFocusWorktree as defaultGetFocusWorktree } from '../focus/focus-worktree-state.js';
|
|
19
|
+
import { readWorktreeHeadSha as defaultReadWorktreeHeadSha } from '../git/index.js';
|
|
20
|
+
import { parseUnclaimedNamedAt, readUnclaimedMigrationRecordStrict, } from '../queries/focus-unclaimed-migration.js';
|
|
21
|
+
/**
|
|
22
|
+
* The focus worktree and the sha its HEAD is at, resolved once for BOTH the
|
|
23
|
+
* git-activity snapshot dimension and the dirty re-wake guard.
|
|
24
|
+
*
|
|
25
|
+
* A team that wrote AND committed code this cycle moved the focus branch HEAD
|
|
26
|
+
* even when no DB state moved; feeding that sha into the snapshot makes the
|
|
27
|
+
* commit reset the no-progress counter through the EXISTING
|
|
28
|
+
* madeProgress/snapshotsEqual machinery. Null when no worktree is registered or
|
|
29
|
+
* git could not be read.
|
|
30
|
+
*/
|
|
31
|
+
export function resolveFocusHead(focusId, deps) {
|
|
32
|
+
const resolveWorktree = deps.getFocusWorktree ?? defaultGetFocusWorktree;
|
|
33
|
+
const readHeadSha = deps.readWorktreeHeadSha ?? defaultReadWorktreeHeadSha;
|
|
34
|
+
const focusWorktreePath = resolveWorktree(focusId)?.worktreePath ?? null;
|
|
35
|
+
return {
|
|
36
|
+
focusWorktreePath,
|
|
37
|
+
focusHeadSha: focusWorktreePath !== null ? readHeadSha(focusWorktreePath) : null,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Whether this focus holds an unclaimed-migration record the team has NOT been
|
|
42
|
+
* shown yet.
|
|
43
|
+
*
|
|
44
|
+
* Actionable work for exactly one turn (see
|
|
45
|
+
* TeamActionableWorkInput.unclaimedMigrationUnnamed): the file on the branch
|
|
46
|
+
* carries a migration number no claim knows about, and the team that wrote it
|
|
47
|
+
* is the only one that can claim or remove it.
|
|
48
|
+
*
|
|
49
|
+
* A FAILED READ ANSWERS FALSE HERE, and that is deliberate -- the fail-closed
|
|
50
|
+
* posture lives one layer up, in the phase that actually DELIVERS the notice.
|
|
51
|
+
* That phase runs first, holds the team on an unreadable record and marks
|
|
52
|
+
* nothing, so the state is retained and retried either way. This fact, by
|
|
53
|
+
* contrast, is folded into the shared actionable-work predicate AHEAD of the
|
|
54
|
+
* verify interlock: answering true on a failed artifact read would let an API
|
|
55
|
+
* outage override an unrelated hold and keep a team the verify interlock had
|
|
56
|
+
* just withheld. One place fails closed; this one stays out of the way.
|
|
57
|
+
*/
|
|
58
|
+
export async function readUnnamedUnclaimedMigration(focusId, deps) {
|
|
59
|
+
try {
|
|
60
|
+
// Strict, for the same reason the notice phase uses it: the lenient read
|
|
61
|
+
// swallows a failure into null, and null here means "nothing to tell".
|
|
62
|
+
const readRecord = deps.readUnclaimedMigrationRecord ?? readUnclaimedMigrationRecordStrict;
|
|
63
|
+
const record = await readRecord(focusId);
|
|
64
|
+
return record !== null && parseUnclaimedNamedAt(record) === null;
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return false; // the notice phase already held on this; see above
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=completion-fact-readers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion-fact-readers.js","sourceRoot":"","sources":["../../src/completion/completion-fact-readers.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,mFAAmF;AACnF,mEAAmE;AACnE,gBAAgB;AAEhB;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,gBAAgB,IAAI,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC/F,OAAO,EAAE,mBAAmB,IAAI,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EACL,qBAAqB,EACrB,kCAAkC,GACnC,MAAM,yCAAyC,CAAC;AAGjD;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAe,EACf,IAAyB;IAEzB,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,IAAI,uBAAuB,CAAC;IACzE,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,IAAI,0BAA0B,CAAC;IAC3E,MAAM,iBAAiB,GAAG,eAAe,CAAC,OAAO,CAAC,EAAE,YAAY,IAAI,IAAI,CAAC;IACzE,OAAO;QACL,iBAAiB;QACjB,YAAY,EAAE,iBAAiB,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI;KACjF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,OAAe,EACf,IAAyB;IAEzB,IAAI,CAAC;QACH,yEAAyE;QACzE,uEAAuE;QACvE,MAAM,UAAU,GAAG,IAAI,CAAC,4BAA4B,IAAI,kCAAkC,CAAC;QAC3F,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,MAAM,KAAK,IAAI,IAAI,qBAAqB,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC,CAAC,mDAAmD;IACnE,CAAC;AACH,CAAC"}
|
|
@@ -9,8 +9,10 @@
|
|
|
9
9
|
* the daemon terminates and respawns the team. That persistence is the whole
|
|
10
10
|
* reason this guard exists as a separate structure.
|
|
11
11
|
*
|
|
12
|
-
* Progress axes
|
|
13
|
-
* cycle
|
|
12
|
+
* Progress axes -- the ONE progress measure (team-progress-measure.ts); a cycle
|
|
13
|
+
* "advanced" when ANY moved since the prior cycle (4 and 5: the team's agent
|
|
14
|
+
* activity and its uncommitted diff, added 2026-09-24 so a team whose workers
|
|
15
|
+
* are editing is not read as thrashing):
|
|
14
16
|
* 1. delivery execution_status per delivery (the original, coarse axis),
|
|
15
17
|
* 2. a work-issue fingerprint -- a canonical hash of {issueId -> status} --
|
|
16
18
|
* so ANY issue transition (To Do -> In Progress -> Done, or a new issue)
|
|
@@ -40,18 +42,15 @@
|
|
|
40
42
|
* signal; the two do not double-count -- they measure different windows (this
|
|
41
43
|
* guard: cross-respawn; madeProgress: within a single keep-alive team).
|
|
42
44
|
*/
|
|
43
|
-
import type { FocusDeliveryInfo, FocusIssueInfo } from '../types/index.js';
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
* A different sha means the team committed this cycle. */
|
|
53
|
-
focusHeadSha: string | null;
|
|
54
|
-
}
|
|
45
|
+
import type { FocusDeliveryInfo, FocusIssueInfo, TeamActivityMarks, TeamProgressAxes } from '../types/index.js';
|
|
46
|
+
/**
|
|
47
|
+
* The guard's persisted reading IS the one progress measure's axes
|
|
48
|
+
* (completion/team-progress-measure.ts): delivery statuses (whose keys also
|
|
49
|
+
* encode the delivery SET), the issue fingerprint, the focus HEAD, and the team
|
|
50
|
+
* activity axes (agent activity, uncommitted diff) -- so a respawned team whose
|
|
51
|
+
* workers are editing is not counted as thrashing.
|
|
52
|
+
*/
|
|
53
|
+
export type DeliveryAdvancementSnapshot = TeamProgressAxes;
|
|
55
54
|
export interface DeliveryAdvancementState {
|
|
56
55
|
snapshot: DeliveryAdvancementSnapshot;
|
|
57
56
|
noAdvancementCycles: number;
|
|
@@ -64,6 +63,12 @@ export interface DeliveryAdvancementState {
|
|
|
64
63
|
* (floorMs=0) behave identically.
|
|
65
64
|
*/
|
|
66
65
|
lastRecordedAt?: number;
|
|
66
|
+
/**
|
|
67
|
+
* Epoch ms the focus last ADVANCED (or was baselined). The stall window is
|
|
68
|
+
* measured from it, so it spans respawns: a thrashing focus whose teams each
|
|
69
|
+
* live a minute still reaches the threshold once the window has passed.
|
|
70
|
+
*/
|
|
71
|
+
lastAdvancedAt?: number;
|
|
67
72
|
}
|
|
68
73
|
export interface DeliveryAdvancementDecision {
|
|
69
74
|
advanced: boolean;
|
|
@@ -91,7 +96,8 @@ export declare function setDeliveryAdvancementPersister(fn: DeliveryAdvancementP
|
|
|
91
96
|
* to compare against, silently forgiving the streak.
|
|
92
97
|
*/
|
|
93
98
|
export declare function hydrateDeliveryAdvancementState(focusId: string, state: DeliveryAdvancementState | null): void;
|
|
94
|
-
export declare function takeDeliveryAdvancementSnapshot(deliveries: Pick<FocusDeliveryInfo, 'id' | 'executionStatus'>[], issues?: Pick<FocusIssueInfo, 'id' | 'status'>[], focusHeadSha?: string | null): DeliveryAdvancementSnapshot;
|
|
99
|
+
export declare function takeDeliveryAdvancementSnapshot(deliveries: Pick<FocusDeliveryInfo, 'id' | 'executionStatus'>[], issues?: Pick<FocusIssueInfo, 'id' | 'status'>[], focusHeadSha?: string | null, activity?: TeamActivityMarks | null): DeliveryAdvancementSnapshot;
|
|
100
|
+
/** Equal when the one progress measure reads no movement between them. */
|
|
95
101
|
export declare function deliveryAdvancementSnapshotsEqual(a: DeliveryAdvancementSnapshot, b: DeliveryAdvancementSnapshot): boolean;
|
|
96
102
|
export declare function recordDeliveryAdvancementCycle(focusId: string, deliveries: Pick<FocusDeliveryInfo, 'id' | 'executionStatus'>[], issues: Pick<FocusIssueInfo, 'id' | 'status'>[], focusHeadSha: string | null, threshold: number,
|
|
97
103
|
/** Clock value for the time floor (default Date.now for pre-floor callers). */
|
|
@@ -102,6 +108,15 @@ nowMs?: number,
|
|
|
102
108
|
* expects). The completion handler passes NO_PROGRESS_CYCLE_FLOOR_MS so this
|
|
103
109
|
* watchdog can no longer be tripped by a burst of completion events.
|
|
104
110
|
*/
|
|
105
|
-
floorMs?: number
|
|
111
|
+
floorMs?: number, opts?: {
|
|
112
|
+
/** The team-activity axes of the measure, read this cycle (null: not compared). */
|
|
113
|
+
activity?: TeamActivityMarks | null;
|
|
114
|
+
/**
|
|
115
|
+
* Real time the focus must have gone without advancing (measured across
|
|
116
|
+
* respawns from lastAdvancedAt) before the threshold may be reached. 0 = no
|
|
117
|
+
* window (the pre-window callers).
|
|
118
|
+
*/
|
|
119
|
+
stallWindowMs?: number;
|
|
120
|
+
}): DeliveryAdvancementDecision;
|
|
106
121
|
export declare function resetDeliveryAdvancementGuard(focusId?: string): void;
|
|
107
122
|
//# sourceMappingURL=delivery-advancement-guard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery-advancement-guard.d.ts","sourceRoot":"","sources":["../../src/completion/delivery-advancement-guard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"delivery-advancement-guard.d.ts","sourceRoot":"","sources":["../../src/completion/delivery-advancement-guard.ts"],"names":[],"mappings":"AAaA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGhH;;;;;;GAMG;AACH,MAAM,MAAM,2BAA2B,GAAG,gBAAgB,CAAC;AAE3D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,2BAA2B,CAAC;IACtC,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;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,EAClC,QAAQ,GAAE,iBAAiB,GAAG,IAAW,GACxC,2BAA2B,CAW7B;AAED,0EAA0E;AAC1E,wBAAgB,iCAAiC,CAC/C,CAAC,EAAE,2BAA2B,EAC9B,CAAC,EAAE,2BAA2B,GAC7B,OAAO,CAET;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,EACX,IAAI,GAAE;IACJ,mFAAmF;IACnF,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACpC;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACnB,GACL,2BAA2B,CA0C7B;AAED,wBAAgB,6BAA6B,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CASpE"}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
-
// Pinned by: packages/daemon/src/completion/
|
|
2
|
+
// Pinned by: packages/daemon/src/completion/delivery-advancement-persistence.test.ts,
|
|
3
|
+
// packages/daemon/src/completion/durable-bounds.test.ts,
|
|
3
4
|
// packages/daemon/src/completion/non-advanceable-thrash-guard.test.ts,
|
|
4
5
|
// packages/daemon/src/completion/progress-guards-recorded-intent.test.ts,
|
|
5
6
|
// packages/daemon/src/completion/reengagement-redrive.test.ts,
|
|
6
7
|
// packages/daemon/src/completion/stall-guard-time-floor.test.ts,
|
|
7
|
-
// packages/daemon/src/
|
|
8
|
+
// packages/daemon/src/completion/worker-wait.test.ts,
|
|
9
|
+
// packages/daemon/src/focus/spawn-focus-team-guard-wiring.test.ts,
|
|
10
|
+
// packages/daemon/src/spawn/lead-continuation.test.ts,
|
|
11
|
+
// packages/daemon/src/spawn/progress-measure-wiring.test.ts
|
|
8
12
|
// PINNED-BY-END
|
|
13
|
+
import { computeIssueFingerprint, teamProgressMoved } from './team-progress-measure.js';
|
|
9
14
|
const perFocusState = new Map();
|
|
10
15
|
let advancementPersister = null;
|
|
11
16
|
/** Register (or clear, with null) the durable write-through persister at boot. */
|
|
@@ -32,19 +37,7 @@ export function hydrateDeliveryAdvancementState(focusId, state) {
|
|
|
32
37
|
return; // in-memory wins during a run
|
|
33
38
|
perFocusState.set(focusId, state);
|
|
34
39
|
}
|
|
35
|
-
|
|
36
|
-
* Stable, key-order-independent fingerprint of the work-issue state. Sorting by
|
|
37
|
-
* issueId makes the fingerprint depend only on the set of issues and their
|
|
38
|
-
* statuses, so a fetch that returns issues in a different order does not
|
|
39
|
-
* manufacture phantom progress.
|
|
40
|
-
*/
|
|
41
|
-
function computeIssueFingerprint(issues) {
|
|
42
|
-
return issues
|
|
43
|
-
.map(i => `${i.id}:${i.status ?? ''}`)
|
|
44
|
-
.sort()
|
|
45
|
-
.join('|');
|
|
46
|
-
}
|
|
47
|
-
export function takeDeliveryAdvancementSnapshot(deliveries, issues = [], focusHeadSha = null) {
|
|
40
|
+
export function takeDeliveryAdvancementSnapshot(deliveries, issues = [], focusHeadSha = null, activity = null) {
|
|
48
41
|
const deliveryStatuses = {};
|
|
49
42
|
for (const delivery of deliveries) {
|
|
50
43
|
deliveryStatuses[delivery.id] = delivery.executionStatus ?? '';
|
|
@@ -53,24 +46,12 @@ export function takeDeliveryAdvancementSnapshot(deliveries, issues = [], focusHe
|
|
|
53
46
|
deliveryStatuses,
|
|
54
47
|
issueFingerprint: computeIssueFingerprint(issues),
|
|
55
48
|
focusHeadSha,
|
|
49
|
+
activity,
|
|
56
50
|
};
|
|
57
51
|
}
|
|
52
|
+
/** Equal when the one progress measure reads no movement between them. */
|
|
58
53
|
export function deliveryAdvancementSnapshotsEqual(a, b) {
|
|
59
|
-
|
|
60
|
-
return false;
|
|
61
|
-
if (a.focusHeadSha !== b.focusHeadSha)
|
|
62
|
-
return false;
|
|
63
|
-
const aKeys = Object.keys(a.deliveryStatuses).sort();
|
|
64
|
-
const bKeys = Object.keys(b.deliveryStatuses).sort();
|
|
65
|
-
if (aKeys.length !== bKeys.length)
|
|
66
|
-
return false;
|
|
67
|
-
for (let i = 0; i < aKeys.length; i += 1) {
|
|
68
|
-
const key = aKeys[i];
|
|
69
|
-
if (key !== bKeys[i] || a.deliveryStatuses[key] !== b.deliveryStatuses[key]) {
|
|
70
|
-
return false;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
return true;
|
|
54
|
+
return !teamProgressMoved(a, b);
|
|
74
55
|
}
|
|
75
56
|
export function recordDeliveryAdvancementCycle(focusId, deliveries, issues, focusHeadSha, threshold,
|
|
76
57
|
/** Clock value for the time floor (default Date.now for pre-floor callers). */
|
|
@@ -81,20 +62,24 @@ nowMs = Date.now(),
|
|
|
81
62
|
* expects). The completion handler passes NO_PROGRESS_CYCLE_FLOOR_MS so this
|
|
82
63
|
* watchdog can no longer be tripped by a burst of completion events.
|
|
83
64
|
*/
|
|
84
|
-
floorMs = 0) {
|
|
85
|
-
const snapshot = takeDeliveryAdvancementSnapshot(deliveries, issues, focusHeadSha);
|
|
65
|
+
floorMs = 0, opts = {}) {
|
|
66
|
+
const snapshot = takeDeliveryAdvancementSnapshot(deliveries, issues, focusHeadSha, opts.activity ?? null);
|
|
86
67
|
const prior = perFocusState.get(focusId);
|
|
87
68
|
if (!prior) {
|
|
88
|
-
commitState(focusId, { snapshot, noAdvancementCycles: 0, lastRecordedAt: nowMs });
|
|
69
|
+
commitState(focusId, { snapshot, noAdvancementCycles: 0, lastRecordedAt: nowMs, lastAdvancedAt: nowMs });
|
|
89
70
|
return { advanced: true, noAdvancementCycles: 0, thresholdReached: false };
|
|
90
71
|
}
|
|
91
72
|
const advanced = !deliveryAdvancementSnapshotsEqual(prior.snapshot, snapshot);
|
|
92
73
|
if (advanced) {
|
|
93
74
|
// Progress is progress regardless of timing -- reset the counter and rebase
|
|
94
75
|
// the snapshot + floor clock on this cycle.
|
|
95
|
-
commitState(focusId, { snapshot, noAdvancementCycles: 0, lastRecordedAt: nowMs });
|
|
76
|
+
commitState(focusId, { snapshot, noAdvancementCycles: 0, lastRecordedAt: nowMs, lastAdvancedAt: nowMs });
|
|
96
77
|
return { advanced: true, noAdvancementCycles: 0, thresholdReached: false };
|
|
97
78
|
}
|
|
79
|
+
// The stall window: a state persisted before lastAdvancedAt existed measures
|
|
80
|
+
// from its last counted cycle, else from now -- toward patience, never a kill.
|
|
81
|
+
const lastAdvancedAt = prior.lastAdvancedAt ?? prior.lastRecordedAt ?? nowMs;
|
|
82
|
+
const windowElapsed = nowMs - lastAdvancedAt >= (opts.stallWindowMs ?? 0);
|
|
98
83
|
// No advancement. FLOOR the increment: a cycle arriving within floorMs of the
|
|
99
84
|
// last counted cycle is a burst artifact -- HOLD the counter (do not
|
|
100
85
|
// increment), keep the prior snapshot + timestamp so the floor is measured
|
|
@@ -105,15 +90,15 @@ floorMs = 0) {
|
|
|
105
90
|
return {
|
|
106
91
|
advanced: false,
|
|
107
92
|
noAdvancementCycles: prior.noAdvancementCycles,
|
|
108
|
-
thresholdReached: prior.noAdvancementCycles >= threshold,
|
|
93
|
+
thresholdReached: windowElapsed && prior.noAdvancementCycles >= threshold,
|
|
109
94
|
};
|
|
110
95
|
}
|
|
111
96
|
const noAdvancementCycles = prior.noAdvancementCycles + 1;
|
|
112
|
-
commitState(focusId, { snapshot, noAdvancementCycles, lastRecordedAt: nowMs });
|
|
97
|
+
commitState(focusId, { snapshot, noAdvancementCycles, lastRecordedAt: nowMs, lastAdvancedAt });
|
|
113
98
|
return {
|
|
114
99
|
advanced,
|
|
115
100
|
noAdvancementCycles,
|
|
116
|
-
thresholdReached: noAdvancementCycles >= threshold,
|
|
101
|
+
thresholdReached: windowElapsed && noAdvancementCycles >= threshold,
|
|
117
102
|
};
|
|
118
103
|
}
|
|
119
104
|
export function resetDeliveryAdvancementGuard(focusId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery-advancement-guard.js","sourceRoot":"","sources":["../../src/completion/delivery-advancement-guard.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,
|
|
1
|
+
{"version":3,"file":"delivery-advancement-guard.js","sourceRoot":"","sources":["../../src/completion/delivery-advancement-guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../src/completion/detector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../src/completion/detector.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAKxE,MAAM,WAAW,wBAAwB;IACvC,oEAAoE;IACpE,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACzC,sEAAsE;IACtE,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,4DAA4D;IAC5D,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAC;IAChD,4CAA4C;IAC5C,oBAAoB,EAAE,OAAO,CAAC;IAC9B,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,+CAA+C;IAC/C,cAAc,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAID;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,sBAAsB,CAA8C;IAC5E,OAAO,CAAC,UAAU,CAAS;IAE3B,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAEvC;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAiC;IAElE;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAe;IAEtD;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAE7C,uDAAuD;IACvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,OAAO,CAAC,EAAE;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;QACjD,qBAAqB,CAAC,EAAE,MAAM,MAAM,CAAC;QACrC,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IASD;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAgBtC,OAAO,CAAC,YAAY;IAmCpB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,cAAc;IAsBtB;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAU/B,wDAAwD;IACxD,OAAO,CAAC,YAAY;IAepB;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IAejC,8EAA8E;IAC9E,OAAO,CAAC,2BAA2B;IAMnC,OAAO,CAAC,2BAA2B;IAOnC,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,cAAc;IAOtB,8CAA8C;IAC9C,QAAQ,IAAI;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,UAAU,EAAE,OAAO,CAAC;KACrB;IAUD;;;;;;;;OAQG;IACH,KAAK,IAAI,IAAI;IAQb,uBAAuB;IACvB,OAAO,IAAI,IAAI;CAKhB"}
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
// packages/daemon/src/completion/detector-pending-input.test.ts,
|
|
4
4
|
// packages/daemon/src/completion/review-window-idle-coding-lead-regression.test.ts,
|
|
5
5
|
// packages/daemon/src/completion/terminal-error-terminate.test.ts,
|
|
6
|
-
// packages/daemon/src/integration/agent-owned-scoping-integration.test.ts
|
|
6
|
+
// packages/daemon/src/integration/agent-owned-scoping-integration.test.ts,
|
|
7
|
+
// packages/daemon/src/spawn/progress-measure-wiring.test.ts,
|
|
8
|
+
// packages/daemon/src/verify/team-stall-reapers.test.ts
|
|
7
9
|
// PINNED-BY-END
|
|
8
10
|
/**
|
|
9
11
|
* Completion detector for interactive agent sessions.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/completion/detector.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,mEAAmE;AACnE,mEAAmE;AACnE,sFAAsF;AACtF,qEAAqE;AACrE,
|
|
1
|
+
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/completion/detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The production implementations behind the completion event's optional deps.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from event.ts, which had grown past the file-size floor. These are
|
|
5
|
+
* adapters, not decisions: each turns a general query into the narrow shape one
|
|
6
|
+
* dep declares. `defaultDeps` itself stays in event.ts, because one of its
|
|
7
|
+
* members is `handleCompletionEvent` and moving it here would form a runtime
|
|
8
|
+
* import cycle.
|
|
9
|
+
*
|
|
10
|
+
* @module completion/event-dep-defaults
|
|
11
|
+
*/
|
|
12
|
+
import type { DaemonConfig } from '../types/index.js';
|
|
13
|
+
/**
|
|
14
|
+
* Default re-drive scheduler: a real setTimeout whose handle is unref()'d so a
|
|
15
|
+
* pending re-drive never keeps the daemon process alive on its own. The
|
|
16
|
+
* returned canceller clears the timer.
|
|
17
|
+
*/
|
|
18
|
+
export declare function defaultScheduleReDrive(fn: () => void, delayMs: number): () => void;
|
|
19
|
+
/** The focus's review_requested_at, resolved FRESH at the completion event. */
|
|
20
|
+
export declare function defaultGetReviewRequestedAt(config: DaemonConfig, focusId: string): Promise<string | null>;
|
|
21
|
+
/** The focus's human-ratification state, backing the scope-coverage guard. */
|
|
22
|
+
export declare function defaultGetFocusRatificationState(config: DaemonConfig, focusId: string): Promise<{
|
|
23
|
+
readOnly: boolean;
|
|
24
|
+
auditOrigin: boolean;
|
|
25
|
+
ratifiedAt: string | null;
|
|
26
|
+
}>;
|
|
27
|
+
//# sourceMappingURL=event-dep-defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-dep-defaults.d.ts","sourceRoot":"","sources":["../../src/completion/event-dep-defaults.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,IAAI,CAIlF;AAED,+EAA+E;AAC/E,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGxB;AAED,8EAA8E;AAC9E,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAQjF"}
|