From d151ac9feb04bedd1f6d8ddb15dd918402b4f62e Mon Sep 17 00:00:00 2001 From: AJ Meireles Date: Fri, 19 Jun 2026 15:18:19 -0300 Subject: [PATCH] feat(worktree): add a "create multiple" toggle to the worktree composer Add a checkbox to the New Workspace Composer ("Create worktree") modal. When enabled, creating a worktree keeps the modal open and clears the identity fields (name, prompt, note, attachments, linked GitHub/GitLab issues and PRs, branch override, and the Start-from-derived compare base and push target) while retaining context (repository, base branch, agent, project group). This lets users spin up several worktrees from the same repo in a row without reopening the dialog. The toggle defaults off and, because the modal unmounts on close, always reopens unchecked. It is shown only for git (worktree) targets; folder-workspace creation keeps its create-and-close behavior. --- .../components/NewWorkspaceComposerCard.tsx | 45 +++++++++++++- src/renderer/src/hooks/useComposerState.ts | 60 ++++++++++++++++++- src/renderer/src/i18n/locales/en.json | 1 + src/renderer/src/i18n/locales/es.json | 3 +- src/renderer/src/i18n/locales/ja.json | 3 +- src/renderer/src/i18n/locales/ko.json | 3 +- src/renderer/src/i18n/locales/zh.json | 3 +- 7 files changed, 111 insertions(+), 7 deletions(-) diff --git a/src/renderer/src/components/NewWorkspaceComposerCard.tsx b/src/renderer/src/components/NewWorkspaceComposerCard.tsx index f4304dbe9c3..3aa6311ab18 100644 --- a/src/renderer/src/components/NewWorkspaceComposerCard.tsx +++ b/src/renderer/src/components/NewWorkspaceComposerCard.tsx @@ -88,6 +88,10 @@ type NewWorkspaceComposerCardProps = { canReuseSelectedBranch: boolean reuseSelectedBranch: boolean onReuseSelectedBranchChange: (next: boolean) => void + /** Shows the footer "create another after this" toggle — worktree targets only. */ + showCreateMultiple?: boolean + createMultiple?: boolean + onCreateMultipleChange?: (next: boolean) => void smartNameGitHubSourceContext?: TaskSourceContext | null /** Advisory shown under the name field when a fork PR can't accept maintainer pushes. */ forkPushWarning: string | null @@ -324,6 +328,9 @@ export default function NewWorkspaceComposerCard({ canReuseSelectedBranch, reuseSelectedBranch, onReuseSelectedBranchChange, + showCreateMultiple = false, + createMultiple = false, + onCreateMultipleChange, smartNameGitHubSourceContext, forkPushWarning, detectedAgentIds, @@ -1002,7 +1009,43 @@ export default function NewWorkspaceComposerCard({ ) : null} -
+
+ {showCreateMultiple ? ( + + ) : null}