You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(recovery): skip recovery for issues with scheduled future monitors
Both the post-run handoff decision (decideSuccessfulRunHandoff) and the
periodic stranded-issue sweep (reconcileStrandedAssignedIssues) were
classifying in_progress issues with succeeded runs as "missing disposition"
even when the issue had a future monitorNextCheckAt. This caused false-positive
recovery loops on deliberately-parked issues (e.g., LinkedIn content calendar
posts waiting for a publish-runner routine).
The issue-graph-liveness system already had hasScheduledMonitor() that
correctly skipped such issues, but these two other recovery paths did not.
Changes:
- Add hasScheduledMonitor boolean to decideSuccessfulRunHandoff input type
and skip when true
- Select monitorNextCheckAt in handleSuccessfulRunHandoff issue query and
pass it to the decision function
- Add monitorNextCheckAt > now check in reconcileStrandedAssignedIssues
after the hasActiveExecutionPath guard
- Unit test for the new skip in successful-run-handoff.test.ts
- Two integration tests in heartbeat-process-recovery.test.ts covering
both the handoff and sweep paths
Co-Authored-By: Claude Opus 4.6 <[email protected]>
0 commit comments