Support deferred plan implementation in draft threads#1319
Support deferred plan implementation in draft threads#1319TaylorJonesTRT wants to merge 1 commit intopingdotgg:mainfrom
Conversation
- Create implementation drafts from proposed plans instead of sending immediately - Persist deferred plan metadata in composer drafts - Add browser coverage for selecting provider/model and dispatching the deferred turn
|
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 Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
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 Tip CodeRabbit can suggest fixes for GitHub Check annotations.Configure the |
What Changed
"Implement in a new thread"to create a local implementation draft instead of immediately dispatchingthread.createandthread.turn.start.ImplementCTA.sourceProposedPlanwhen starting the deferred implementation turn.Why
The previous flow started a new server thread immediately, which locked in the source thread’s adapter choice before the user could review or change it, which made sense when only one adapter was available. That made
"Implement in a new thread"inconsistent with the draft-thread model used elsewhere and prevented switching to another provider, including Claude, before sending which some users may prefer (Planning in Opus / Implementing in Gpt 5.4, or vice versa).This change moves the action into the existing local-draft flow so the implementation prompt is still prefilled, but the user keeps control over the first-send configuration. It also preserves the original proposed-plan linkage by deferring
sourceProposedPlanuntil the implementation turn actually starts.UI Changes
"Implement in a new thread"now navigates to a draft-thread route with the implementation prompt prefilled instead of starting work immediately.Implementbutton.Images and Gif Video
Gif video due to my FFmpeg install being broken







Checklist
Note
Defer plan implementation into a draft thread until the user clicks 'Implement'
deferredPlanImplementationmetadata (source thread ID, plan ID, plan markdown); when the user clicks 'Implement', the app dispatchesthread.createthenthread.turn.startwithsourceProposedPlanattached.composerDraftStoregainscreateProjectDraftThreadandsetDeferredPlanImplementationAPIs, bumps its storage version to 3, and persists/hydrates deferred metadata; drafts containing only deferred metadata are preserved instead of pruned.ComposerPlanFollowUpBannerand an 'Implement' submit button during deferred state, and allows sending even when the text field is otherwise empty (prompt is seeded from the plan).onImplementPlanInNewThreadno longer creates a server thread immediately; server work is deferred until the user explicitly submits the draft.Macroscope summarized 0d67869.