@telora/daemon 0.22.132 → 0.22.136
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build-info.json +6 -3
- package/dist/audit/audit-hooks.d.ts +6 -2
- package/dist/audit/audit-hooks.d.ts.map +1 -1
- package/dist/audit/audit-hooks.js +12 -5
- package/dist/audit/audit-hooks.js.map +1 -1
- package/dist/audit/audit-phase.js +1 -1
- package/dist/audit/audit-phase.js.map +1 -1
- package/dist/backends/index.d.ts.map +1 -1
- package/dist/backends/index.js +1 -0
- package/dist/backends/index.js.map +1 -1
- package/dist/completion/completion-phase-registry.d.ts +4 -0
- package/dist/completion/completion-phase-registry.d.ts.map +1 -1
- package/dist/completion/completion-phase-registry.js +63 -18
- package/dist/completion/completion-phase-registry.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/review-approved-head-gate.d.ts +53 -0
- package/dist/completion/review-approved-head-gate.d.ts.map +1 -0
- package/dist/completion/review-approved-head-gate.js +124 -0
- package/dist/completion/review-approved-head-gate.js.map +1 -0
- package/dist/completion/review-census-record.d.ts +52 -0
- package/dist/completion/review-census-record.d.ts.map +1 -0
- package/dist/completion/review-census-record.js +145 -0
- package/dist/completion/review-census-record.js.map +1 -0
- package/dist/completion/review-exit-deps.d.ts +5 -1
- package/dist/completion/review-exit-deps.d.ts.map +1 -1
- package/dist/completion/review-exit-deps.js +7 -2
- package/dist/completion/review-exit-deps.js.map +1 -1
- package/dist/completion/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.js +29 -16
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/completion/review-exit-progress.d.ts +8 -0
- package/dist/completion/review-exit-progress.d.ts.map +1 -1
- package/dist/completion/review-exit-progress.js +14 -0
- package/dist/completion/review-exit-progress.js.map +1 -1
- package/dist/completion/review-exit-shortfall-park.d.ts +14 -0
- package/dist/completion/review-exit-shortfall-park.d.ts.map +1 -0
- package/dist/completion/review-exit-shortfall-park.js +52 -0
- package/dist/completion/review-exit-shortfall-park.js.map +1 -0
- package/dist/completion/review-exit-shortfall.js +1 -1
- package/dist/completion/review-exit-shortfall.js.map +1 -1
- package/dist/completion/review-exit-verdict-gate.d.ts +58 -0
- package/dist/completion/review-exit-verdict-gate.d.ts.map +1 -1
- package/dist/completion/review-exit-verdict-gate.js +68 -8
- package/dist/completion/review-exit-verdict-gate.js.map +1 -1
- package/dist/completion/review-next-step.d.ts +15 -3
- package/dist/completion/review-next-step.d.ts.map +1 -1
- package/dist/completion/review-next-step.js +7 -2
- package/dist/completion/review-next-step.js.map +1 -1
- package/dist/completion/standing-approval-convergence.d.ts +68 -0
- package/dist/completion/standing-approval-convergence.d.ts.map +1 -0
- package/dist/completion/standing-approval-convergence.js +230 -0
- package/dist/completion/standing-approval-convergence.js.map +1 -0
- package/dist/completion/standing-approval-deps.d.ts +5 -0
- package/dist/completion/standing-approval-deps.d.ts.map +1 -0
- package/dist/completion/standing-approval-deps.js +37 -0
- package/dist/completion/standing-approval-deps.js.map +1 -0
- package/dist/completion/state-cascade.d.ts +11 -0
- package/dist/completion/state-cascade.d.ts.map +1 -1
- package/dist/completion/state-cascade.js +40 -1
- package/dist/completion/state-cascade.js.map +1 -1
- package/dist/completion/team-lifecycle.d.ts +14 -2
- package/dist/completion/team-lifecycle.d.ts.map +1 -1
- package/dist/completion/team-lifecycle.js +36 -36
- package/dist/completion/team-lifecycle.js.map +1 -1
- package/dist/completion/terminated-work-reconcile.d.ts +3 -1
- package/dist/completion/terminated-work-reconcile.d.ts.map +1 -1
- package/dist/completion/terminated-work-reconcile.js +24 -11
- package/dist/completion/terminated-work-reconcile.js.map +1 -1
- package/dist/delivery/delivery-advance-block.d.ts +6 -0
- package/dist/delivery/delivery-advance-block.d.ts.map +1 -1
- package/dist/delivery/delivery-advance-block.js +29 -3
- package/dist/delivery/delivery-advance-block.js.map +1 -1
- package/dist/delivery/delivery-reconciler.d.ts.map +1 -1
- package/dist/delivery/delivery-reconciler.js +4 -1
- package/dist/delivery/delivery-reconciler.js.map +1 -1
- package/dist/delivery/operator-hold.d.ts.map +1 -1
- package/dist/delivery/operator-hold.js +3 -1
- package/dist/delivery/operator-hold.js.map +1 -1
- package/dist/directive/directive-executor.d.ts.map +1 -1
- package/dist/directive/directive-executor.js +6 -0
- package/dist/directive/directive-executor.js.map +1 -1
- package/dist/directive/directive-queue.d.ts +8 -0
- package/dist/directive/directive-queue.d.ts.map +1 -1
- package/dist/directive/directive-queue.js +20 -0
- package/dist/directive/directive-queue.js.map +1 -1
- package/dist/directive/phase-sync.d.ts +5 -0
- package/dist/directive/phase-sync.d.ts.map +1 -1
- package/dist/directive/phase-sync.js +11 -1
- package/dist/directive/phase-sync.js.map +1 -1
- package/dist/directive/stranded-review-reroute.d.ts +37 -0
- package/dist/directive/stranded-review-reroute.d.ts.map +1 -0
- package/dist/directive/stranded-review-reroute.js +150 -0
- package/dist/directive/stranded-review-reroute.js.map +1 -0
- package/dist/focus/focus-engine.d.ts.map +1 -1
- package/dist/focus/focus-engine.js +15 -3
- package/dist/focus/focus-engine.js.map +1 -1
- package/dist/focus/focus-executor.d.ts.map +1 -1
- package/dist/focus/focus-executor.js +9 -65
- package/dist/focus/focus-executor.js.map +1 -1
- package/dist/focus/focus-lifecycle.d.ts +12 -0
- package/dist/focus/focus-lifecycle.d.ts.map +1 -1
- package/dist/focus/focus-lifecycle.js +66 -37
- 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 +6 -0
- package/dist/focus/focus-phase.js.map +1 -1
- package/dist/focus/focus-spawn-decision.d.ts.map +1 -1
- package/dist/focus/focus-spawn-decision.js +1 -0
- package/dist/focus/focus-spawn-decision.js.map +1 -1
- package/dist/focus/focus-team-state.d.ts +10 -0
- package/dist/focus/focus-team-state.d.ts.map +1 -1
- package/dist/focus/focus-team-state.js +19 -1
- package/dist/focus/focus-team-state.js.map +1 -1
- package/dist/focus/listener-auto-advance.d.ts.map +1 -1
- package/dist/focus/listener-auto-advance.js +1 -0
- package/dist/focus/listener-auto-advance.js.map +1 -1
- package/dist/focus/listener-spawn.d.ts +10 -0
- package/dist/focus/listener-spawn.d.ts.map +1 -1
- package/dist/focus/listener-spawn.js +46 -4
- 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 +11 -1
- package/dist/focus/listener-state.js.map +1 -1
- package/dist/focus/listener.d.ts +42 -0
- package/dist/focus/listener.d.ts.map +1 -1
- package/dist/focus/listener.js +62 -33
- package/dist/focus/listener.js.map +1 -1
- package/dist/focus/pending-review-approved-head.d.ts +41 -0
- package/dist/focus/pending-review-approved-head.d.ts.map +1 -0
- package/dist/focus/pending-review-approved-head.js +198 -0
- package/dist/focus/pending-review-approved-head.js.map +1 -0
- package/dist/focus/pending-spawn-pass-deps.d.ts +5 -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/pending-spawn-review-next-step.d.ts.map +1 -1
- package/dist/focus/pending-spawn-review-next-step.js +26 -4
- package/dist/focus/pending-spawn-review-next-step.js.map +1 -1
- package/dist/focus/review-spawn-coverage.d.ts +87 -0
- package/dist/focus/review-spawn-coverage.d.ts.map +1 -0
- package/dist/focus/review-spawn-coverage.js +104 -0
- package/dist/focus/review-spawn-coverage.js.map +1 -0
- package/dist/focus/session-health.d.ts +5 -2
- package/dist/focus/session-health.d.ts.map +1 -1
- package/dist/focus/session-health.js +2 -1
- package/dist/focus/session-health.js.map +1 -1
- package/dist/focus/session-process-reap.d.ts +50 -0
- package/dist/focus/session-process-reap.d.ts.map +1 -0
- package/dist/focus/session-process-reap.js +77 -0
- package/dist/focus/session-process-reap.js.map +1 -0
- package/dist/focus/unchanged-reviewed-head.d.ts +40 -0
- package/dist/focus/unchanged-reviewed-head.d.ts.map +1 -0
- package/dist/focus/unchanged-reviewed-head.js +84 -0
- package/dist/focus/unchanged-reviewed-head.js.map +1 -0
- package/dist/focus/verify-open-issues.d.ts +4 -19
- package/dist/focus/verify-open-issues.d.ts.map +1 -1
- package/dist/focus/verify-open-issues.js +83 -41
- package/dist/focus/verify-open-issues.js.map +1 -1
- package/dist/git/focus-integration-sync.d.ts +61 -0
- package/dist/git/focus-integration-sync.d.ts.map +1 -0
- package/dist/git/focus-integration-sync.js +73 -0
- package/dist/git/focus-integration-sync.js.map +1 -0
- package/dist/git/focus-own-delta.d.ts +38 -0
- package/dist/git/focus-own-delta.d.ts.map +1 -0
- package/dist/git/focus-own-delta.js +193 -0
- package/dist/git/focus-own-delta.js.map +1 -0
- package/dist/git/index.d.ts +2 -0
- package/dist/git/index.d.ts.map +1 -1
- package/dist/git/index.js +4 -0
- package/dist/git/index.js.map +1 -1
- package/dist/git/merge.d.ts.map +1 -1
- package/dist/git/merge.js +11 -1
- package/dist/git/merge.js.map +1 -1
- package/dist/git/resolution-restore.d.ts +66 -0
- package/dist/git/resolution-restore.d.ts.map +1 -0
- package/dist/git/resolution-restore.js +331 -0
- package/dist/git/resolution-restore.js.map +1 -0
- package/dist/loops/engine.d.ts.map +1 -1
- package/dist/loops/engine.js.map +1 -1
- package/dist/merge/abandoned-merge-recovery.d.ts +72 -0
- package/dist/merge/abandoned-merge-recovery.d.ts.map +1 -0
- package/dist/merge/abandoned-merge-recovery.js +117 -0
- package/dist/merge/abandoned-merge-recovery.js.map +1 -0
- package/dist/merge/focus-merge.d.ts +19 -0
- package/dist/merge/focus-merge.d.ts.map +1 -1
- package/dist/merge/focus-merge.js +136 -99
- package/dist/merge/focus-merge.js.map +1 -1
- package/dist/merge/merge-back-activity.d.ts +11 -0
- package/dist/merge/merge-back-activity.d.ts.map +1 -0
- package/dist/merge/merge-back-activity.js +57 -0
- package/dist/merge/merge-back-activity.js.map +1 -0
- package/dist/merge/merge-back-conflict.d.ts +119 -0
- package/dist/merge/merge-back-conflict.d.ts.map +1 -0
- package/dist/merge/merge-back-conflict.js +178 -0
- package/dist/merge/merge-back-conflict.js.map +1 -0
- package/dist/merge/merge-back-followup.d.ts +109 -0
- package/dist/merge/merge-back-followup.d.ts.map +1 -0
- package/dist/merge/merge-back-followup.js +316 -0
- package/dist/merge/merge-back-followup.js.map +1 -0
- package/dist/merge/merge-back-loop.d.ts +2 -0
- package/dist/merge/merge-back-loop.d.ts.map +1 -1
- package/dist/merge/merge-back-loop.js +14 -15
- package/dist/merge/merge-back-loop.js.map +1 -1
- package/dist/merge/merge-conflict-escalation.d.ts +12 -0
- package/dist/merge/merge-conflict-escalation.d.ts.map +1 -1
- package/dist/merge/merge-conflict-escalation.js +37 -2
- package/dist/merge/merge-conflict-escalation.js.map +1 -1
- package/dist/merge/merge-gate-coverage.d.ts.map +1 -1
- package/dist/merge/merge-gate-coverage.js +1 -0
- package/dist/merge/merge-gate-coverage.js.map +1 -1
- package/dist/prompt/prompt-listing.d.ts +5 -0
- package/dist/prompt/prompt-listing.d.ts.map +1 -1
- package/dist/prompt/prompt-listing.js +35 -0
- package/dist/prompt/prompt-listing.js.map +1 -1
- package/dist/prompt-sections/routing-decider-sections.d.ts.map +1 -1
- package/dist/prompt-sections/routing-decider-sections.js +2 -0
- package/dist/prompt-sections/routing-decider-sections.js.map +1 -1
- package/dist/prompt-sections/shortfall-park-section.d.ts +43 -0
- package/dist/prompt-sections/shortfall-park-section.d.ts.map +1 -0
- package/dist/prompt-sections/shortfall-park-section.js +36 -0
- package/dist/prompt-sections/shortfall-park-section.js.map +1 -0
- package/dist/queries/agent-resolvable-promotion.d.ts +16 -2
- package/dist/queries/agent-resolvable-promotion.d.ts.map +1 -1
- package/dist/queries/agent-resolvable-promotion.js +30 -3
- package/dist/queries/agent-resolvable-promotion.js.map +1 -1
- package/dist/queries/cause-key.d.ts +17 -22
- package/dist/queries/cause-key.d.ts.map +1 -1
- package/dist/queries/cause-key.js +50 -1
- package/dist/queries/cause-key.js.map +1 -1
- package/dist/queries/commit-attributions.d.ts +18 -0
- package/dist/queries/commit-attributions.d.ts.map +1 -0
- package/dist/queries/commit-attributions.js +39 -0
- package/dist/queries/commit-attributions.js.map +1 -0
- 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.d.ts +21 -5
- package/dist/queries/delivery-gate-state.d.ts.map +1 -1
- package/dist/queries/delivery-gate-state.js +35 -9
- package/dist/queries/delivery-gate-state.js.map +1 -1
- package/dist/queries/escalation-consumption.d.ts.map +1 -1
- package/dist/queries/escalation-consumption.js +2 -1
- package/dist/queries/escalation-consumption.js.map +1 -1
- package/dist/queries/escalation-field-bounds.d.ts +48 -0
- package/dist/queries/escalation-field-bounds.d.ts.map +1 -0
- package/dist/queries/escalation-field-bounds.js +83 -0
- package/dist/queries/escalation-field-bounds.js.map +1 -0
- package/dist/queries/escalation-refusal.d.ts +88 -0
- package/dist/queries/escalation-refusal.d.ts.map +1 -0
- package/dist/queries/escalation-refusal.js +217 -0
- package/dist/queries/escalation-refusal.js.map +1 -0
- package/dist/queries/escalation-suppression.d.ts +6 -0
- package/dist/queries/escalation-suppression.d.ts.map +1 -1
- package/dist/queries/escalation-suppression.js +4 -13
- package/dist/queries/escalation-suppression.js.map +1 -1
- package/dist/queries/escalations.d.ts +5 -13
- package/dist/queries/escalations.d.ts.map +1 -1
- package/dist/queries/escalations.js +25 -30
- package/dist/queries/escalations.js.map +1 -1
- package/dist/queries/filing-observation.d.ts.map +1 -1
- package/dist/queries/filing-observation.js +3 -1
- package/dist/queries/filing-observation.js.map +1 -1
- package/dist/queries/focus-review-approval.d.ts +2 -0
- package/dist/queries/focus-review-approval.d.ts.map +1 -1
- package/dist/queries/focus-review-approval.js +7 -2
- package/dist/queries/focus-review-approval.js.map +1 -1
- package/dist/queries/focuses.d.ts.map +1 -1
- package/dist/queries/focuses.js +2 -1
- package/dist/queries/focuses.js.map +1 -1
- package/dist/queries/incident-correlation.d.ts.map +1 -1
- package/dist/queries/incident-correlation.js +4 -1
- package/dist/queries/incident-correlation.js.map +1 -1
- package/dist/queries/misattributed-commits-record.d.ts +26 -0
- package/dist/queries/misattributed-commits-record.d.ts.map +1 -0
- package/dist/queries/misattributed-commits-record.js +5 -0
- package/dist/queries/misattributed-commits-record.js.map +1 -0
- package/dist/queries/reality-tree.d.ts.map +1 -1
- package/dist/queries/reality-tree.js +2 -1
- package/dist/queries/reality-tree.js.map +1 -1
- package/dist/queries/schemas.d.ts +3 -0
- package/dist/queries/schemas.d.ts.map +1 -1
- package/dist/queries/schemas.js +1 -0
- package/dist/queries/schemas.js.map +1 -1
- package/dist/queries/shared.js +1 -1
- package/dist/queries/shortfall-park-record.d.ts +48 -0
- package/dist/queries/shortfall-park-record.d.ts.map +1 -0
- package/dist/queries/shortfall-park-record.js +31 -0
- package/dist/queries/shortfall-park-record.js.map +1 -0
- package/dist/queries/shortfall-rulings.d.ts +71 -0
- package/dist/queries/shortfall-rulings.d.ts.map +1 -0
- package/dist/queries/shortfall-rulings.js +53 -0
- package/dist/queries/shortfall-rulings.js.map +1 -0
- package/dist/queries/verification.d.ts +20 -1
- package/dist/queries/verification.d.ts.map +1 -1
- package/dist/queries/verification.js +48 -8
- package/dist/queries/verification.js.map +1 -1
- package/dist/resolvers/index.d.ts +2 -2
- package/dist/resolvers/index.d.ts.map +1 -1
- package/dist/resolvers/index.js +1 -1
- package/dist/resolvers/index.js.map +1 -1
- package/dist/resolvers/shared/delivery-trailer.d.ts +99 -0
- package/dist/resolvers/shared/delivery-trailer.d.ts.map +1 -0
- package/dist/resolvers/shared/delivery-trailer.js +103 -0
- package/dist/resolvers/shared/delivery-trailer.js.map +1 -0
- package/dist/resolvers/shared/git-diff.d.ts +11 -84
- package/dist/resolvers/shared/git-diff.d.ts.map +1 -1
- package/dist/resolvers/shared/git-diff.js +17 -84
- package/dist/resolvers/shared/git-diff.js.map +1 -1
- package/dist/resolvers/shared/review-window-commits.d.ts.map +1 -1
- package/dist/resolvers/shared/review-window-commits.js +1 -0
- package/dist/resolvers/shared/review-window-commits.js.map +1 -1
- package/dist/session/session-lineage.d.ts.map +1 -1
- package/dist/session/session-lineage.js +1 -0
- package/dist/session/session-lineage.js.map +1 -1
- package/dist/shell/config.d.ts +2 -1
- package/dist/shell/config.d.ts.map +1 -1
- package/dist/shell/config.js +21 -4
- package/dist/shell/config.js.map +1 -1
- package/dist/shell/crash-recovery.d.ts +3 -7
- package/dist/shell/crash-recovery.d.ts.map +1 -1
- package/dist/shell/crash-recovery.js +28 -31
- package/dist/shell/crash-recovery.js.map +1 -1
- package/dist/shell/orphan-capture.d.ts +42 -0
- package/dist/shell/orphan-capture.d.ts.map +1 -0
- package/dist/shell/orphan-capture.js +53 -0
- package/dist/shell/orphan-capture.js.map +1 -0
- package/dist/shell/worker-pidfile.d.ts +22 -4
- package/dist/shell/worker-pidfile.d.ts.map +1 -1
- package/dist/shell/worker-pidfile.js +51 -13
- package/dist/shell/worker-pidfile.js.map +1 -1
- package/dist/spawn/helpers.d.ts +3 -0
- package/dist/spawn/helpers.d.ts.map +1 -1
- package/dist/spawn/helpers.js +28 -9
- package/dist/spawn/helpers.js.map +1 -1
- package/dist/spawn/lead-launch.d.ts +34 -0
- package/dist/spawn/lead-launch.d.ts.map +1 -0
- package/dist/spawn/lead-launch.js +34 -0
- package/dist/spawn/lead-launch.js.map +1 -0
- package/dist/spawn/lead-process-ownership.d.ts +91 -0
- package/dist/spawn/lead-process-ownership.d.ts.map +1 -0
- package/dist/spawn/lead-process-ownership.js +120 -0
- package/dist/spawn/lead-process-ownership.js.map +1 -0
- package/dist/spawn/lifecycle.d.ts +43 -3
- package/dist/spawn/lifecycle.d.ts.map +1 -1
- package/dist/spawn/lifecycle.js +75 -44
- package/dist/spawn/lifecycle.js.map +1 -1
- package/dist/spawn/liveness.d.ts.map +1 -1
- package/dist/spawn/liveness.js +5 -1
- package/dist/spawn/liveness.js.map +1 -1
- package/dist/spawn/one-shot-process-ownership.d.ts +48 -0
- package/dist/spawn/one-shot-process-ownership.d.ts.map +1 -0
- package/dist/spawn/one-shot-process-ownership.js +44 -0
- package/dist/spawn/one-shot-process-ownership.js.map +1 -0
- package/dist/spawn/process-group-kill.d.ts +79 -0
- package/dist/spawn/process-group-kill.d.ts.map +1 -0
- package/dist/spawn/process-group-kill.js +210 -0
- package/dist/spawn/process-group-kill.js.map +1 -0
- 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 +51 -20
- package/dist/spawn/process-spawn.js.map +1 -1
- package/dist/spawn/resolution-budget.d.ts +38 -0
- package/dist/spawn/resolution-budget.d.ts.map +1 -0
- package/dist/spawn/resolution-budget.js +87 -0
- package/dist/spawn/resolution-budget.js.map +1 -0
- package/dist/spawn/review-hold-park.d.ts.map +1 -1
- package/dist/spawn/review-hold-park.js +37 -5
- 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 +9 -0
- package/dist/spawn/spawn-cooldown.js.map +1 -1
- package/dist/spawn/untracked-lead-sweep.d.ts +29 -0
- package/dist/spawn/untracked-lead-sweep.d.ts.map +1 -0
- package/dist/spawn/untracked-lead-sweep.js +100 -0
- package/dist/spawn/untracked-lead-sweep.js.map +1 -0
- package/dist/spawn/worker-registry.d.ts.map +1 -1
- package/dist/spawn/worker-registry.js +4 -1
- package/dist/spawn/worker-registry.js.map +1 -1
- package/dist/spawn/worktree-session.d.ts.map +1 -1
- package/dist/spawn/worktree-session.js +8 -6
- package/dist/spawn/worktree-session.js.map +1 -1
- package/dist/testing/fixtures/exit-capture-verify.d.ts +41 -0
- package/dist/testing/fixtures/exit-capture-verify.d.ts.map +1 -0
- package/dist/testing/fixtures/exit-capture-verify.js +152 -0
- package/dist/testing/fixtures/exit-capture-verify.js.map +1 -0
- package/dist/testing/fixtures/index.js +1 -1
- package/dist/testing/fixtures/pending-spawn-world.d.ts +7 -0
- package/dist/testing/fixtures/pending-spawn-world.d.ts.map +1 -1
- package/dist/testing/fixtures/pending-spawn-world.js +21 -1
- package/dist/testing/fixtures/pending-spawn-world.js.map +1 -1
- package/dist/testing/fixtures/stubborn-lead-process.d.ts +22 -0
- package/dist/testing/fixtures/stubborn-lead-process.d.ts.map +1 -0
- package/dist/testing/fixtures/stubborn-lead-process.js +68 -0
- package/dist/testing/fixtures/stubborn-lead-process.js.map +1 -0
- package/dist/types/config.d.ts +13 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/focus.d.ts +7 -0
- package/dist/types/focus.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/verify/commit-verdict-record.d.ts +13 -3
- package/dist/verify/commit-verdict-record.d.ts.map +1 -1
- package/dist/verify/commit-verdict-record.js +45 -25
- package/dist/verify/commit-verdict-record.js.map +1 -1
- package/dist/verify/credit-rearm.d.ts +18 -0
- package/dist/verify/credit-rearm.d.ts.map +1 -0
- package/dist/verify/credit-rearm.js +69 -0
- package/dist/verify/credit-rearm.js.map +1 -0
- package/dist/verify/delivery-commit-set.d.ts +10 -0
- package/dist/verify/delivery-commit-set.d.ts.map +1 -0
- package/dist/verify/delivery-commit-set.js +82 -0
- package/dist/verify/delivery-commit-set.js.map +1 -0
- package/dist/verify/explicit-rearm.d.ts.map +1 -1
- package/dist/verify/explicit-rearm.js +2 -0
- package/dist/verify/explicit-rearm.js.map +1 -1
- package/dist/verify/failure-signature.d.ts.map +1 -1
- package/dist/verify/failure-signature.js +1 -0
- package/dist/verify/failure-signature.js.map +1 -1
- package/dist/verify/gate-run-registry.d.ts.map +1 -1
- package/dist/verify/gate-run-registry.js +3 -0
- package/dist/verify/gate-run-registry.js.map +1 -1
- package/dist/verify/injection-stamp.d.ts +29 -0
- package/dist/verify/injection-stamp.d.ts.map +1 -0
- package/dist/verify/injection-stamp.js +139 -0
- package/dist/verify/injection-stamp.js.map +1 -0
- package/dist/verify/misattributed-commits-read.d.ts +31 -0
- package/dist/verify/misattributed-commits-read.d.ts.map +1 -0
- package/dist/verify/misattributed-commits-read.js +47 -0
- package/dist/verify/misattributed-commits-read.js.map +1 -0
- package/dist/verify/misattributed-commits.d.ts +52 -0
- package/dist/verify/misattributed-commits.d.ts.map +1 -0
- package/dist/verify/misattributed-commits.js +148 -0
- package/dist/verify/misattributed-commits.js.map +1 -0
- package/dist/verify/no-own-delta-verdict.d.ts +47 -0
- package/dist/verify/no-own-delta-verdict.d.ts.map +1 -0
- package/dist/verify/no-own-delta-verdict.js +74 -0
- package/dist/verify/no-own-delta-verdict.js.map +1 -0
- package/dist/verify/shortfall-park-escalation.d.ts +41 -0
- package/dist/verify/shortfall-park-escalation.d.ts.map +1 -0
- package/dist/verify/shortfall-park-escalation.js +177 -0
- package/dist/verify/shortfall-park-escalation.js.map +1 -0
- package/dist/verify/shortfall-park.d.ts +109 -0
- package/dist/verify/shortfall-park.d.ts.map +1 -0
- package/dist/verify/shortfall-park.js +208 -0
- package/dist/verify/shortfall-park.js.map +1 -0
- package/dist/verify/shortfall-repeat.d.ts +47 -16
- package/dist/verify/shortfall-repeat.d.ts.map +1 -1
- package/dist/verify/shortfall-repeat.js +77 -23
- package/dist/verify/shortfall-repeat.js.map +1 -1
- package/dist/verify/shortfall-rulings.d.ts +106 -0
- package/dist/verify/shortfall-rulings.d.ts.map +1 -0
- package/dist/verify/shortfall-rulings.js +118 -0
- package/dist/verify/shortfall-rulings.js.map +1 -0
- package/dist/verify/stall-detectors.d.ts.map +1 -1
- package/dist/verify/stall-detectors.js +10 -4
- package/dist/verify/stall-detectors.js.map +1 -1
- package/dist/verify/verification-attribution-base.d.ts +26 -0
- package/dist/verify/verification-attribution-base.d.ts.map +1 -0
- package/dist/verify/verification-attribution-base.js +127 -0
- package/dist/verify/verification-attribution-base.js.map +1 -0
- package/dist/verify/verification-attribution-deps.d.ts +32 -0
- package/dist/verify/verification-attribution-deps.d.ts.map +1 -0
- package/dist/verify/verification-attribution-deps.js +209 -0
- package/dist/verify/verification-attribution-deps.js.map +1 -0
- package/dist/verify/verification-baseline.d.ts +6 -0
- package/dist/verify/verification-baseline.d.ts.map +1 -1
- package/dist/verify/verification-baseline.js +27 -11
- package/dist/verify/verification-baseline.js.map +1 -1
- package/dist/verify/verification-commit-sharing.d.ts.map +1 -1
- package/dist/verify/verification-commit-sharing.js +30 -8
- 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 +2 -0
- package/dist/verify/verification-config.js.map +1 -1
- package/dist/verify/verification-default-on.d.ts +3 -0
- package/dist/verify/verification-default-on.d.ts.map +1 -1
- package/dist/verify/verification-default-on.js +5 -1
- 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 +61 -120
- package/dist/verify/verification-deps-default.js.map +1 -1
- package/dist/verify/verification-deps.d.ts +26 -4
- package/dist/verify/verification-deps.d.ts.map +1 -1
- package/dist/verify/verification-deterministic.d.ts +15 -0
- package/dist/verify/verification-deterministic.d.ts.map +1 -1
- package/dist/verify/verification-deterministic.js +1 -12
- package/dist/verify/verification-deterministic.js.map +1 -1
- package/dist/verify/verification-engine.d.ts +9 -6
- package/dist/verify/verification-engine.d.ts.map +1 -1
- package/dist/verify/verification-engine.js +43 -62
- 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 +19 -1
- package/dist/verify/verification-evidence-unavailable-feedback.js.map +1 -1
- package/dist/verify/verification-failure-parser.d.ts +57 -1
- package/dist/verify/verification-failure-parser.d.ts.map +1 -1
- package/dist/verify/verification-failure-parser.js +116 -10
- package/dist/verify/verification-failure-parser.js.map +1 -1
- package/dist/verify/verification-feedback.d.ts +60 -43
- package/dist/verify/verification-feedback.d.ts.map +1 -1
- package/dist/verify/verification-feedback.js +115 -120
- package/dist/verify/verification-feedback.js.map +1 -1
- package/dist/verify/verification-history-reset.d.ts +2 -1
- package/dist/verify/verification-history-reset.d.ts.map +1 -1
- package/dist/verify/verification-history-reset.js +4 -2
- package/dist/verify/verification-history-reset.js.map +1 -1
- package/dist/verify/verification-rework-issue.d.ts +87 -0
- package/dist/verify/verification-rework-issue.d.ts.map +1 -0
- package/dist/verify/verification-rework-issue.js +212 -0
- package/dist/verify/verification-rework-issue.js.map +1 -0
- package/dist/verify/verification-rework-messages.d.ts.map +1 -1
- package/dist/verify/verification-rework-messages.js +10 -0
- package/dist/verify/verification-rework-messages.js.map +1 -1
- package/dist/verify/verify-gate-stall.d.ts +2 -0
- package/dist/verify/verify-gate-stall.d.ts.map +1 -1
- package/dist/verify/verify-gate-stall.js +35 -9
- package/dist/verify/verify-gate-stall.js.map +1 -1
- package/dist/verify/verify-restatement.d.ts.map +1 -1
- package/dist/verify/verify-restatement.js +9 -2
- package/dist/verify/verify-restatement.js.map +1 -1
- package/dist/worktree/capture-attribution-read.d.ts +47 -0
- package/dist/worktree/capture-attribution-read.d.ts.map +1 -0
- package/dist/worktree/capture-attribution-read.js +98 -0
- package/dist/worktree/capture-attribution-read.js.map +1 -0
- package/dist/worktree/capture-attribution.d.ts +26 -0
- package/dist/worktree/capture-attribution.d.ts.map +1 -0
- package/dist/worktree/capture-attribution.js +111 -0
- package/dist/worktree/capture-attribution.js.map +1 -0
- package/dist/worktree/index.d.ts.map +1 -1
- package/dist/worktree/index.js +2 -1
- package/dist/worktree/index.js.map +1 -1
- package/dist/worktree/provision.d.ts.map +1 -1
- package/dist/worktree/provision.js +23 -6
- package/dist/worktree/provision.js.map +1 -1
- package/dist/worktree/safety.d.ts +14 -4
- package/dist/worktree/safety.d.ts.map +1 -1
- package/dist/worktree/safety.js +37 -7
- package/dist/worktree/safety.js.map +1 -1
- package/dist/worktree/scratch-guard.d.ts +53 -2
- package/dist/worktree/scratch-guard.d.ts.map +1 -1
- package/dist/worktree/scratch-guard.js +115 -30
- package/dist/worktree/scratch-guard.js.map +1 -1
- package/dist/worktree/unmerged-capture-escalation.d.ts +52 -0
- package/dist/worktree/unmerged-capture-escalation.d.ts.map +1 -0
- package/dist/worktree/unmerged-capture-escalation.js +64 -0
- package/dist/worktree/unmerged-capture-escalation.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
+
// Pinned by: packages/daemon/src/focus/unchanged-reviewed-head.test.ts,
|
|
3
|
+
// packages/daemon/src/integration/failed-verdict-review-exit-respawn-regression.test.ts,
|
|
4
|
+
// packages/daemon/src/integration/failed-verdict-review-loop-regression.test.ts
|
|
5
|
+
// PINNED-BY-END
|
|
6
|
+
/**
|
|
7
|
+
* A review of an unchanged range is a billed no-op: no review spawns while the
|
|
8
|
+
* focus head, the verify deliveries a review would judge, and the gate verdict for
|
|
9
|
+
* that head are all what the last completed review already saw.
|
|
10
|
+
*
|
|
11
|
+
* focus/pending-review-approved-head.ts declines a review at an APPROVED head. But
|
|
12
|
+
* a review whose exit routed nothing leaves no approval: an exit held on a FAILED
|
|
13
|
+
* gate verdict (completion/review-exit-verdict-gate.ts writes no hold and moves
|
|
14
|
+
* nothing), or a review that filed nothing and approved nothing. Its review window
|
|
15
|
+
* stays set, the stranded-review re-fire re-queues the directive, and a new team
|
|
16
|
+
* reviews the same empty range, stamps the same result and exits held again
|
|
17
|
+
* (Tinker Tailor, 2026-09-17: ten passes 09:06-12:14, input tokens 16.8M -> 18.5M,
|
|
18
|
+
* each "an empty range, no shortfalls").
|
|
19
|
+
*
|
|
20
|
+
* "The last completed review" is the review census (completion/review-census-record.ts):
|
|
21
|
+
* every review exit with an open window records the commit it covered and the
|
|
22
|
+
* verify deliveries it saw, each at its re-code iteration. The range is UNCHANGED
|
|
23
|
+
* when, all known:
|
|
24
|
+
* - the focus head is the newest census's commit;
|
|
25
|
+
* - every delivery now in verify was in that census at the same iteration (a
|
|
26
|
+
* delivery that reached verify since -- or came back from re-work -- is new
|
|
27
|
+
* work to judge);
|
|
28
|
+
* - a gate verdict for the head is recorded (verify/commit-verdict-record.ts)
|
|
29
|
+
* and was recorded no later than the census: the review already ran against
|
|
30
|
+
* it. A verdict that landed after the review is new evidence (its held exit is
|
|
31
|
+
* replayed by completion/commit-verdict-release.ts, and a fresh review may be
|
|
32
|
+
* owed); no verdict at all is not a reason to decline.
|
|
33
|
+
*
|
|
34
|
+
* FAILS OPEN: any unreadable input, or a missing census / verdict, reads as
|
|
35
|
+
* changed. A missed decline costs one review pass; a false decline would strand a
|
|
36
|
+
* delivery that needs its verdict.
|
|
37
|
+
*
|
|
38
|
+
* @module focus/unchanged-reviewed-head
|
|
39
|
+
*/
|
|
40
|
+
import { resolveRef as defaultResolveRef } from '../git/index.js';
|
|
41
|
+
import { sameCommit } from '../queries/focus-review-approval.js';
|
|
42
|
+
import { getFocusDeliveries } from '../queries/focuses.js';
|
|
43
|
+
import { listReviewCensuses } from '../completion/review-census-record.js';
|
|
44
|
+
import { readCommitVerdict } from '../verify/commit-verdict-record.js';
|
|
45
|
+
// Daemon-local literal (see spawn/review-hold-park.ts: listener tests use the module-mock loader).
|
|
46
|
+
const VERIFY_STATUS = 'verify';
|
|
47
|
+
export const defaultUnchangedReviewedHeadDeps = () => ({
|
|
48
|
+
resolveRef: defaultResolveRef,
|
|
49
|
+
listReviewCensuses: (productId, focusId) => listReviewCensuses(productId, focusId),
|
|
50
|
+
getFocusDeliveries,
|
|
51
|
+
readCommitVerdict: (productId, focusId, sha) => readCommitVerdict(productId, focusId, sha),
|
|
52
|
+
});
|
|
53
|
+
/** Whether the review range is unchanged since `census` (see the module header). Pure. */
|
|
54
|
+
export function isReviewedRangeUnchanged(input) {
|
|
55
|
+
const { headSha, census, verdict } = input;
|
|
56
|
+
if (!headSha || !census || !verdict || !sameCommit(headSha, census.sha))
|
|
57
|
+
return false;
|
|
58
|
+
const verdictAt = Date.parse(verdict.recordedAt);
|
|
59
|
+
const reviewedAt = Date.parse(census.recordedAt);
|
|
60
|
+
if (!(verdictAt <= reviewedAt))
|
|
61
|
+
return false; // NaN reads as changed
|
|
62
|
+
const seen = new Map(census.verifyDeliveries.map((d) => [d.id, d.iterationCount]));
|
|
63
|
+
return input.deliveries
|
|
64
|
+
.filter((d) => d.executionStatus === VERIFY_STATUS)
|
|
65
|
+
.every((d) => seen.get(d.id) === (d.iterationCount ?? 0));
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The unchanged reviewed head, or null when the range changed or cannot be read.
|
|
69
|
+
* Throws only when the deliveries read throws (the caller fails open).
|
|
70
|
+
*/
|
|
71
|
+
export async function readUnchangedReviewedHead(target, deps = defaultUnchangedReviewedHeadDeps()) {
|
|
72
|
+
const headSha = target.branchName ? deps.resolveRef(target.repoPath, target.branchName) : null;
|
|
73
|
+
if (!headSha)
|
|
74
|
+
return null;
|
|
75
|
+
const census = deps.listReviewCensuses(target.productId, target.focusId)[0] ?? null;
|
|
76
|
+
if (!census || !sameCommit(headSha, census.sha))
|
|
77
|
+
return null;
|
|
78
|
+
const verdict = deps.readCommitVerdict(target.productId, target.focusId, headSha);
|
|
79
|
+
const deliveries = await deps.getFocusDeliveries(target.focusId);
|
|
80
|
+
if (!verdict || !isReviewedRangeUnchanged({ headSha, census, deliveries, verdict }))
|
|
81
|
+
return null;
|
|
82
|
+
return { sha: headSha, verdict: verdict.outcome, reviewedAt: census.recordedAt };
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=unchanged-reviewed-head.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unchanged-reviewed-head.js","sourceRoot":"","sources":["../../src/focus/unchanged-reviewed-head.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,10 @@
|
|
|
26
26
|
* hold, and still clears none) and carries the verification history forward. A
|
|
27
27
|
* schema-drift rejection writes nothing of its own: the next poll recomputes the
|
|
28
28
|
* stamp with the route.
|
|
29
|
+
*
|
|
30
|
+
* A delivery PARKED on a repeating verify shortfall (verify/shortfall-park.ts) is
|
|
31
|
+
* never routed: its open work stays on it, in verify, until verify re-judges a
|
|
32
|
+
* changed delivery commit set (or a ruling) and releases the park.
|
|
29
33
|
*/
|
|
30
34
|
import type { DaemonConfig } from '../types/index.js';
|
|
31
35
|
import { updateDeliveryStatus } from '../queries/deliveries.js';
|
|
@@ -49,25 +53,6 @@ export declare function __resetSchemaViolationStateForTests(): void;
|
|
|
49
53
|
* Snapshot of the violation counter. Test-only.
|
|
50
54
|
*/
|
|
51
55
|
export declare function __getSchemaViolationAttemptsForTests(): ReadonlyMap<string, number>;
|
|
52
|
-
/**
|
|
53
|
-
* Check verify deliveries for open issues and transition them back to verify_failed.
|
|
54
|
-
*
|
|
55
|
-
* When the review agent creates new issues on a verify delivery, this poll
|
|
56
|
-
* step detects the open issues and moves the delivery back to verify_failed
|
|
57
|
-
* so the normal wake/work flow picks it up.
|
|
58
|
-
*
|
|
59
|
-
* IMPORTANT: Must be called with a product-scoped config so that only teams
|
|
60
|
-
* belonging to the current product are checked. Without product scoping,
|
|
61
|
-
* Product A's poll cycle would operate on Product B's deliveries/issues.
|
|
62
|
-
*/
|
|
63
|
-
/**
|
|
64
|
-
* Dependency seam for tests. The real implementation imports these functions
|
|
65
|
-
* eagerly; tests inject stubs via the optional deps parameter so the whole
|
|
66
|
-
* check can run with NO `mock.module` registered -- which is what keeps the
|
|
67
|
-
* daemon-core mock-loader quirk (a registered mock poisons bare @telora/* value
|
|
68
|
-
* imports from unmocked modules) from ever biting this test. Each field
|
|
69
|
-
* defaults to the real import, so production callers pass nothing.
|
|
70
|
-
*/
|
|
71
56
|
export interface CheckVerifyDeliveriesDeps {
|
|
72
57
|
createEscalation?: typeof defaultCreateEscalation;
|
|
73
58
|
getActiveTeams?: typeof getActiveTeams;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-open-issues.d.ts","sourceRoot":"","sources":["../../src/focus/verify-open-issues.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"verify-open-issues.d.ts","sourceRoot":"","sources":["../../src/focus/verify-open-issues.ts"],"names":[],"mappings":"AAaA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIrD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,IAAI,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAExF,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAyE5F;;;GAGG;AACH,eAAO,MAAM,yBAAyB,yBAAyB,CAAC;AAsChE;;GAEG;AACH,wBAAgB,mCAAmC,IAAI,IAAI,CAE1D;AAED;;GAEG;AACH,wBAAgB,oCAAoC,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAElF;AAkPD,MAAM,WAAW,yBAAyB;IACxC,gBAAgB,CAAC,EAAE,OAAO,uBAAuB,CAAC;IAClD,cAAc,CAAC,EAAE,OAAO,cAAc,CAAC;IACvC,gBAAgB,CAAC,EAAE,OAAO,gBAAgB,CAAC;IAC3C,kBAAkB,CAAC,EAAE,OAAO,kBAAkB,CAAC;IAC/C,iBAAiB,CAAC,EAAE,OAAO,iBAAiB,CAAC;IAC7C,sBAAsB,CAAC,EAAE,OAAO,sBAAsB,CAAC;IACvD,oBAAoB,CAAC,EAAE,OAAO,oBAAoB,CAAC;IACnD,iBAAiB,CAAC,EAAE,OAAO,iBAAiB,CAAC;IAC7C,iFAAiF;IACjF,IAAI,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CACjC;AAED,wBAAsB,kCAAkC,CACtD,MAAM,EAAE,YAAY,EACpB,IAAI,GAAE,yBAA8B,GACnC,OAAO,CAAC,IAAI,CAAC,CAwIf"}
|
|
@@ -4,8 +4,11 @@
|
|
|
4
4
|
// packages/daemon/src/focus/listener-product-poll.test.ts,
|
|
5
5
|
// packages/daemon/src/focus/listener-review-window-suppression.test.ts,
|
|
6
6
|
// packages/daemon/src/focus/verify-routing-passes.test.ts,
|
|
7
|
+
// packages/daemon/src/integration/failed-verdict-review-exit-respawn-regression.test.ts,
|
|
8
|
+
// packages/daemon/src/integration/failed-verdict-review-loop-regression.test.ts,
|
|
7
9
|
// packages/daemon/src/integration/focus-commit-verdict-scenario.test.ts,
|
|
8
|
-
// packages/daemon/src/integration/review-rework-resume-verdict.test.ts
|
|
10
|
+
// packages/daemon/src/integration/review-rework-resume-verdict.test.ts,
|
|
11
|
+
// packages/daemon/src/integration/shortfall-park-incident-regression.test.ts
|
|
9
12
|
// PINNED-BY-END
|
|
10
13
|
import { updateDeliveryStatus } from '../queries/deliveries.js';
|
|
11
14
|
import { getActiveFocuses } from '../queries/focus-discovery.js';
|
|
@@ -19,6 +22,7 @@ import { getDeliveryIssues, updateIssueStatus } from '../queries/issues.js';
|
|
|
19
22
|
import { createEscalation as defaultCreateEscalation } from '../queries/escalations.js';
|
|
20
23
|
import { commitGateSeams } from '../verify/commit-gate-configured.js';
|
|
21
24
|
import { awaitsInFlightGateRun, openWorkReworkGateState, readJudgedCommit } from '../completion/review-exit-verdict-gate.js';
|
|
25
|
+
import { shortfallParkRefusingRework } from '../verify/shortfall-park.js';
|
|
22
26
|
import { createLogger } from '../shell/log.js';
|
|
23
27
|
const log = createLogger({ module: 'listener' });
|
|
24
28
|
/**
|
|
@@ -151,6 +155,33 @@ async function fileSchemaDriftBlocked(createEscalation, config, focus, delivery,
|
|
|
151
155
|
log.warn(`[listener] Failed to file schema_drift_blocked escalation for "${delivery.name}":`, escErr.message);
|
|
152
156
|
}
|
|
153
157
|
}
|
|
158
|
+
/** `${deliveryId}@${parkedAt}` shortfall parks already logged (one line per park, not one per poll). */
|
|
159
|
+
const loggedParks = new Set();
|
|
160
|
+
/**
|
|
161
|
+
* Whether a verify delivery carrying open work is PARKED on a repeating verify
|
|
162
|
+
* shortfall (verify/shortfall-park.ts shortfallParkRefusingRework) and so must
|
|
163
|
+
* not be routed to verify_failed: re-work on an unchanged commit set cannot
|
|
164
|
+
* change the verdict, and routing it back is exactly the loop the park ends.
|
|
165
|
+
* Left in verify, nothing written; verify re-judgement is the single releaser.
|
|
166
|
+
* Logs once per park.
|
|
167
|
+
*/
|
|
168
|
+
function refusesOpenWorkRouteOnPark(delivery) {
|
|
169
|
+
const park = shortfallParkRefusingRework(delivery);
|
|
170
|
+
if (!park) {
|
|
171
|
+
for (const key of loggedParks)
|
|
172
|
+
if (key.startsWith(`${delivery.id}@`))
|
|
173
|
+
loggedParks.delete(key);
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
const key = `${delivery.id}@${park.parkedAt}`;
|
|
177
|
+
if (!loggedParks.has(key)) {
|
|
178
|
+
loggedParks.add(key);
|
|
179
|
+
log.info(`[listener] Delivery "${delivery.name}" left in verify despite open work: parked on a repeating verify shortfall ` +
|
|
180
|
+
`(nodes ${park.nodeIds.join(', ')}, parked ${park.parkedAt}) -- not routed to verify_failed until verify re-judges ` +
|
|
181
|
+
`a changed delivery commit set or a ruling`);
|
|
182
|
+
}
|
|
183
|
+
return true;
|
|
184
|
+
}
|
|
154
185
|
/** `${deliveryId}@${sha}` gate waits already logged (one line per wait, not one per poll). */
|
|
155
186
|
const loggedGateWaits = new Set();
|
|
156
187
|
/**
|
|
@@ -191,6 +222,49 @@ async function writeVerifyFailedRoute(write, gate, config, focus, delivery, rout
|
|
|
191
222
|
const gateState = await openWorkReworkGateState(gate, { productId: config.productId, focusId: focus.focusId }, { read_only: focus.readOnly }, delivery, judgedSha);
|
|
192
223
|
await write(delivery.id, route.target, route.stageId, gateState, undefined, { organizationId: config.organizationId, fromStatus: 'verify' });
|
|
193
224
|
}
|
|
225
|
+
/**
|
|
226
|
+
* Review-window single-writer discipline: while a focus has an open review
|
|
227
|
+
* window (review_requested_at set), the live reconciler must NOT apply
|
|
228
|
+
* verify -> verify_failed to that focus's deliveries. A review agent's own
|
|
229
|
+
* first defect filing would otherwise regress the delivery mid-pass, cascade
|
|
230
|
+
* the phase to coding, and cancel the review -- so only find-nothing reviews
|
|
231
|
+
* ever complete. Defects filed during the pass accumulate and route once, at
|
|
232
|
+
* review exit, via the deterministic review-exit router
|
|
233
|
+
* (completion/review-exit-phase.ts runReviewExitHandler). The suppression is
|
|
234
|
+
* per-focus (keyed on that focus's review_requested_at), NOT global: deliveries
|
|
235
|
+
* of OTHER focuses with no open window still route promptly in this same tick.
|
|
236
|
+
* Read-only focuses run no gate, so the in-flight wait never applies to them.
|
|
237
|
+
*
|
|
238
|
+
* Routed: each focus with an executing team of this product, AND each active
|
|
239
|
+
* focus with NO team. A teamless verify delivery holding open work -- the rework
|
|
240
|
+
* Bug a failed gate verdict files (verify/verification-rework-issue.ts) -- is
|
|
241
|
+
* otherwise never routed: no coding team spawns while it sits in verify
|
|
242
|
+
* (getReadyFocuses reads queued/coding), so the failure would wait for an operator.
|
|
243
|
+
*/
|
|
244
|
+
async function resolveOpenWorkTargets(config, activeTeams, readFocuses) {
|
|
245
|
+
const out = { targets: [], reviewWindowFocusIds: new Set(), readOnlyFocusIds: new Set() };
|
|
246
|
+
for (const [focusId, team] of activeTeams) {
|
|
247
|
+
// Only this product's executing teams -- one product's poll must not modify another's deliveries.
|
|
248
|
+
if (team.phase === 'executing' && team.productId === config.productId)
|
|
249
|
+
out.targets.push({ focusId, focusName: team.focusName, teamless: false });
|
|
250
|
+
}
|
|
251
|
+
try {
|
|
252
|
+
for (const f of await readFocuses(config.organizationId, config.productId)) {
|
|
253
|
+
if (!activeTeams.has(f.focus_id))
|
|
254
|
+
out.targets.push({ focusId: f.focus_id, focusName: f.focus_name, teamless: true });
|
|
255
|
+
if (f.review_requested_at)
|
|
256
|
+
out.reviewWindowFocusIds.add(f.focus_id);
|
|
257
|
+
if (f.read_only === true)
|
|
258
|
+
out.readOnlyFocusIds.add(f.focus_id);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
catch (err) {
|
|
262
|
+
// On a read failure, fall through with empty sets (pre-existing behavior:
|
|
263
|
+
// every team focus routes; no teamless one does). The review-exit router remains the backstop writer.
|
|
264
|
+
log.warn(`[listener] Failed to resolve review-window focuses for verify open-issue check: ${err.message}`);
|
|
265
|
+
}
|
|
266
|
+
return out;
|
|
267
|
+
}
|
|
194
268
|
export async function checkVerifyDeliveriesForOpenIssues(config, deps = {}) {
|
|
195
269
|
const createEscalation = deps.createEscalation ?? defaultCreateEscalation;
|
|
196
270
|
const _getActiveFocuses = deps.getActiveFocuses ?? getActiveFocuses;
|
|
@@ -201,48 +275,16 @@ export async function checkVerifyDeliveriesForOpenIssues(config, deps = {}) {
|
|
|
201
275
|
const _updateIssueStatus = deps.updateIssueStatus ?? updateIssueStatus;
|
|
202
276
|
const gate = deps.gate ?? commitGateSeams;
|
|
203
277
|
const activeTeams = (deps.getActiveTeams ?? getActiveTeams)();
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
// window (review_requested_at set), the live reconciler must NOT apply
|
|
208
|
-
// verify -> verify_failed to that focus's deliveries. A review agent's own
|
|
209
|
-
// first defect filing would otherwise regress the delivery mid-pass, cascade
|
|
210
|
-
// the phase to coding, and cancel the review -- so only find-nothing reviews
|
|
211
|
-
// ever complete. Defects filed during the pass accumulate and route once, at
|
|
212
|
-
// review exit, via the deterministic review-exit router
|
|
213
|
-
// (completion/review-exit-phase.ts runReviewExitHandler). The suppression is
|
|
214
|
-
// per-focus (keyed on that focus's review_requested_at), NOT global: deliveries
|
|
215
|
-
// of OTHER focuses with no open window still route promptly in this same tick.
|
|
216
|
-
const reviewWindowFocusIds = new Set();
|
|
217
|
-
// Read-only focuses run no gate, so the in-flight wait never applies to them.
|
|
218
|
-
const readOnlyFocusIds = new Set();
|
|
219
|
-
try {
|
|
220
|
-
const focuses = await _getActiveFocuses(config.organizationId, config.productId);
|
|
221
|
-
for (const f of focuses) {
|
|
222
|
-
if (f.review_requested_at)
|
|
223
|
-
reviewWindowFocusIds.add(f.focus_id);
|
|
224
|
-
if (f.read_only === true)
|
|
225
|
-
readOnlyFocusIds.add(f.focus_id);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
catch (err) {
|
|
229
|
-
// On a read failure, fall through with an empty set (pre-existing behavior:
|
|
230
|
-
// every focus routes). The review-exit router remains the backstop writer.
|
|
231
|
-
log.warn(`[listener] Failed to resolve review-window focuses for verify open-issue check: ${err.message}`);
|
|
232
|
-
}
|
|
233
|
-
for (const [focusId, team] of activeTeams) {
|
|
234
|
-
if (team.phase !== 'executing')
|
|
235
|
-
continue;
|
|
236
|
-
// Only operate on teams belonging to this product — without this guard,
|
|
237
|
-
// one product's poll cycle would modify another product's issues/deliveries.
|
|
238
|
-
if (team.productId !== config.productId)
|
|
239
|
-
continue;
|
|
278
|
+
const { targets, reviewWindowFocusIds, readOnlyFocusIds } = await resolveOpenWorkTargets(config, activeTeams, _getActiveFocuses);
|
|
279
|
+
for (const team of targets) {
|
|
280
|
+
const { focusId } = team;
|
|
240
281
|
// Suppress the live verify -> verify_failed write for a focus whose review
|
|
241
282
|
// window is open; the review-exit router owns the transition during the
|
|
242
283
|
// window (batching all filed defects at exit). Per-focus, never global.
|
|
243
284
|
if (reviewWindowFocusIds.has(focusId)) {
|
|
244
|
-
|
|
245
|
-
`
|
|
285
|
+
if (!team.teamless)
|
|
286
|
+
log.info(`[listener] Skipping verify open-issue routing for focus ${focusId} ` +
|
|
287
|
+
`("${team.focusName}"): review window open -- defects route at review exit.`);
|
|
246
288
|
continue;
|
|
247
289
|
}
|
|
248
290
|
try {
|
|
@@ -263,9 +305,9 @@ export async function checkVerifyDeliveriesForOpenIssues(config, deps = {}) {
|
|
|
263
305
|
await autoCloseContextGroups(contextGroups, _updateIssueStatus, log);
|
|
264
306
|
continue;
|
|
265
307
|
}
|
|
266
|
-
//
|
|
308
|
+
// Never routed while parked; a gate run for the focus commit pending with no verdict is read first (module header).
|
|
267
309
|
const judgedSha = readJudgedCommit(gate, focusId);
|
|
268
|
-
if (await waitsOnInFlightGateRun(gate, config, { focusId, readOnly: readOnlyFocusIds.has(focusId) }, delivery, judgedSha))
|
|
310
|
+
if (refusesOpenWorkRouteOnPark(delivery) || await waitsOnInFlightGateRun(gate, config, { focusId, readOnly: readOnlyFocusIds.has(focusId) }, delivery, judgedSha))
|
|
269
311
|
continue;
|
|
270
312
|
// Route verify -> verify_failed through the single-writer reconciler.
|
|
271
313
|
// Open work on a verify delivery is the trigger; the reconciler agrees
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-open-issues.js","sourceRoot":"","sources":["../../src/focus/verify-open-issues.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"verify-open-issues.js","sourceRoot":"","sources":["../../src/focus/verify-open-issues.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ONE rule for bringing a focus branch current with integration. Every daemon
|
|
3
|
+
* step that moves a focus branch onto integration asks it first:
|
|
4
|
+
*
|
|
5
|
+
* - 'merge-out' git/merge.ts mergeBackFromIntegration (the "merge
|
|
6
|
+
* origin/integration" before a focus merges out: merge-back
|
|
7
|
+
* loop, team-exit merge, resolved-conflict retry);
|
|
8
|
+
* - 'adopt' focus/focus-lifecycle.ts, adopting an existing worktree;
|
|
9
|
+
* - 'provision' worktree/provision.ts, a worktree added on an existing branch;
|
|
10
|
+
* - 'coding-spawn' spawn/worktree-session.ts, a coding team starting on a reused worktree.
|
|
11
|
+
*
|
|
12
|
+
* A focus that carries commits of its own is moved as before: its own delta is
|
|
13
|
+
* what verify attributes and review judges, whatever integration base it sits on.
|
|
14
|
+
*
|
|
15
|
+
* A focus with NO own delta (every commit already on integration) is NOT moved by
|
|
16
|
+
* merge-out, adopt or provision. Moving it only fast-forwards it to the
|
|
17
|
+
* integration tip -- a copy of integration, which verify and review would then
|
|
18
|
+
* judge in the focus's place (2026-09-17, Tinker Tailor: an 11:47 merge-out
|
|
19
|
+
* fast-forward onto a sibling's commit and a 12:25 adopt rebase onto the tip;
|
|
20
|
+
* the sibling's failures were charged to the focus and its reviews covered
|
|
21
|
+
* foreign-only ranges). Merge-out has nothing to merge; adopt and provision start
|
|
22
|
+
* no work.
|
|
23
|
+
*
|
|
24
|
+
* A coding spawn IS moved: a team starting new work needs the current base, or
|
|
25
|
+
* its commits land on a stale one and conflict at merge-out. What the focus
|
|
26
|
+
* already had judged stays judged on its own commits -- a verify at the moved
|
|
27
|
+
* head carries the verdict its own commits earned (verify/no-own-delta-verdict.ts)
|
|
28
|
+
* and a review over only foreign commits is declined
|
|
29
|
+
* (completion/review-approved-head-gate.ts, focus/review-spawn-coverage.ts) --
|
|
30
|
+
* and the commits it moves onto are integration's, each already through its own
|
|
31
|
+
* focus's merge gate.
|
|
32
|
+
*
|
|
33
|
+
* An unreadable delta moves the branch as before (the pre-rule behaviour).
|
|
34
|
+
*
|
|
35
|
+
* @module git/focus-integration-sync
|
|
36
|
+
*/
|
|
37
|
+
import { type FocusOwnDelta } from './focus-own-delta.js';
|
|
38
|
+
/** Which step is asking to bring the focus branch current. */
|
|
39
|
+
export type FocusSyncPurpose = 'merge-out' | 'adopt' | 'provision' | 'coding-spawn';
|
|
40
|
+
/** Whether to move the focus branch onto integration, and why. */
|
|
41
|
+
export interface FocusSyncDecision {
|
|
42
|
+
move: boolean;
|
|
43
|
+
reason: string;
|
|
44
|
+
}
|
|
45
|
+
/** Decide whether `purpose` may move the focus branch in `worktreePath` onto integration (module doc). */
|
|
46
|
+
export declare function decideFocusIntegrationSync(worktreePath: string, integrationBranch: string, purpose: FocusSyncPurpose, readDelta?: (worktreePath: string, integrationBranch: string) => FocusOwnDelta): FocusSyncDecision;
|
|
47
|
+
/** What bringFocusCurrent did: held the branch, rebased it, or aborted a failed rebase. */
|
|
48
|
+
export interface FocusSyncOutcome {
|
|
49
|
+
decision: FocusSyncDecision;
|
|
50
|
+
result: 'held' | 'rebased' | 'rebase-aborted';
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* The rebase-shaped sync step (adopt, provision, coding spawn): ask the rule, then
|
|
54
|
+
* `git rebase <integrationBranch>` only when it allows, aborting a failed rebase so
|
|
55
|
+
* the branch keeps its state. Merge-out merges instead, so it reads the decision
|
|
56
|
+
* directly (git/merge.ts).
|
|
57
|
+
*/
|
|
58
|
+
export declare function bringFocusCurrent(worktreePath: string, integrationBranch: string, purpose: Exclude<FocusSyncPurpose, 'merge-out'>, run?: (args: string[], cwd: string) => {
|
|
59
|
+
success: boolean;
|
|
60
|
+
}, readDelta?: (worktreePath: string, integrationBranch: string) => FocusOwnDelta): FocusSyncOutcome;
|
|
61
|
+
//# sourceMappingURL=focus-integration-sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus-integration-sync.d.ts","sourceRoot":"","sources":["../../src/git/focus-integration-sync.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG7E,8DAA8D;AAC9D,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,GAAG,cAAc,CAAC;AAEpF,kEAAkE;AAClE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,0GAA0G;AAC1G,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,MAAM,EACzB,OAAO,EAAE,gBAAgB,EACzB,SAAS,GAAE,CAAC,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,KAAK,aAAiC,GAChG,iBAAiB,CAYnB;AAED,2FAA2F;AAC3F,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,gBAAgB,CAAC;CAC/C;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,MAAM,EACzB,OAAO,EAAE,OAAO,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAC/C,GAAG,GAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK;IAAE,OAAO,EAAE,OAAO,CAAA;CAAe,EACvE,SAAS,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,KAAK,aAAa,GAC7E,gBAAgB,CAMlB"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
+
// Pinned by: packages/daemon/src/git/focus-integration-sync.test.ts
|
|
3
|
+
// PINNED-BY-END
|
|
4
|
+
/**
|
|
5
|
+
* The ONE rule for bringing a focus branch current with integration. Every daemon
|
|
6
|
+
* step that moves a focus branch onto integration asks it first:
|
|
7
|
+
*
|
|
8
|
+
* - 'merge-out' git/merge.ts mergeBackFromIntegration (the "merge
|
|
9
|
+
* origin/integration" before a focus merges out: merge-back
|
|
10
|
+
* loop, team-exit merge, resolved-conflict retry);
|
|
11
|
+
* - 'adopt' focus/focus-lifecycle.ts, adopting an existing worktree;
|
|
12
|
+
* - 'provision' worktree/provision.ts, a worktree added on an existing branch;
|
|
13
|
+
* - 'coding-spawn' spawn/worktree-session.ts, a coding team starting on a reused worktree.
|
|
14
|
+
*
|
|
15
|
+
* A focus that carries commits of its own is moved as before: its own delta is
|
|
16
|
+
* what verify attributes and review judges, whatever integration base it sits on.
|
|
17
|
+
*
|
|
18
|
+
* A focus with NO own delta (every commit already on integration) is NOT moved by
|
|
19
|
+
* merge-out, adopt or provision. Moving it only fast-forwards it to the
|
|
20
|
+
* integration tip -- a copy of integration, which verify and review would then
|
|
21
|
+
* judge in the focus's place (2026-09-17, Tinker Tailor: an 11:47 merge-out
|
|
22
|
+
* fast-forward onto a sibling's commit and a 12:25 adopt rebase onto the tip;
|
|
23
|
+
* the sibling's failures were charged to the focus and its reviews covered
|
|
24
|
+
* foreign-only ranges). Merge-out has nothing to merge; adopt and provision start
|
|
25
|
+
* no work.
|
|
26
|
+
*
|
|
27
|
+
* A coding spawn IS moved: a team starting new work needs the current base, or
|
|
28
|
+
* its commits land on a stale one and conflict at merge-out. What the focus
|
|
29
|
+
* already had judged stays judged on its own commits -- a verify at the moved
|
|
30
|
+
* head carries the verdict its own commits earned (verify/no-own-delta-verdict.ts)
|
|
31
|
+
* and a review over only foreign commits is declined
|
|
32
|
+
* (completion/review-approved-head-gate.ts, focus/review-spawn-coverage.ts) --
|
|
33
|
+
* and the commits it moves onto are integration's, each already through its own
|
|
34
|
+
* focus's merge gate.
|
|
35
|
+
*
|
|
36
|
+
* An unreadable delta moves the branch as before (the pre-rule behaviour).
|
|
37
|
+
*
|
|
38
|
+
* @module git/focus-integration-sync
|
|
39
|
+
*/
|
|
40
|
+
import { readFocusOwnDelta } from './focus-own-delta.js';
|
|
41
|
+
import { runGitSync } from './types.js';
|
|
42
|
+
/** Decide whether `purpose` may move the focus branch in `worktreePath` onto integration (module doc). */
|
|
43
|
+
export function decideFocusIntegrationSync(worktreePath, integrationBranch, purpose, readDelta = readFocusOwnDelta) {
|
|
44
|
+
const delta = readDelta(worktreePath, integrationBranch);
|
|
45
|
+
if (delta.kind === 'ahead')
|
|
46
|
+
return { move: true, reason: `the focus carries ${delta.commits} commit(s) of its own` };
|
|
47
|
+
if (delta.kind === 'unknown')
|
|
48
|
+
return { move: true, reason: `its own delta is unreadable (${delta.reason}); moving as before` };
|
|
49
|
+
if (purpose === 'coding-spawn') {
|
|
50
|
+
return { move: true, reason: 'no commits of its own; a coding team starts new work on the current integration base' };
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
move: false,
|
|
54
|
+
reason: `every commit of the focus is already on ${integrationBranch}: moving it would only make it a copy of `
|
|
55
|
+
+ `the integration tip, judged in the focus's place`,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* The rebase-shaped sync step (adopt, provision, coding spawn): ask the rule, then
|
|
60
|
+
* `git rebase <integrationBranch>` only when it allows, aborting a failed rebase so
|
|
61
|
+
* the branch keeps its state. Merge-out merges instead, so it reads the decision
|
|
62
|
+
* directly (git/merge.ts).
|
|
63
|
+
*/
|
|
64
|
+
export function bringFocusCurrent(worktreePath, integrationBranch, purpose, run = runGitSync, readDelta) {
|
|
65
|
+
const decision = decideFocusIntegrationSync(worktreePath, integrationBranch, purpose, readDelta);
|
|
66
|
+
if (!decision.move)
|
|
67
|
+
return { decision, result: 'held' };
|
|
68
|
+
if (run(['rebase', integrationBranch], worktreePath).success)
|
|
69
|
+
return { decision, result: 'rebased' };
|
|
70
|
+
run(['rebase', '--abort'], worktreePath);
|
|
71
|
+
return { decision, result: 'rebase-aborted' };
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=focus-integration-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus-integration-sync.js","sourceRoot":"","sources":["../../src/git/focus-integration-sync.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,oEAAoE;AACpE,gBAAgB;AAEhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAE,iBAAiB,EAAsB,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAWxC,0GAA0G;AAC1G,MAAM,UAAU,0BAA0B,CACxC,YAAoB,EACpB,iBAAyB,EACzB,OAAyB,EACzB,YAAgF,iBAAiB;IAEjG,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IACzD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,qBAAqB,KAAK,CAAC,OAAO,uBAAuB,EAAE,CAAC;IACrH,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,gCAAgC,KAAK,CAAC,MAAM,qBAAqB,EAAE,CAAC;IAC/H,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,sFAAsF,EAAE,CAAC;IACxH,CAAC;IACD,OAAO;QACL,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,2CAA2C,iBAAiB,2CAA2C;cAC3G,kDAAkD;KACvD,CAAC;AACJ,CAAC;AAQD;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAAoB,EACpB,iBAAyB,EACzB,OAA+C,EAC/C,MAA6D,UAAU,EACvE,SAA8E;IAE9E,MAAM,QAAQ,GAAG,0BAA0B,CAAC,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACjG,IAAI,CAAC,QAAQ,CAAC,IAAI;QAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACxD,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,iBAAiB,CAAC,EAAE,YAAY,CAAC,CAAC,OAAO;QAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACrG,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,CAAC;IACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type ReviewWindowCommit } from '../resolvers/shared/review-window-commits.js';
|
|
2
|
+
/** Whether a focus branch carries commits of its own that integration lacks. */
|
|
3
|
+
export type FocusOwnDelta = {
|
|
4
|
+
kind: 'ahead';
|
|
5
|
+
commits: number;
|
|
6
|
+
} | {
|
|
7
|
+
kind: 'none';
|
|
8
|
+
} | {
|
|
9
|
+
kind: 'unknown';
|
|
10
|
+
reason: string;
|
|
11
|
+
};
|
|
12
|
+
/** Git seams (overridable for tests). */
|
|
13
|
+
export interface FocusOwnDeltaGit {
|
|
14
|
+
run: (args: string[], cwd: string) => {
|
|
15
|
+
success: boolean;
|
|
16
|
+
output: string;
|
|
17
|
+
};
|
|
18
|
+
listWindow: (cwd: string, base: string, tip: string) => readonly ReviewWindowCommit[] | null;
|
|
19
|
+
/** The raw reflog of `ref` (a full ref name), null when it cannot be read. */
|
|
20
|
+
readReflog: (cwd: string, ref: string) => string | null;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Count the commits on `ref` (default HEAD) that neither the local integration
|
|
24
|
+
* branch nor its origin counterpart contains. 'none' when either contains them all.
|
|
25
|
+
*/
|
|
26
|
+
export declare function readFocusOwnDelta(worktreePath: string, integrationBranch: string, ref?: string, git?: FocusOwnDeltaGit): FocusOwnDelta;
|
|
27
|
+
/** Which focus branch to read provenance from, and the git seams. */
|
|
28
|
+
export interface ForeignOnlyExtensionOptions {
|
|
29
|
+
/** The focus branch (name or full ref). Default: the branch checked out at `worktreePath`. */
|
|
30
|
+
focusBranch?: string;
|
|
31
|
+
git?: FocusOwnDeltaGit;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Whether `tip` adds nothing of the focus's own on top of `anchor` (module doc).
|
|
35
|
+
* `ownDeliveryIds` are the focus's delivery ids; an empty set proves nothing foreign.
|
|
36
|
+
*/
|
|
37
|
+
export declare function isForeignOnlyExtension(worktreePath: string, integrationBranch: string, anchor: string, tip: string, ownDeliveryIds: ReadonlySet<string>, options?: ForeignOnlyExtensionOptions): boolean;
|
|
38
|
+
//# sourceMappingURL=focus-own-delta.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus-own-delta.d.ts","sourceRoot":"","sources":["../../src/git/focus-own-delta.ts"],"names":[],"mappings":"AAoDA,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,8CAA8C,CAAC;AAEtD,gFAAgF;AAChF,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC,yCAAyC;AACzC,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3E,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,SAAS,kBAAkB,EAAE,GAAG,IAAI,CAAC;IAC7F,8EAA8E;IAC9E,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CACzD;AAmBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,MAAM,EACzB,GAAG,SAAS,EACZ,GAAG,GAAE,gBAA6B,GACjC,aAAa,CAYf;AAED,qEAAqE;AACrE,MAAM,WAAW,2BAA2B;IAC1C,8FAA8F;IAC9F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,MAAM,EACzB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,EACnC,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAWT"}
|