@telora/daemon 0.22.104 → 0.22.132
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 +4 -3
- package/dist/completion/commit-verdict-release.d.ts +49 -0
- package/dist/completion/commit-verdict-release.d.ts.map +1 -0
- package/dist/completion/commit-verdict-release.js +240 -0
- package/dist/completion/commit-verdict-release.js.map +1 -0
- package/dist/completion/completion-phase-registry.d.ts +10 -4
- package/dist/completion/completion-phase-registry.d.ts.map +1 -1
- package/dist/completion/completion-phase-registry.js +19 -7
- package/dist/completion/completion-phase-registry.js.map +1 -1
- package/dist/completion/detector.d.ts.map +1 -1
- package/dist/completion/detector.js +1 -0
- package/dist/completion/detector.js.map +1 -1
- package/dist/completion/event-entry-phases.d.ts +6 -3
- package/dist/completion/event-entry-phases.d.ts.map +1 -1
- package/dist/completion/event-entry-phases.js +135 -76
- package/dist/completion/event-entry-phases.js.map +1 -1
- package/dist/completion/event-phases.d.ts +24 -3
- package/dist/completion/event-phases.d.ts.map +1 -1
- package/dist/completion/event-phases.js +9 -9
- package/dist/completion/event-phases.js.map +1 -1
- package/dist/completion/event.d.ts +8 -0
- package/dist/completion/event.d.ts.map +1 -1
- package/dist/completion/event.js +47 -21
- package/dist/completion/event.js.map +1 -1
- package/dist/completion/exit-classification.d.ts.map +1 -1
- package/dist/completion/exit-classification.js +1 -0
- package/dist/completion/exit-classification.js.map +1 -1
- package/dist/completion/merge-phase.d.ts +21 -9
- package/dist/completion/merge-phase.d.ts.map +1 -1
- package/dist/completion/merge-phase.js +35 -10
- package/dist/completion/merge-phase.js.map +1 -1
- package/dist/completion/review-auto-approval-record.d.ts +19 -0
- package/dist/completion/review-auto-approval-record.d.ts.map +1 -0
- package/dist/completion/review-auto-approval-record.js +102 -0
- package/dist/completion/review-auto-approval-record.js.map +1 -0
- package/dist/completion/review-cycle-cap.d.ts +62 -0
- package/dist/completion/review-cycle-cap.d.ts.map +1 -0
- package/dist/completion/review-cycle-cap.js +180 -0
- package/dist/completion/review-cycle-cap.js.map +1 -0
- package/dist/completion/review-exit-deps.d.ts +17 -2
- package/dist/completion/review-exit-deps.d.ts.map +1 -1
- package/dist/completion/review-exit-deps.js +19 -2
- package/dist/completion/review-exit-deps.js.map +1 -1
- package/dist/completion/review-exit-escalations.d.ts +45 -23
- package/dist/completion/review-exit-escalations.d.ts.map +1 -1
- package/dist/completion/review-exit-escalations.js +15 -74
- package/dist/completion/review-exit-escalations.js.map +1 -1
- package/dist/completion/review-exit-evidence.d.ts +9 -0
- package/dist/completion/review-exit-evidence.d.ts.map +1 -1
- package/dist/completion/review-exit-evidence.js +4 -1
- package/dist/completion/review-exit-evidence.js.map +1 -1
- package/dist/completion/review-exit-foreign-findings.d.ts +151 -0
- package/dist/completion/review-exit-foreign-findings.d.ts.map +1 -0
- package/dist/completion/review-exit-foreign-findings.js +474 -0
- package/dist/completion/review-exit-foreign-findings.js.map +1 -0
- package/dist/completion/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.js +71 -64
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/completion/review-exit-progress.d.ts +20 -0
- package/dist/completion/review-exit-progress.d.ts.map +1 -1
- package/dist/completion/review-exit-progress.js +28 -19
- package/dist/completion/review-exit-progress.js.map +1 -1
- package/dist/completion/review-exit-rehoming.d.ts +5 -0
- package/dist/completion/review-exit-rehoming.d.ts.map +1 -1
- package/dist/completion/review-exit-rehoming.js.map +1 -1
- package/dist/completion/review-exit-verdict-gate.d.ts +202 -0
- package/dist/completion/review-exit-verdict-gate.d.ts.map +1 -0
- package/dist/completion/review-exit-verdict-gate.js +228 -0
- package/dist/completion/review-exit-verdict-gate.js.map +1 -0
- package/dist/completion/review-next-step.d.ts +62 -0
- package/dist/completion/review-next-step.d.ts.map +1 -0
- package/dist/completion/review-next-step.js +63 -0
- package/dist/completion/review-next-step.js.map +1 -0
- package/dist/completion/session-hold-sweep-deps.d.ts +17 -0
- package/dist/completion/session-hold-sweep-deps.d.ts.map +1 -0
- package/dist/completion/session-hold-sweep-deps.js +89 -0
- package/dist/completion/session-hold-sweep-deps.js.map +1 -0
- package/dist/completion/session-hold.d.ts +180 -0
- package/dist/completion/session-hold.d.ts.map +1 -0
- package/dist/completion/session-hold.js +238 -0
- package/dist/completion/session-hold.js.map +1 -0
- package/dist/completion/state-cascade.d.ts +19 -0
- package/dist/completion/state-cascade.d.ts.map +1 -1
- package/dist/completion/state-cascade.js +85 -31
- package/dist/completion/state-cascade.js.map +1 -1
- package/dist/completion/team-lifecycle.d.ts +35 -2
- package/dist/completion/team-lifecycle.d.ts.map +1 -1
- package/dist/completion/team-lifecycle.js +165 -94
- package/dist/completion/team-lifecycle.js.map +1 -1
- package/dist/completion/team-phase.d.ts +27 -15
- package/dist/completion/team-phase.d.ts.map +1 -1
- package/dist/completion/team-phase.js +34 -15
- package/dist/completion/team-phase.js.map +1 -1
- package/dist/delivery/commit-verdict-hold.d.ts +55 -0
- package/dist/delivery/commit-verdict-hold.d.ts.map +1 -0
- package/dist/delivery/commit-verdict-hold.js +118 -0
- package/dist/delivery/commit-verdict-hold.js.map +1 -0
- package/dist/directive/directive-dispatch.d.ts.map +1 -1
- package/dist/directive/directive-dispatch.js +10 -3
- package/dist/directive/directive-dispatch.js.map +1 -1
- package/dist/directive/directive-executor.d.ts.map +1 -1
- package/dist/directive/directive-executor.js +1 -0
- package/dist/directive/directive-executor.js.map +1 -1
- package/dist/directive/directive-queue.d.ts.map +1 -1
- package/dist/directive/directive-queue.js +6 -1
- package/dist/directive/directive-queue.js.map +1 -1
- package/dist/directive/phase-sync.d.ts +29 -2
- package/dist/directive/phase-sync.d.ts.map +1 -1
- package/dist/directive/phase-sync.js +30 -6
- package/dist/directive/phase-sync.js.map +1 -1
- package/dist/drift/artifact-ref-shape.d.ts +34 -0
- package/dist/drift/artifact-ref-shape.d.ts.map +1 -0
- package/dist/drift/artifact-ref-shape.js +94 -0
- package/dist/drift/artifact-ref-shape.js.map +1 -0
- package/dist/drift/drift-eval-loop.d.ts +7 -0
- package/dist/drift/drift-eval-loop.d.ts.map +1 -1
- package/dist/drift/drift-eval-loop.js +34 -5
- package/dist/drift/drift-eval-loop.js.map +1 -1
- package/dist/drift/drift-evaluator.d.ts.map +1 -1
- package/dist/drift/drift-evaluator.js +8 -3
- package/dist/drift/drift-evaluator.js.map +1 -1
- package/dist/focus/awaiting-slot.d.ts +34 -0
- package/dist/focus/awaiting-slot.d.ts.map +1 -0
- package/dist/focus/awaiting-slot.js +26 -0
- package/dist/focus/awaiting-slot.js.map +1 -0
- package/dist/focus/focus-lifecycle.js +2 -2
- package/dist/focus/focus-lifecycle.js.map +1 -1
- package/dist/focus/focus-phase.d.ts.map +1 -1
- package/dist/focus/focus-phase.js +3 -1
- package/dist/focus/focus-phase.js.map +1 -1
- package/dist/focus/focus-spawn-decision.d.ts +62 -0
- package/dist/focus/focus-spawn-decision.d.ts.map +1 -0
- package/dist/focus/focus-spawn-decision.js +41 -0
- package/dist/focus/focus-spawn-decision.js.map +1 -0
- package/dist/focus/focus-team-state.d.ts.map +1 -1
- package/dist/focus/focus-team-state.js +1 -13
- package/dist/focus/focus-team-state.js.map +1 -1
- package/dist/focus/listener-spawn.d.ts +16 -55
- package/dist/focus/listener-spawn.d.ts.map +1 -1
- package/dist/focus/listener-spawn.js +102 -64
- 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 +4 -1
- package/dist/focus/listener-state.js.map +1 -1
- package/dist/focus/listener.d.ts +41 -2
- package/dist/focus/listener.d.ts.map +1 -1
- package/dist/focus/listener.js +135 -83
- package/dist/focus/listener.js.map +1 -1
- package/dist/focus/pending-spawn-pass-deps.d.ts +69 -0
- package/dist/focus/pending-spawn-pass-deps.d.ts.map +1 -0
- package/dist/focus/pending-spawn-pass-deps.js +34 -0
- package/dist/focus/pending-spawn-pass-deps.js.map +1 -0
- package/dist/focus/pending-spawn-review-next-step.d.ts +83 -0
- package/dist/focus/pending-spawn-review-next-step.d.ts.map +1 -0
- package/dist/focus/pending-spawn-review-next-step.js +325 -0
- package/dist/focus/pending-spawn-review-next-step.js.map +1 -0
- package/dist/focus/review-cycle-cap-hold.d.ts +132 -0
- package/dist/focus/review-cycle-cap-hold.d.ts.map +1 -0
- package/dist/focus/review-cycle-cap-hold.js +178 -0
- package/dist/focus/review-cycle-cap-hold.js.map +1 -0
- package/dist/focus/team-actionable-work.js +2 -2
- package/dist/focus/verify-open-issues.d.ts +22 -0
- package/dist/focus/verify-open-issues.d.ts.map +1 -1
- package/dist/focus/verify-open-issues.js +118 -57
- package/dist/focus/verify-open-issues.js.map +1 -1
- package/dist/focus/verify-routing-passes.d.ts +32 -0
- package/dist/focus/verify-routing-passes.d.ts.map +1 -0
- package/dist/focus/verify-routing-passes.js +18 -0
- package/dist/focus/verify-routing-passes.js.map +1 -0
- package/dist/git/index.d.ts.map +1 -1
- package/dist/git/index.js +9 -5
- package/dist/git/index.js.map +1 -1
- package/dist/merge/focus-merge.d.ts +16 -2
- package/dist/merge/focus-merge.d.ts.map +1 -1
- package/dist/merge/focus-merge.js +53 -30
- package/dist/merge/focus-merge.js.map +1 -1
- package/dist/merge/merge-back-loop.d.ts +5 -0
- package/dist/merge/merge-back-loop.d.ts.map +1 -1
- package/dist/merge/merge-back-loop.js +17 -8
- package/dist/merge/merge-back-loop.js.map +1 -1
- package/dist/merge/merge-gate-coverage.d.ts +94 -0
- package/dist/merge/merge-gate-coverage.d.ts.map +1 -0
- package/dist/merge/merge-gate-coverage.js +217 -0
- package/dist/merge/merge-gate-coverage.js.map +1 -0
- package/dist/prompt/focus-prompt-builder.d.ts.map +1 -1
- package/dist/prompt/focus-prompt-builder.js +6 -0
- package/dist/prompt/focus-prompt-builder.js.map +1 -1
- package/dist/prompt/prompt-listing.d.ts.map +1 -1
- package/dist/prompt/prompt-listing.js +8 -0
- package/dist/prompt/prompt-listing.js.map +1 -1
- package/dist/prompt/team-prompt-base.d.ts.map +1 -1
- package/dist/prompt/team-prompt-base.js +5 -1
- package/dist/prompt/team-prompt-base.js.map +1 -1
- package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
- package/dist/prompt-sections/execution-sections.js +14 -39
- package/dist/prompt-sections/execution-sections.js.map +1 -1
- package/dist/prompt-sections/gate-ownership.d.ts +36 -0
- package/dist/prompt-sections/gate-ownership.d.ts.map +1 -0
- package/dist/prompt-sections/gate-ownership.js +68 -0
- package/dist/prompt-sections/gate-ownership.js.map +1 -0
- package/dist/prompt-sections/gate-verdict-section.d.ts +58 -0
- package/dist/prompt-sections/gate-verdict-section.d.ts.map +1 -0
- package/dist/prompt-sections/gate-verdict-section.js +88 -0
- package/dist/prompt-sections/gate-verdict-section.js.map +1 -0
- package/dist/prompt-sections/persona-sections.d.ts +10 -0
- package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
- package/dist/prompt-sections/persona-sections.js +35 -11
- package/dist/prompt-sections/persona-sections.js.map +1 -1
- package/dist/prompt-sections/shared.js +1 -1
- package/dist/prompt-sections/shared.js.map +1 -1
- package/dist/queries/agent-resolvable-promotion.d.ts +6 -3
- package/dist/queries/agent-resolvable-promotion.d.ts.map +1 -1
- package/dist/queries/agent-resolvable-promotion.js +20 -9
- package/dist/queries/agent-resolvable-promotion.js.map +1 -1
- package/dist/queries/deliveries.d.ts +46 -4
- package/dist/queries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries.js +69 -16
- package/dist/queries/deliveries.js.map +1 -1
- package/dist/queries/delivery-gate-state.d.ts +151 -1
- package/dist/queries/delivery-gate-state.d.ts.map +1 -1
- package/dist/queries/delivery-gate-state.js +95 -14
- package/dist/queries/delivery-gate-state.js.map +1 -1
- package/dist/queries/delivery-write-discipline.d.ts +65 -0
- package/dist/queries/delivery-write-discipline.d.ts.map +1 -0
- package/dist/queries/delivery-write-discipline.js +101 -0
- package/dist/queries/delivery-write-discipline.js.map +1 -0
- package/dist/queries/escalation-consumption.d.ts +11 -0
- package/dist/queries/escalation-consumption.d.ts.map +1 -1
- package/dist/queries/escalation-consumption.js +22 -0
- package/dist/queries/escalation-consumption.js.map +1 -1
- package/dist/queries/escalation-spool.d.ts +75 -0
- package/dist/queries/escalation-spool.d.ts.map +1 -0
- package/dist/queries/escalation-spool.js +232 -0
- package/dist/queries/escalation-spool.js.map +1 -0
- package/dist/queries/escalation-suppression.d.ts.map +1 -1
- package/dist/queries/escalation-suppression.js +2 -0
- package/dist/queries/escalation-suppression.js.map +1 -1
- package/dist/queries/escalations.js +1 -1
- package/dist/queries/filing-observation.d.ts.map +1 -1
- package/dist/queries/filing-observation.js +2 -0
- package/dist/queries/filing-observation.js.map +1 -1
- package/dist/queries/focus-discovery.d.ts +4 -4
- package/dist/queries/focus-discovery.d.ts.map +1 -1
- package/dist/queries/focus-discovery.js +1 -0
- package/dist/queries/focus-discovery.js.map +1 -1
- package/dist/queries/focus-review-approval.d.ts +84 -0
- package/dist/queries/focus-review-approval.d.ts.map +1 -0
- package/dist/queries/focus-review-approval.js +158 -0
- package/dist/queries/focus-review-approval.js.map +1 -0
- package/dist/queries/focuses.d.ts +6 -5
- package/dist/queries/focuses.d.ts.map +1 -1
- package/dist/queries/focuses.js +9 -5
- package/dist/queries/focuses.js.map +1 -1
- package/dist/queries/incident-correlation.d.ts +5 -4
- package/dist/queries/incident-correlation.d.ts.map +1 -1
- package/dist/queries/incident-correlation.js +11 -5
- package/dist/queries/incident-correlation.js.map +1 -1
- package/dist/queries/issues.d.ts.map +1 -1
- package/dist/queries/issues.js +2 -1
- package/dist/queries/issues.js.map +1 -1
- package/dist/queries/loop-refusal-observation.d.ts +64 -0
- package/dist/queries/loop-refusal-observation.d.ts.map +1 -0
- package/dist/queries/loop-refusal-observation.js +137 -0
- package/dist/queries/loop-refusal-observation.js.map +1 -0
- package/dist/queries/schemas.d.ts +9 -0
- package/dist/queries/schemas.d.ts.map +1 -1
- package/dist/queries/schemas.js +11 -3
- package/dist/queries/schemas.js.map +1 -1
- package/dist/queries/shared.js +1 -1
- package/dist/queries/verification.d.ts.map +1 -1
- package/dist/queries/verification.js +1 -15
- package/dist/queries/verification.js.map +1 -1
- package/dist/queries/wire-contract.generated.d.ts +3 -0
- package/dist/queries/wire-contract.generated.d.ts.map +1 -1
- package/dist/queries/wire-contract.generated.js +3 -0
- package/dist/queries/wire-contract.generated.js.map +1 -1
- package/dist/resolvers/assembly-engine.d.ts.map +1 -1
- package/dist/resolvers/assembly-engine.js +3 -1
- package/dist/resolvers/assembly-engine.js.map +1 -1
- package/dist/resolvers/git-diff-against-base.d.ts +5 -2
- package/dist/resolvers/git-diff-against-base.d.ts.map +1 -1
- package/dist/resolvers/git-diff-against-base.js +121 -39
- package/dist/resolvers/git-diff-against-base.js.map +1 -1
- package/dist/resolvers/shared/git-diff.d.ts +2 -0
- package/dist/resolvers/shared/git-diff.d.ts.map +1 -1
- package/dist/resolvers/shared/git-diff.js +5 -1
- package/dist/resolvers/shared/git-diff.js.map +1 -1
- package/dist/resolvers/shared/review-window-commits.d.ts +96 -0
- package/dist/resolvers/shared/review-window-commits.d.ts.map +1 -0
- package/dist/resolvers/shared/review-window-commits.js +262 -0
- package/dist/resolvers/shared/review-window-commits.js.map +1 -0
- package/dist/session/session-lineage.d.ts.map +1 -1
- package/dist/session/session-lineage.js +4 -1
- package/dist/session/session-lineage.js.map +1 -1
- package/dist/shell/fail-stop.d.ts +18 -0
- package/dist/shell/fail-stop.d.ts.map +1 -0
- package/dist/shell/fail-stop.js +53 -0
- package/dist/shell/fail-stop.js.map +1 -0
- package/dist/shell/graceful-shutdown.d.ts +48 -0
- package/dist/shell/graceful-shutdown.d.ts.map +1 -0
- package/dist/shell/graceful-shutdown.js +152 -0
- package/dist/shell/graceful-shutdown.js.map +1 -0
- package/dist/shell/heartbeat.d.ts.map +1 -1
- package/dist/shell/heartbeat.js +5 -4
- package/dist/shell/heartbeat.js.map +1 -1
- package/dist/shell/log.d.ts.map +1 -1
- package/dist/shell/log.js +4 -1
- package/dist/shell/log.js.map +1 -1
- package/dist/shell/stop-request.d.ts.map +1 -1
- package/dist/shell/stop-request.js +2 -1
- package/dist/shell/stop-request.js.map +1 -1
- package/dist/shell/unified-shell.d.ts.map +1 -1
- package/dist/shell/unified-shell.js +41 -114
- package/dist/shell/unified-shell.js.map +1 -1
- package/dist/spawn/lifecycle.d.ts +12 -0
- package/dist/spawn/lifecycle.d.ts.map +1 -1
- package/dist/spawn/lifecycle.js +25 -21
- package/dist/spawn/lifecycle.js.map +1 -1
- package/dist/spawn/prompt-assembly.d.ts +19 -1
- package/dist/spawn/prompt-assembly.d.ts.map +1 -1
- package/dist/spawn/prompt-assembly.js +70 -21
- package/dist/spawn/prompt-assembly.js.map +1 -1
- package/dist/spawn/review-hold-park.d.ts.map +1 -1
- package/dist/spawn/review-hold-park.js +18 -8
- package/dist/spawn/review-hold-park.js.map +1 -1
- package/dist/spawn/spawn-cooldown.d.ts.map +1 -1
- package/dist/spawn/spawn-cooldown.js +4 -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 +2 -1
- package/dist/spawn/spawn-decision.js.map +1 -1
- package/dist/spawn/worktree-session.d.ts +6 -0
- package/dist/spawn/worktree-session.d.ts.map +1 -1
- package/dist/spawn/worktree-session.js +15 -2
- package/dist/spawn/worktree-session.js.map +1 -1
- package/dist/testing/fixtures/index.d.ts +10 -1
- package/dist/testing/fixtures/index.d.ts.map +1 -1
- package/dist/testing/fixtures/index.js +59 -1
- package/dist/testing/fixtures/index.js.map +1 -1
- package/dist/testing/fixtures/pending-spawn-world.d.ts +34 -0
- package/dist/testing/fixtures/pending-spawn-world.d.ts.map +1 -0
- package/dist/testing/fixtures/pending-spawn-world.js +92 -0
- package/dist/testing/fixtures/pending-spawn-world.js.map +1 -0
- package/dist/types/index.js +1 -1
- package/dist/verify/commit-gate-configured.d.ts +86 -0
- package/dist/verify/commit-gate-configured.d.ts.map +1 -0
- package/dist/verify/commit-gate-configured.js +234 -0
- package/dist/verify/commit-gate-configured.js.map +1 -0
- package/dist/verify/commit-verdict-record.d.ts +98 -0
- package/dist/verify/commit-verdict-record.d.ts.map +1 -0
- package/dist/verify/commit-verdict-record.js +297 -0
- package/dist/verify/commit-verdict-record.js.map +1 -0
- package/dist/verify/explicit-gate-outcome.d.ts +161 -0
- package/dist/verify/explicit-gate-outcome.d.ts.map +1 -0
- package/dist/verify/explicit-gate-outcome.js +215 -0
- package/dist/verify/explicit-gate-outcome.js.map +1 -0
- package/dist/verify/explicit-rearm.d.ts +27 -0
- package/dist/verify/explicit-rearm.d.ts.map +1 -0
- package/dist/verify/explicit-rearm.js +161 -0
- package/dist/verify/explicit-rearm.js.map +1 -0
- package/dist/verify/explicit-run-ledger.d.ts +26 -0
- package/dist/verify/explicit-run-ledger.d.ts.map +1 -0
- package/dist/verify/explicit-run-ledger.js +93 -0
- package/dist/verify/explicit-run-ledger.js.map +1 -0
- package/dist/verify/failure-signature.d.ts.map +1 -1
- package/dist/verify/failure-signature.js +5 -1
- package/dist/verify/failure-signature.js.map +1 -1
- package/dist/verify/gate-run-registry.d.ts +105 -0
- package/dist/verify/gate-run-registry.d.ts.map +1 -0
- package/dist/verify/gate-run-registry.js +111 -0
- package/dist/verify/gate-run-registry.js.map +1 -0
- package/dist/verify/gate-verdict-source.d.ts +68 -0
- package/dist/verify/gate-verdict-source.d.ts.map +1 -0
- package/dist/verify/gate-verdict-source.js +143 -0
- package/dist/verify/gate-verdict-source.js.map +1 -0
- package/dist/verify/judged-commit-gate.d.ts +11 -0
- package/dist/verify/judged-commit-gate.d.ts.map +1 -0
- package/dist/verify/judged-commit-gate.js +48 -0
- package/dist/verify/judged-commit-gate.js.map +1 -0
- package/dist/verify/rework-judgment.d.ts +58 -0
- package/dist/verify/rework-judgment.d.ts.map +1 -0
- package/dist/verify/rework-judgment.js +54 -0
- package/dist/verify/rework-judgment.js.map +1 -0
- package/dist/verify/verification-attribution.d.ts +105 -0
- package/dist/verify/verification-attribution.d.ts.map +1 -0
- package/dist/verify/verification-attribution.js +322 -0
- package/dist/verify/verification-attribution.js.map +1 -0
- package/dist/verify/verification-baseline-run.d.ts +123 -0
- package/dist/verify/verification-baseline-run.d.ts.map +1 -0
- package/dist/verify/verification-baseline-run.js +386 -0
- package/dist/verify/verification-baseline-run.js.map +1 -0
- package/dist/verify/verification-baseline.d.ts +79 -33
- package/dist/verify/verification-baseline.d.ts.map +1 -1
- package/dist/verify/verification-baseline.js +99 -106
- package/dist/verify/verification-baseline.js.map +1 -1
- package/dist/verify/verification-checkout.d.ts +13 -0
- package/dist/verify/verification-checkout.d.ts.map +1 -1
- package/dist/verify/verification-checkout.js +39 -2
- package/dist/verify/verification-checkout.js.map +1 -1
- package/dist/verify/verification-commit-sharing.d.ts +84 -0
- package/dist/verify/verification-commit-sharing.d.ts.map +1 -0
- package/dist/verify/verification-commit-sharing.js +416 -0
- package/dist/verify/verification-commit-sharing.js.map +1 -0
- package/dist/verify/verification-config.d.ts.map +1 -1
- package/dist/verify/verification-config.js +12 -2
- package/dist/verify/verification-config.js.map +1 -1
- package/dist/verify/verification-default-on.d.ts +27 -11
- package/dist/verify/verification-default-on.d.ts.map +1 -1
- package/dist/verify/verification-default-on.js +159 -29
- 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 +49 -42
- package/dist/verify/verification-deps-default.js.map +1 -1
- package/dist/verify/verification-deps.d.ts +69 -4
- package/dist/verify/verification-deps.d.ts.map +1 -1
- package/dist/verify/verification-deterministic.d.ts +15 -2
- package/dist/verify/verification-deterministic.d.ts.map +1 -1
- package/dist/verify/verification-deterministic.js +12 -3
- package/dist/verify/verification-deterministic.js.map +1 -1
- package/dist/verify/verification-diagnostics.d.ts +16 -0
- package/dist/verify/verification-diagnostics.d.ts.map +1 -0
- package/dist/verify/verification-diagnostics.js +219 -0
- package/dist/verify/verification-diagnostics.js.map +1 -0
- package/dist/verify/verification-engine.d.ts +12 -8
- package/dist/verify/verification-engine.d.ts.map +1 -1
- package/dist/verify/verification-engine.js +110 -92
- package/dist/verify/verification-engine.js.map +1 -1
- package/dist/verify/verification-evidence-unavailable-feedback.d.ts +2 -1
- package/dist/verify/verification-evidence-unavailable-feedback.d.ts.map +1 -1
- package/dist/verify/verification-evidence-unavailable-feedback.js +14 -4
- package/dist/verify/verification-evidence-unavailable-feedback.js.map +1 -1
- package/dist/verify/verification-failure-parser.d.ts +37 -3
- package/dist/verify/verification-failure-parser.d.ts.map +1 -1
- package/dist/verify/verification-failure-parser.js +66 -3
- package/dist/verify/verification-failure-parser.js.map +1 -1
- package/dist/verify/verification-feedback.d.ts +21 -34
- package/dist/verify/verification-feedback.d.ts.map +1 -1
- package/dist/verify/verification-feedback.js +37 -88
- package/dist/verify/verification-feedback.js.map +1 -1
- package/dist/verify/verification-gate-stages.d.ts +110 -0
- package/dist/verify/verification-gate-stages.d.ts.map +1 -0
- package/dist/verify/verification-gate-stages.js +179 -0
- package/dist/verify/verification-gate-stages.js.map +1 -0
- package/dist/verify/verification-history-reset.d.ts +61 -0
- package/dist/verify/verification-history-reset.d.ts.map +1 -0
- package/dist/verify/verification-history-reset.js +90 -0
- package/dist/verify/verification-history-reset.js.map +1 -0
- package/dist/verify/verification-manifest.d.ts.map +1 -1
- package/dist/verify/verification-manifest.js +2 -1
- package/dist/verify/verification-manifest.js.map +1 -1
- package/dist/verify/verification-rework-messages.d.ts +19 -0
- package/dist/verify/verification-rework-messages.d.ts.map +1 -0
- package/dist/verify/verification-rework-messages.js +52 -0
- package/dist/verify/verification-rework-messages.js.map +1 -0
- package/dist/worktree/install-inputs.d.ts +89 -0
- package/dist/worktree/install-inputs.d.ts.map +1 -0
- package/dist/worktree/install-inputs.js +625 -0
- package/dist/worktree/install-inputs.js.map +1 -0
- package/dist/worktree/install-script-effects.d.ts +30 -0
- package/dist/worktree/install-script-effects.d.ts.map +1 -0
- package/dist/worktree/install-script-effects.js +524 -0
- package/dist/worktree/install-script-effects.js.map +1 -0
- package/dist/worktree/install-script-tokens.d.ts +57 -0
- package/dist/worktree/install-script-tokens.d.ts.map +1 -0
- package/dist/worktree/install-script-tokens.js +299 -0
- package/dist/worktree/install-script-tokens.js.map +1 -0
- package/dist/worktree/provision.d.ts +27 -4
- package/dist/worktree/provision.d.ts.map +1 -1
- package/dist/worktree/provision.js +46 -7
- package/dist/worktree/provision.js.map +1 -1
- package/dist/worktree/safety.d.ts +11 -0
- package/dist/worktree/safety.d.ts.map +1 -1
- package/dist/worktree/safety.js +20 -3
- package/dist/worktree/safety.js.map +1 -1
- package/dist/worktree/verify-interlock.d.ts.map +1 -1
- package/dist/worktree/verify-interlock.js +3 -1
- package/dist/worktree/verify-interlock.js.map +1 -1
- package/dist/worktree/worktree-package-provisioning.d.ts +75 -0
- package/dist/worktree/worktree-package-provisioning.d.ts.map +1 -0
- package/dist/worktree/worktree-package-provisioning.js +362 -0
- package/dist/worktree/worktree-package-provisioning.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
2
|
// Pinned by: packages/daemon/src/completion/dead-process-reaper.test.ts,
|
|
3
|
+
// packages/daemon/src/completion/mid-flight-merge-gate.test.ts,
|
|
4
|
+
// packages/daemon/src/completion/session-hold.test.ts,
|
|
3
5
|
// packages/daemon/src/completion/stuck-shutdown-watchdog.test.ts
|
|
4
6
|
// PINNED-BY-END
|
|
5
7
|
import { getReadyFocuses } from '../queries/focus-discovery.js';
|
|
@@ -11,6 +13,7 @@ import { getActiveTeams, markShuttingDown, getShuttingDownAt, clearShuttingDown,
|
|
|
11
13
|
import { resolveIdleTeamStallHours } from '../verify/stall-detector-config.js';
|
|
12
14
|
import { describeTeamClockLiveness, formatClockNote, describeIdleWithWorkRemaining } from './team-liveness-log.js';
|
|
13
15
|
import { mergeFocusBranch } from '../merge/focus-merge.js';
|
|
16
|
+
import { readMergeGateHold } from '../merge/merge-gate-coverage.js';
|
|
14
17
|
import { escalateMergeConflict } from '../merge/merge-conflict-escalation.js';
|
|
15
18
|
import { runCiMergeToMain } from './merge-phase.js';
|
|
16
19
|
import { isStatusAgentActionable, isStatusBlocking, isStatusExcludedFromCascade } from '../workflow/stage-classifier.js';
|
|
@@ -21,6 +24,18 @@ import { isProcessAlive } from '../spawn/liveness.js';
|
|
|
21
24
|
import { createLogger } from '../shell/log.js';
|
|
22
25
|
const log = createLogger({ module: 'focus-executor' });
|
|
23
26
|
// ── Team lifecycle ──────────────────────────────────────────────────────
|
|
27
|
+
/**
|
|
28
|
+
* Cancel any pending handoff-floor self re-drive so no stale timer fires
|
|
29
|
+
* against a torn-down team. Inlined here (not via event.ts's
|
|
30
|
+
* cancelPendingReDrive) to avoid a runtime import cycle event.ts <-> team-lifecycle.ts.
|
|
31
|
+
*/
|
|
32
|
+
function cancelReDrive(team) {
|
|
33
|
+
if (!team.reDriveCancel)
|
|
34
|
+
return;
|
|
35
|
+
const cancel = team.reDriveCancel;
|
|
36
|
+
team.reDriveCancel = undefined;
|
|
37
|
+
cancel();
|
|
38
|
+
}
|
|
24
39
|
/**
|
|
25
40
|
* Terminate a focus team.
|
|
26
41
|
*
|
|
@@ -43,14 +58,7 @@ export function terminateTeam(focusId, shutdownReason) {
|
|
|
43
58
|
if (shutdownReason) {
|
|
44
59
|
team.shutdownReason = shutdownReason;
|
|
45
60
|
}
|
|
46
|
-
|
|
47
|
-
// against a torn-down team. Inlined (not via event.ts's cancelPendingReDrive)
|
|
48
|
-
// to avoid a runtime import cycle event.ts <-> team-lifecycle.ts.
|
|
49
|
-
if (team.reDriveCancel) {
|
|
50
|
-
const cancel = team.reDriveCancel;
|
|
51
|
-
team.reDriveCancel = undefined;
|
|
52
|
-
cancel();
|
|
53
|
-
}
|
|
61
|
+
cancelReDrive(team);
|
|
54
62
|
// Warn if terminating while conflict resolution is in progress
|
|
55
63
|
if (team.resolvingMergeConflict) {
|
|
56
64
|
log.warn(`Terminating team "${team.focusName}" while merge conflict resolution is in progress`);
|
|
@@ -164,6 +172,53 @@ export function terminateAllTeams() {
|
|
|
164
172
|
function forceReleaseSlot(focusId, governor) {
|
|
165
173
|
return releaseFocusSlot(focusId, governor);
|
|
166
174
|
}
|
|
175
|
+
const defaultKill = (pid, signal) => { process.kill(pid, signal); };
|
|
176
|
+
/**
|
|
177
|
+
* Reclaim ONE team's registration -- the body every reaper shares: best-effort
|
|
178
|
+
* SIGKILL of a lingering lead pid, force-release the governor slot (once, via
|
|
179
|
+
* the consumed slot token), mark the team terminated, drop it from activeTeams,
|
|
180
|
+
* and clear its per-focus side-state so a fresh team can spawn.
|
|
181
|
+
*/
|
|
182
|
+
function reclaimTeamRegistration(focusId, team, governor, kill, killFailedNote) {
|
|
183
|
+
if (team.leadPid) {
|
|
184
|
+
try {
|
|
185
|
+
kill(team.leadPid, 'SIGKILL');
|
|
186
|
+
}
|
|
187
|
+
catch (e) {
|
|
188
|
+
log.debug(killFailedNote, e.message);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
forceReleaseSlot(focusId, governor);
|
|
192
|
+
team.phase = 'terminated';
|
|
193
|
+
getActiveTeams().delete(focusId);
|
|
194
|
+
clearShuttingDown(focusId);
|
|
195
|
+
clearTeamActivity(focusId);
|
|
196
|
+
clearFocusClock(focusId);
|
|
197
|
+
clearStdinTurnTracking(focusId);
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Force-reclaim ONE focus's team registration after the normal teardown could
|
|
201
|
+
* not signal its lead (terminateTeam returned false: no lead pid, or the signal
|
|
202
|
+
* threw). Without it such a registration pins the focus: the pending-spawn pass
|
|
203
|
+
* skips any focus with an active team, and neither reaper covers an `executing`
|
|
204
|
+
* team that has no pid. Performs the same reclamation the dead-process and
|
|
205
|
+
* stuck-shutdown reapers do (reclaimTeamRegistration), after stamping the
|
|
206
|
+
* controlled-stop reason and cancelling a pending re-drive -- so a late close
|
|
207
|
+
* event classifies as a stop, and the slot release cannot double-decrement.
|
|
208
|
+
* Returns false when no team is registered for the focus.
|
|
209
|
+
*/
|
|
210
|
+
export function forceReapTeam(focusId, shutdownReason, deps) {
|
|
211
|
+
const team = getActiveTeams().get(focusId);
|
|
212
|
+
if (!team)
|
|
213
|
+
return false;
|
|
214
|
+
if (shutdownReason)
|
|
215
|
+
team.shutdownReason = shutdownReason;
|
|
216
|
+
cancelReDrive(team);
|
|
217
|
+
log.warn(`[force-reap] Reclaiming team "${team.focusName}" (pid ${team.leadPid ?? 'none'}, phase ${team.phase}) -- ` +
|
|
218
|
+
'its teardown could not signal the lead; force-releasing its session slot and dropping the registration');
|
|
219
|
+
reclaimTeamRegistration(focusId, team, deps.governor, deps.kill ?? defaultKill, '[force-reap] SIGKILL failed (process may already be gone):');
|
|
220
|
+
return true;
|
|
221
|
+
}
|
|
167
222
|
/**
|
|
168
223
|
* Stuck-team watchdog: reap teams wedged in `shutting_down`.
|
|
169
224
|
*
|
|
@@ -185,7 +240,7 @@ function forceReleaseSlot(focusId, governor) {
|
|
|
185
240
|
export function reapStuckShuttingDownTeams(deps) {
|
|
186
241
|
const { governor, thresholdMs } = deps;
|
|
187
242
|
const now = deps.now ?? Date.now();
|
|
188
|
-
const kill = deps.kill ??
|
|
243
|
+
const kill = deps.kill ?? defaultKill;
|
|
189
244
|
const activeTeams = getActiveTeams();
|
|
190
245
|
const reapedFocusIds = [];
|
|
191
246
|
for (const [focusId, team] of activeTeams) {
|
|
@@ -200,25 +255,9 @@ export function reapStuckShuttingDownTeams(deps) {
|
|
|
200
255
|
log.warn(`[focus-executor] Team "${team.focusName}" stuck in shutting_down for ` +
|
|
201
256
|
`${Math.round(stuckMs / 1000)}s (> ${Math.round(thresholdMs / 1000)}s threshold) ` +
|
|
202
257
|
'-- force-killing and reclaiming its session slot');
|
|
203
|
-
//
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
kill(team.leadPid, 'SIGKILL');
|
|
207
|
-
}
|
|
208
|
-
catch (e) {
|
|
209
|
-
log.debug('[focus-executor] stuck-shutdown SIGKILL failed (process may already be gone):', e.message);
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
// 2. Force-release the governor slot (once).
|
|
213
|
-
forceReleaseSlot(focusId, governor);
|
|
214
|
-
// 3. Mark terminated and drop from the active map so a fresh team can spawn.
|
|
215
|
-
team.phase = 'terminated';
|
|
216
|
-
activeTeams.delete(focusId);
|
|
217
|
-
// 4. Clear shutdown side-state for this focus.
|
|
218
|
-
clearShuttingDown(focusId);
|
|
219
|
-
clearTeamActivity(focusId);
|
|
220
|
-
clearFocusClock(focusId);
|
|
221
|
-
clearStdinTurnTracking(focusId);
|
|
258
|
+
// SIGKILL the wedged lead now, release the slot once, mark terminated, drop
|
|
259
|
+
// it from the active map, and clear its shutdown side-state.
|
|
260
|
+
reclaimTeamRegistration(focusId, team, governor, kill, '[focus-executor] stuck-shutdown SIGKILL failed (process may already be gone):');
|
|
222
261
|
reapedFocusIds.push(focusId);
|
|
223
262
|
}
|
|
224
263
|
return { reaped: reapedFocusIds.length, reapedFocusIds };
|
|
@@ -248,7 +287,7 @@ export function reapDeadProcessTeams(deps) {
|
|
|
248
287
|
const { governor, initStallMs } = deps;
|
|
249
288
|
const now = deps.now ?? Date.now();
|
|
250
289
|
const isAlive = deps.isAlive ?? isProcessAlive;
|
|
251
|
-
const kill = deps.kill ??
|
|
290
|
+
const kill = deps.kill ?? defaultKill;
|
|
252
291
|
const activeTeams = getActiveTeams();
|
|
253
292
|
const reapedFocusIds = [];
|
|
254
293
|
for (const [focusId, team] of activeTeams) {
|
|
@@ -275,22 +314,8 @@ export function reapDeadProcessTeams(deps) {
|
|
|
275
314
|
log.warn(`[dead-process-reaper] Reclaiming team "${team.focusName}" -- ${reclaimReason}; ` +
|
|
276
315
|
'force-releasing its session slot and dropping the registration so a fresh team can spawn');
|
|
277
316
|
// Best-effort SIGKILL for a lingering zombie pid (no-op / throws for a pid
|
|
278
|
-
// already gone, which is the common case here).
|
|
279
|
-
|
|
280
|
-
try {
|
|
281
|
-
kill(team.leadPid, 'SIGKILL');
|
|
282
|
-
}
|
|
283
|
-
catch (e) {
|
|
284
|
-
log.debug('[dead-process-reaper] SIGKILL failed (process already gone):', e.message);
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
forceReleaseSlot(focusId, governor);
|
|
288
|
-
team.phase = 'terminated';
|
|
289
|
-
activeTeams.delete(focusId);
|
|
290
|
-
clearShuttingDown(focusId);
|
|
291
|
-
clearTeamActivity(focusId);
|
|
292
|
-
clearFocusClock(focusId);
|
|
293
|
-
clearStdinTurnTracking(focusId);
|
|
317
|
+
// already gone, which is the common case here), then reclaim.
|
|
318
|
+
reclaimTeamRegistration(focusId, team, governor, kill, '[dead-process-reaper] SIGKILL failed (process already gone):');
|
|
294
319
|
reapedFocusIds.push(focusId);
|
|
295
320
|
}
|
|
296
321
|
return { reaped: reapedFocusIds.length, reapedFocusIds };
|
|
@@ -376,20 +401,111 @@ function logTeamProgressOrPark(team, teamWorkCount) {
|
|
|
376
401
|
`team continues (${clockNote})`);
|
|
377
402
|
}
|
|
378
403
|
}
|
|
404
|
+
export function defaultMidFlightMergeDeps() {
|
|
405
|
+
return {
|
|
406
|
+
getFocusDeliveries,
|
|
407
|
+
mergeFocusBranch,
|
|
408
|
+
readMergeGateHold: (target) => readMergeGateHold(target),
|
|
409
|
+
};
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* The hold reason last logged at info per team. The hold is re-read every 30s
|
|
413
|
+
* poll tick; an unchanged reason logs at debug so it does not spam the log, and
|
|
414
|
+
* the entry dies with the team state.
|
|
415
|
+
*/
|
|
416
|
+
const loggedMidFlightHolds = new WeakMap();
|
|
417
|
+
function logMidFlightHold(team, hold, integrationBranch) {
|
|
418
|
+
const line = `[merge-gate] Not merging ${team.branchName} into ${integrationBranch} mid-flight for "${team.focusName}": ` +
|
|
419
|
+
`${hold}. The commits stay on the focus branch until a review or verify gate covers them.`;
|
|
420
|
+
if (loggedMidFlightHolds.get(team) === hold) {
|
|
421
|
+
log.debug(line);
|
|
422
|
+
return;
|
|
423
|
+
}
|
|
424
|
+
loggedMidFlightHolds.set(team, hold);
|
|
425
|
+
log.info(line, { focusId: team.focusId });
|
|
426
|
+
}
|
|
427
|
+
/**
|
|
428
|
+
* The MID-FLIGHT merge of a team's newly verify/done deliveries. One merge
|
|
429
|
+
* covers them all (same branch); the newly-completed IDs are passed so git
|
|
430
|
+
* state is recorded only for these -- never for queued/planning deliveries on
|
|
431
|
+
* the same branch.
|
|
432
|
+
*
|
|
433
|
+
* Held unless every commit the merge would add has passed the focus's review or
|
|
434
|
+
* verify gate (merge/merge-gate-coverage.ts) -- a WIP capture a previously
|
|
435
|
+
* stopped team left on the branch, or any other unreviewed commit, would
|
|
436
|
+
* otherwise ride this delivery's merge to integration. A hold merges nothing,
|
|
437
|
+
* marks nothing merged and files nothing; the next tick asks again.
|
|
438
|
+
*/
|
|
439
|
+
async function mergeCompletedMidFlight(teamConfig, team, newlyCompleted, deliveries, deps) {
|
|
440
|
+
const { integrationBranch } = teamConfig;
|
|
441
|
+
const hold = await deps.readMergeGateHold({
|
|
442
|
+
organizationId: team.organizationId,
|
|
443
|
+
productId: team.productId,
|
|
444
|
+
focusId: team.focusId,
|
|
445
|
+
branchName: team.branchName,
|
|
446
|
+
integrationBranch,
|
|
447
|
+
repoPath: teamConfig.repoPath,
|
|
448
|
+
});
|
|
449
|
+
if (hold !== null) {
|
|
450
|
+
logMidFlightHold(team, hold, integrationBranch);
|
|
451
|
+
return;
|
|
452
|
+
}
|
|
453
|
+
loggedMidFlightHolds.delete(team);
|
|
454
|
+
const completedNames = newlyCompleted.map(d => d.name).join(', ');
|
|
455
|
+
log.info(`[focus-executor] ${newlyCompleted.length} delivery(ies) completed mid-flight for "${team.focusName}": ${completedNames} -- merging to integration`);
|
|
456
|
+
// The team is still executing and no wip-preserve runs ahead of this merge
|
|
457
|
+
// (an ungated commit already on the branch is held above). A dirty worktree
|
|
458
|
+
// here is a live agent still writing, not a fault, so use the 'defer' policy:
|
|
459
|
+
// the guard skips the merge and files nothing, and the next tick retries once
|
|
460
|
+
// the agent commits (or the exit pipeline's wip-preserve captures the work).
|
|
461
|
+
// The escalate policy is reserved for the exit / merge-back callers.
|
|
462
|
+
const mergeResult = await deps.mergeFocusBranch(teamConfig, team, team.leadSessionId ?? '', team.branchName, newlyCompleted.map(d => d.id), 'defer');
|
|
463
|
+
if (mergeResult.mergeSucceeded) {
|
|
464
|
+
// Track merged deliveries (git state already reported by mergeFocusBranch)
|
|
465
|
+
for (const d of newlyCompleted) {
|
|
466
|
+
team.mergedDeliveryIds.add(d.id);
|
|
467
|
+
}
|
|
468
|
+
await maybeRunEagerCiMerge(teamConfig, team, deliveries);
|
|
469
|
+
}
|
|
470
|
+
else if (mergeResult.exitReason === 'merge_deferred_dirty_worktree') {
|
|
471
|
+
// Live agent still writing -- not a fault. The guard filed nothing; don't
|
|
472
|
+
// mark merged; the next poll retries.
|
|
473
|
+
log.debug(`[focus-executor] Deferred mid-flight merge for "${team.focusName}": ` +
|
|
474
|
+
`worktree dirty while the team is still executing -- will retry next tick.`);
|
|
475
|
+
}
|
|
476
|
+
else {
|
|
477
|
+
log.warn(`[focus-executor] Mid-flight merge failed for "${team.focusName}": ${mergeResult.exitReason}`);
|
|
478
|
+
// Escalate merge conflict for each unmerged delivery
|
|
479
|
+
for (const d of newlyCompleted) {
|
|
480
|
+
escalateMergeConflict({
|
|
481
|
+
organizationId: team.organizationId,
|
|
482
|
+
sessionId: team.leadSessionId ?? '',
|
|
483
|
+
deliveryId: d.id,
|
|
484
|
+
deliveryName: d.name,
|
|
485
|
+
focusId: team.focusId,
|
|
486
|
+
branchName: team.branchName,
|
|
487
|
+
integrationBranch,
|
|
488
|
+
mergeError: mergeResult.exitReason,
|
|
489
|
+
}).catch(err => log.warn(`escalateMergeConflict failed for ${d.id}:`, err.message));
|
|
490
|
+
}
|
|
491
|
+
// Don't mark as merged -- will retry next poll. Team continues working.
|
|
492
|
+
}
|
|
493
|
+
}
|
|
379
494
|
/**
|
|
380
495
|
* Check active teams for newly completed deliveries and merge
|
|
381
496
|
* the focus branch to integration incrementally.
|
|
382
497
|
*
|
|
383
498
|
* Called from the poll loop. For each active team, queries delivery
|
|
384
499
|
* statuses and triggers a merge when any delivery reaches verify/done
|
|
385
|
-
* that hasn't already been merged mid-flight
|
|
500
|
+
* that hasn't already been merged mid-flight -- unless a commit on the branch
|
|
501
|
+
* has not passed the focus's review or verify gate (mergeCompletedMidFlight).
|
|
386
502
|
*
|
|
387
503
|
* After processing merges, checks if ALL active deliveries are terminal
|
|
388
504
|
* and merged. If so, terminates the team proactively since no more work
|
|
389
505
|
* remains. The focus stays active in the DB -- if new deliveries
|
|
390
506
|
* arrive later, the next poll cycle spawns a fresh team.
|
|
391
507
|
*/
|
|
392
|
-
export async function checkAndMergeCompletedDeliveries(config) {
|
|
508
|
+
export async function checkAndMergeCompletedDeliveries(config, deps = defaultMidFlightMergeDeps()) {
|
|
393
509
|
const activeTeams = getActiveTeams();
|
|
394
510
|
if (activeTeams.size === 0)
|
|
395
511
|
return;
|
|
@@ -406,57 +522,12 @@ export async function checkAndMergeCompletedDeliveries(config) {
|
|
|
406
522
|
const teamProduct = findProduct(config, team.productId);
|
|
407
523
|
const teamConfig = teamProduct ? configForProduct(config, teamProduct) : config;
|
|
408
524
|
try {
|
|
409
|
-
const deliveries = await getFocusDeliveries(focusId);
|
|
525
|
+
const deliveries = await deps.getFocusDeliveries(focusId);
|
|
410
526
|
// Find deliveries in verify/done that we haven't merged for yet
|
|
411
527
|
const newlyCompleted = deliveries.filter(d => !isStatusAgentActionable(d.executionStatus ?? '') && !isStatusBlocking(d.executionStatus ?? '')
|
|
412
528
|
&& !team.mergedDeliveryIds.has(d.id));
|
|
413
529
|
if (newlyCompleted.length > 0) {
|
|
414
|
-
|
|
415
|
-
log.info(`[focus-executor] ${newlyCompleted.length} delivery(ies) completed mid-flight for "${team.focusName}": ${completedNames} -- merging to integration`);
|
|
416
|
-
// One merge covers all completed deliveries (same branch).
|
|
417
|
-
// Pass the newly-completed IDs so git state is recorded only for
|
|
418
|
-
// these — never for queued/planning deliveries on the same branch.
|
|
419
|
-
//
|
|
420
|
-
// This is the MID-FLIGHT merge: the team is still executing
|
|
421
|
-
// (phase === 'executing', guaranteed above) and there is no WIP-capture
|
|
422
|
-
// ahead of it. A dirty worktree here is a live agent still writing, not
|
|
423
|
-
// a fault, so use the 'defer' policy: the guard skips the merge and
|
|
424
|
-
// files nothing, and the next tick retries once the agent commits (or
|
|
425
|
-
// the exit pipeline's wip-preserve captures the work). The escalate
|
|
426
|
-
// policy is reserved for the exit / merge-back callers.
|
|
427
|
-
const mergeResult = await mergeFocusBranch(teamConfig, team, team.leadSessionId ?? '', team.branchName, newlyCompleted.map(d => d.id), 'defer');
|
|
428
|
-
if (mergeResult.mergeSucceeded) {
|
|
429
|
-
// Track merged deliveries (git state already reported by mergeFocusBranch)
|
|
430
|
-
for (const d of newlyCompleted) {
|
|
431
|
-
team.mergedDeliveryIds.add(d.id);
|
|
432
|
-
}
|
|
433
|
-
await maybeRunEagerCiMerge(teamConfig, team, deliveries);
|
|
434
|
-
}
|
|
435
|
-
else if (mergeResult.exitReason === 'merge_deferred_dirty_worktree') {
|
|
436
|
-
// Live agent still writing -- the normal state of a still-executing
|
|
437
|
-
// team mid-flight, not a fault. The guard filed nothing; defer to a
|
|
438
|
-
// later tick (once the agent commits or the exit pipeline's
|
|
439
|
-
// wip-preserve runs). Don't mark merged; the next poll retries.
|
|
440
|
-
log.debug(`[focus-executor] Deferred mid-flight merge for "${team.focusName}": ` +
|
|
441
|
-
`worktree dirty while the team is still executing -- will retry next tick.`);
|
|
442
|
-
}
|
|
443
|
-
else {
|
|
444
|
-
log.warn(`[focus-executor] Mid-flight merge failed for "${team.focusName}": ${mergeResult.exitReason}`);
|
|
445
|
-
// Escalate merge conflict for each unmerged delivery
|
|
446
|
-
for (const d of newlyCompleted) {
|
|
447
|
-
escalateMergeConflict({
|
|
448
|
-
organizationId: team.organizationId,
|
|
449
|
-
sessionId: team.leadSessionId ?? '',
|
|
450
|
-
deliveryId: d.id,
|
|
451
|
-
deliveryName: d.name,
|
|
452
|
-
focusId: team.focusId,
|
|
453
|
-
branchName: team.branchName,
|
|
454
|
-
integrationBranch: config.integrationBranch,
|
|
455
|
-
mergeError: mergeResult.exitReason,
|
|
456
|
-
}).catch(err => log.warn(`escalateMergeConflict failed for ${d.id}:`, err.message));
|
|
457
|
-
}
|
|
458
|
-
// Don't mark as merged -- will retry next poll. Team continues working.
|
|
459
|
-
}
|
|
530
|
+
await mergeCompletedMidFlight(teamConfig, team, newlyCompleted, deliveries, deps);
|
|
460
531
|
}
|
|
461
532
|
// ── All-done detection ──────────────────────────────────────
|
|
462
533
|
// If any delivery is queued or running, the team still has work.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-lifecycle.js","sourceRoot":"","sources":["../../src/completion/team-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"team-lifecycle.js","sourceRoot":"","sources":["../../src/completion/team-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The published team lifecycle phase for a focus. `executing` is the only
|
|
3
|
-
* phase that means "work outstanding" (a stale clock here
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* phase that means "a team is running with work outstanding" (a stale clock here
|
|
4
|
+
* is a real wedge); `awaiting_slot` means work is outstanding but no team can
|
|
5
|
+
* start until a session slot frees; the other three are legitimate parked
|
|
6
|
+
* states. None but `executing` may read as unresponsive.
|
|
6
7
|
*/
|
|
7
|
-
export type FocusLifecyclePhase = 'executing' | 'idle_complete' | 'directive_pending' | 'cooldown';
|
|
8
|
+
export type FocusLifecyclePhase = 'executing' | 'awaiting_slot' | 'idle_complete' | 'directive_pending' | 'cooldown';
|
|
8
9
|
/** Latch a focus as idle-after-completion (all deliveries terminal, team torn down cleanly). */
|
|
9
10
|
export declare function markFocusIdleComplete(focusId: string): void;
|
|
10
11
|
/** Clear a focus's idle-complete latch (e.g. it took on new work). */
|
|
@@ -14,15 +15,24 @@ export declare function isFocusIdleComplete(focusId: string): boolean;
|
|
|
14
15
|
/** Test-only: clear the idle-complete latch so state never leaks across files. */
|
|
15
16
|
export declare function __resetTeamPhaseForTesting(): void;
|
|
16
17
|
/**
|
|
17
|
-
* Pure phase decision from the
|
|
18
|
-
*
|
|
19
|
-
* then the cooldown backoff window (cooldown),
|
|
20
|
-
* (idle_complete). No signal -> undefined (the
|
|
21
|
-
*
|
|
22
|
-
*
|
|
18
|
+
* Pure phase decision from the in-memory signals, in precedence order: a live
|
|
19
|
+
* team dominates (executing), then a slot-blocked spawn (awaiting_slot), then a
|
|
20
|
+
* queued spawn (directive_pending), then the cooldown backoff window (cooldown),
|
|
21
|
+
* then the clean-completion latch (idle_complete). No signal -> undefined (the
|
|
22
|
+
* focus is not published).
|
|
23
|
+
*
|
|
24
|
+
* awaiting_slot outranks the parked states because it is the reason the focus
|
|
25
|
+
* is not moving: a queued directive or a stale completion latch on a focus the
|
|
26
|
+
* spawn pass left waiting for a slot cannot start until a team exits, so
|
|
27
|
+
* labelling it "awaiting next stage" would hide the cause. The spawn passes
|
|
28
|
+
* never record a focus that is in spawn cooldown, so awaiting_slot and cooldown
|
|
29
|
+
* do not co-occur from a single pass. Precedence among the three parked states
|
|
30
|
+
* is diagnostic only -- the badge collapses them to a single "parked" label.
|
|
31
|
+
* `awaitingSlot` is optional so a caller predating the signal reads it as absent.
|
|
23
32
|
*/
|
|
24
33
|
export declare function resolveTeamPhase(signals: {
|
|
25
34
|
hasActiveTeam: boolean;
|
|
35
|
+
awaitingSlot?: boolean;
|
|
26
36
|
hasPendingDirective: boolean;
|
|
27
37
|
inCooldown: boolean;
|
|
28
38
|
idleComplete: boolean;
|
|
@@ -36,6 +46,8 @@ export declare function resolveTeamPhase(signals: {
|
|
|
36
46
|
export interface TeamPhaseSources {
|
|
37
47
|
getActiveTeamFocusIds(): Iterable<string>;
|
|
38
48
|
hasActiveTeam(focusId: string): boolean;
|
|
49
|
+
getAwaitingSlotFocusIds(): Iterable<string>;
|
|
50
|
+
isAwaitingSlot(focusId: string): boolean;
|
|
39
51
|
getPendingSpawnFocusIds(): string[];
|
|
40
52
|
hasPendingSpawnDirective(focusId: string): boolean;
|
|
41
53
|
getSpawnCooldownFocusIds(): string[];
|
|
@@ -43,11 +55,11 @@ export interface TeamPhaseSources {
|
|
|
43
55
|
}
|
|
44
56
|
/**
|
|
45
57
|
* Recompute the per-focus phase map from live in-memory state. The candidate
|
|
46
|
-
* focus set is the union of every source (active teams,
|
|
47
|
-
* cooldown entries, idle-complete latches); each candidate
|
|
48
|
-
* one phase via resolveTeamPhase, and a candidate that
|
|
49
|
-
* omitted. Pruning the idle-complete latch for any
|
|
50
|
-
* the latch set bounded.
|
|
58
|
+
* focus set is the union of every source (active teams, awaiting-slot records,
|
|
59
|
+
* pending directives, cooldown entries, idle-complete latches); each candidate
|
|
60
|
+
* resolves to exactly one phase via resolveTeamPhase, and a candidate that
|
|
61
|
+
* resolves to undefined is omitted. Pruning the idle-complete latch for any
|
|
62
|
+
* focus with a live team keeps the latch set bounded.
|
|
51
63
|
*/
|
|
52
64
|
export declare function buildTeamPhaseMap(sources?: TeamPhaseSources): Record<string, FocusLifecyclePhase>;
|
|
53
65
|
//# sourceMappingURL=team-phase.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-phase.d.ts","sourceRoot":"","sources":["../../src/completion/team-phase.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"team-phase.d.ts","sourceRoot":"","sources":["../../src/completion/team-phase.ts"],"names":[],"mappings":"AAkDA;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,eAAe,GAAG,eAAe,GAAG,mBAAmB,GAAG,UAAU,CAAC;AAcrH,gGAAgG;AAChG,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3D;AAED,sEAAsE;AACtE,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE5D;AAED,4EAA4E;AAC5E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,kFAAkF;AAClF,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IACxC,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;CACvB,GAAG,mBAAmB,GAAG,SAAS,CAOlC;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qBAAqB,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IACxC,uBAAuB,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5C,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IACzC,uBAAuB,IAAI,MAAM,EAAE,CAAC;IACpC,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IACnD,wBAAwB,IAAI,MAAM,EAAE,CAAC;IACrC,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;CAC7C;AAaD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,gBAA0C,GAClD,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAwBrC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
2
|
// Pinned by: packages/daemon/src/completion/no-actionable-work-exit.test.ts,
|
|
3
|
-
// packages/daemon/src/completion/team-phase.test.ts,
|
|
3
|
+
// packages/daemon/src/completion/team-phase.test.ts, packages/daemon/src/focus/awaiting-slot.test.ts,
|
|
4
4
|
// packages/daemon/src/shell/heartbeat-team-phases.test.ts
|
|
5
5
|
// PINNED-BY-END
|
|
6
6
|
/**
|
|
@@ -16,12 +16,16 @@
|
|
|
16
16
|
* narrations map, so the UI can label parked states honestly while RESERVING the
|
|
17
17
|
* "unresponsive" diagnosis for silence with work outstanding (phase === executing).
|
|
18
18
|
*
|
|
19
|
-
* The
|
|
19
|
+
* The five phases are a COMPOSITE, not a field. FocusTeamState.phase is
|
|
20
20
|
* deliberately {initializing,executing,shutting_down,terminated} with no idle
|
|
21
|
-
* state (a team terminates when its work is done), so the
|
|
22
|
-
* derived from
|
|
21
|
+
* state (a team terminates when its work is done), so the non-executing phases
|
|
22
|
+
* are derived from other in-memory sources:
|
|
23
23
|
* - executing -- a live team is in activeTeams (initializing/executing/
|
|
24
24
|
* shutting_down all read as "work in flight")
|
|
25
|
+
* - awaiting_slot -- a spawn pass would have started a team for this armed
|
|
26
|
+
* focus but every session slot is in use
|
|
27
|
+
* (focus/awaiting-slot.ts). NOT parked: the focus has
|
|
28
|
+
* work to do and starts the moment a slot frees
|
|
25
29
|
* - directive_pending -- a spawn directive is queued for the focus (a spawn is
|
|
26
30
|
* imminent -- e.g. a review pass waiting to start)
|
|
27
31
|
* - cooldown -- the focus is inside its spawn-cooldown backoff window
|
|
@@ -40,6 +44,7 @@
|
|
|
40
44
|
import { getActiveTeams, hasActiveTeam } from '../focus/focus-team-state.js';
|
|
41
45
|
import { getPendingSpawnFocusIds, hasPendingSpawnDirective } from '../directive/directive-queue.js';
|
|
42
46
|
import { getSpawnCooldownFocusIds, isInSpawnCooldown } from '../spawn/spawn-cooldown.js';
|
|
47
|
+
import { getAwaitingSlotFocusIds, isAwaitingSlot } from '../focus/awaiting-slot.js';
|
|
43
48
|
// ── idle_complete latch ──────────────────────────────────────────────
|
|
44
49
|
//
|
|
45
50
|
// A clean completion (all deliveries terminal) tears the team down WITHOUT
|
|
@@ -68,16 +73,26 @@ export function __resetTeamPhaseForTesting() {
|
|
|
68
73
|
idleCompleteFocuses.clear();
|
|
69
74
|
}
|
|
70
75
|
/**
|
|
71
|
-
* Pure phase decision from the
|
|
72
|
-
*
|
|
73
|
-
* then the cooldown backoff window (cooldown),
|
|
74
|
-
* (idle_complete). No signal -> undefined (the
|
|
75
|
-
*
|
|
76
|
-
*
|
|
76
|
+
* Pure phase decision from the in-memory signals, in precedence order: a live
|
|
77
|
+
* team dominates (executing), then a slot-blocked spawn (awaiting_slot), then a
|
|
78
|
+
* queued spawn (directive_pending), then the cooldown backoff window (cooldown),
|
|
79
|
+
* then the clean-completion latch (idle_complete). No signal -> undefined (the
|
|
80
|
+
* focus is not published).
|
|
81
|
+
*
|
|
82
|
+
* awaiting_slot outranks the parked states because it is the reason the focus
|
|
83
|
+
* is not moving: a queued directive or a stale completion latch on a focus the
|
|
84
|
+
* spawn pass left waiting for a slot cannot start until a team exits, so
|
|
85
|
+
* labelling it "awaiting next stage" would hide the cause. The spawn passes
|
|
86
|
+
* never record a focus that is in spawn cooldown, so awaiting_slot and cooldown
|
|
87
|
+
* do not co-occur from a single pass. Precedence among the three parked states
|
|
88
|
+
* is diagnostic only -- the badge collapses them to a single "parked" label.
|
|
89
|
+
* `awaitingSlot` is optional so a caller predating the signal reads it as absent.
|
|
77
90
|
*/
|
|
78
91
|
export function resolveTeamPhase(signals) {
|
|
79
92
|
if (signals.hasActiveTeam)
|
|
80
93
|
return 'executing';
|
|
94
|
+
if (signals.awaitingSlot)
|
|
95
|
+
return 'awaiting_slot';
|
|
81
96
|
if (signals.hasPendingDirective)
|
|
82
97
|
return 'directive_pending';
|
|
83
98
|
if (signals.inCooldown)
|
|
@@ -89,6 +104,8 @@ export function resolveTeamPhase(signals) {
|
|
|
89
104
|
const defaultTeamPhaseSources = {
|
|
90
105
|
getActiveTeamFocusIds: () => getActiveTeams().keys(),
|
|
91
106
|
hasActiveTeam,
|
|
107
|
+
getAwaitingSlotFocusIds,
|
|
108
|
+
isAwaitingSlot,
|
|
92
109
|
getPendingSpawnFocusIds,
|
|
93
110
|
hasPendingSpawnDirective,
|
|
94
111
|
getSpawnCooldownFocusIds,
|
|
@@ -96,15 +113,16 @@ const defaultTeamPhaseSources = {
|
|
|
96
113
|
};
|
|
97
114
|
/**
|
|
98
115
|
* Recompute the per-focus phase map from live in-memory state. The candidate
|
|
99
|
-
* focus set is the union of every source (active teams,
|
|
100
|
-
* cooldown entries, idle-complete latches); each candidate
|
|
101
|
-
* one phase via resolveTeamPhase, and a candidate that
|
|
102
|
-
* omitted. Pruning the idle-complete latch for any
|
|
103
|
-
* the latch set bounded.
|
|
116
|
+
* focus set is the union of every source (active teams, awaiting-slot records,
|
|
117
|
+
* pending directives, cooldown entries, idle-complete latches); each candidate
|
|
118
|
+
* resolves to exactly one phase via resolveTeamPhase, and a candidate that
|
|
119
|
+
* resolves to undefined is omitted. Pruning the idle-complete latch for any
|
|
120
|
+
* focus with a live team keeps the latch set bounded.
|
|
104
121
|
*/
|
|
105
122
|
export function buildTeamPhaseMap(sources = defaultTeamPhaseSources) {
|
|
106
123
|
const candidates = new Set([
|
|
107
124
|
...sources.getActiveTeamFocusIds(),
|
|
125
|
+
...sources.getAwaitingSlotFocusIds(),
|
|
108
126
|
...sources.getPendingSpawnFocusIds(),
|
|
109
127
|
...sources.getSpawnCooldownFocusIds(),
|
|
110
128
|
...idleCompleteFocuses,
|
|
@@ -118,6 +136,7 @@ export function buildTeamPhaseMap(sources = defaultTeamPhaseSources) {
|
|
|
118
136
|
idleCompleteFocuses.delete(focusId);
|
|
119
137
|
const phase = resolveTeamPhase({
|
|
120
138
|
hasActiveTeam: teamActive,
|
|
139
|
+
awaitingSlot: sources.isAwaitingSlot(focusId),
|
|
121
140
|
hasPendingDirective: sources.hasPendingSpawnDirective(focusId),
|
|
122
141
|
inCooldown: sources.isInSpawnCooldown(focusId),
|
|
123
142
|
idleComplete: idleCompleteFocuses.has(focusId),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-phase.js","sourceRoot":"","sources":["../../src/completion/team-phase.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,6EAA6E;AAC7E,
|
|
1
|
+
{"version":3,"file":"team-phase.js","sourceRoot":"","sources":["../../src/completion/team-phase.ts"],"names":[],"mappings":"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"}
|