Repository navigation
Conversation
Persist Cursor plans behind the ACP plan URI so refinements are projected before implementation starts. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit dc3766c. Configure here.
ApprovabilityVerdict: Needs human review This PR introduces new plan file persistence and syncing capabilities with file I/O, state tracking, and protocol response changes. Despite the 'fix' label, these are significant runtime behavior changes that warrant human review. You can customize Macroscope's approvability policy. Learn more. |
Only deduplicate passive file refreshes so a newly proposed plan remains actionable even when its markdown is unchanged. Co-authored-by: Cursor <cursoragent@cursor.com>
Prevent multiple configured Cursor instances from sharing a thread's backing plan file. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Closing in favor of #2829 (orchestration V2). #2829 deletes the V1 orchestration layer this PR builds on — This is not a judgement on the change itself. Several of these are real gaps we still want fixed; the base just moved out from under them. Once #2829 merges, please rebase onto |

What Changed
planUriWhy
Cursor plan refinements edit the plan file returned by
cursor/create_plan. T3 previously returned a non-contract response without a backing file, so the Implement action could paste the initial plan after the user refined it. Returning the documented outcome and projecting the backing file keeps implementation aligned with the latest accepted plan.Verification
pnpm exec vp test run apps/server/src/provider/acp/CursorAcpExtension.test.ts apps/server/src/provider/Layers/CursorAdapter.test.tspnpm exec vp run --filter t3 typecheckChecklist
Generated with GPT-5.6 Sol in Cursor.
Made with Cursor
Note
Implement three-step refined plan flow in
CursorAdapterfor ACP create-planCursorCreatePlanResponseschema in CursorAcpExtension.ts with a discriminatedoutcomeunion (accepted,rejected,cancelled) including an optionalplanUri.cursor/create_planhandler in CursorAdapter.ts now persists plan markdown to a deterministic file path understateDir/plans/cursor/{instanceId}/{threadId}.mdand returns aplanUrifile URL to the caller.turn.completedevent,syncProposedPlanFromFilereads the backing file and emits aturn.proposed.completedevent, enabling refined plan markdown written during the turn to be surfaced before the turn closes.T3_ACP_EMIT_CREATE_PLAN=1: propose initial plan (captureplanUri), write refined markdown to the file, then re-propose the refined plan.emitProposedPlanCompletedprevents repeatedturn.proposed.completedevents for identical plan content within a session unless forced.Macroscope summarized d646f5d.