From 2391a0f06584b6925e4071826112e8caacc11975 Mon Sep 17 00:00:00 2001 From: "roomote[bot]" <219738659+roomote[bot]@users.noreply.github.com> Date: Mon, 26 Jan 2026 23:10:23 -0500 Subject: [PATCH] fix: use --force by default when deleting worktrees (#10986) Co-authored-by: Roo Code --- .../components/worktrees/DeleteWorktreeModal.tsx | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/webview-ui/src/components/worktrees/DeleteWorktreeModal.tsx b/webview-ui/src/components/worktrees/DeleteWorktreeModal.tsx index 3f40c73ff6..9e3f4802d5 100644 --- a/webview-ui/src/components/worktrees/DeleteWorktreeModal.tsx +++ b/webview-ui/src/components/worktrees/DeleteWorktreeModal.tsx @@ -18,7 +18,7 @@ export const DeleteWorktreeModal = ({ open, onClose, worktree, onSuccess }: Dele const { t } = useAppTranslation() const [isDeleting, setIsDeleting] = useState(false) - const [forceDelete, setForceDelete] = useState(false) + const [forceDeleteLocked, setForceDeleteLocked] = useState(false) const [error, setError] = useState(null) useEffect(() => { @@ -44,12 +44,15 @@ export const DeleteWorktreeModal = ({ open, onClose, worktree, onSuccess }: Dele setError(null) setIsDeleting(true) + // Always force delete unless worktree is locked and user hasn't opted in + const shouldForce = worktree.isLocked ? forceDeleteLocked : true + vscode.postMessage({ type: "deleteWorktree", worktreePath: worktree.path, - worktreeForce: forceDelete, + worktreeForce: shouldForce, }) - }, [worktree.path, forceDelete]) + }, [worktree.path, worktree.isLocked, forceDeleteLocked]) return ( !isOpen && onClose()}> @@ -90,13 +93,13 @@ export const DeleteWorktreeModal = ({ open, onClose, worktree, onSuccess }: Dele - {/* Force delete option (if worktree is locked) */} + {/* Force delete option (only shown if worktree is locked) */} {worktree.isLocked && (
setForceDelete(checked === true)} + checked={forceDeleteLocked} + onCheckedChange={(checked) => setForceDeleteLocked(checked === true)} />