Kaynağa Gözat

fix: use --force by default when deleting worktrees (#10986)

Co-authored-by: Roo Code <[email protected]>
roomote[bot] 2 hafta önce
ebeveyn
işleme
2391a0f065

+ 9 - 6
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<string | null>(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 (
 		<Dialog open={open} onOpenChange={(isOpen: boolean) => !isOpen && onClose()}>
@@ -90,13 +93,13 @@ export const DeleteWorktreeModal = ({ open, onClose, worktree, onSuccess }: Dele
 						</div>
 					</div>
 
-					{/* Force delete option (if worktree is locked) */}
+					{/* Force delete option (only shown if worktree is locked) */}
 					{worktree.isLocked && (
 						<div className="flex items-center gap-2">
 							<Checkbox
 								id="force-delete"
-								checked={forceDelete}
-								onCheckedChange={(checked) => setForceDelete(checked === true)}
+								checked={forceDeleteLocked}
+								onCheckedChange={(checked) => setForceDeleteLocked(checked === true)}
 							/>
 							<label htmlFor="force-delete" className="text-sm text-vscode-foreground cursor-pointer">
 								{t("worktrees:forceDelete")}