FE-1114: Add executor replanning guards#300
Conversation
PR SummaryMedium Risk Overview Plan freshness: Replanning core: New helpers classify run freshness, retry eligibility, human recommendations, superseding run creation ( Execute tools: Projection tweak: Non–requirement-to-requirement dependency edges no longer block plan readiness as “unprojected”; only requirement-to-requirement edges become slice Observability: Run list/detail (and related cards) expose Reviewed by Cursor Bugbot for commit 28e2d4d. Bugbot is set up for automated code reviews on this repo. Configure here. |
df9d7ab to
4adf20e
Compare
This stack of pull requests is managed by Graphite. Learn more about stacking. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 8c44dc8. Configure here.


Why
Executor runs could be launched or retried from an old saved plan after the spec graph changed. This makes freshness explicit and gives the human a safe recovery path instead of mutating or deleting prior run evidence.
What
plan.yamlfiles; blocks launch/run creation when the saved plan is stale, missing provenance, projection-blocked, or mismatched with the current graph projection.execute_replan_recommendationtool with diagnosis text plus allowed/recommended HITL actions.supersedesRunId), retry exactly one safe current step, regenerate an early stale plan, and abandon an active run while preserving artifacts.supersedesRunId,abandonedAt, andabandonReasonin run list/detail projections and web run views.How to test from the TUI
execute_plan_file.execute_launch; it should refuse the old plan as stale instead of reporting ready.execute_replan_recommendationon an existing run, then choose the suggested recovery tool (execute_replan_start_new_run,execute_replan_retry_current_step,execute_replan_regenerate_plan, orexecute_replan_abandon_run)./runsview and confirm linked/abandoned run metadata is visible.Verification
npm run verify