@@ -18,7 +18,7 @@ export const DeleteWorktreeModal = ({ open, onClose, worktree, onSuccess }: Dele
1818 const { t } = useAppTranslation ( )
1919
2020 const [ isDeleting , setIsDeleting ] = useState ( false )
21- const [ forceDelete , setForceDelete ] = useState ( false )
21+ const [ forceDeleteLocked , setForceDeleteLocked ] = useState ( false )
2222 const [ error , setError ] = useState < string | null > ( null )
2323
2424 useEffect ( ( ) => {
@@ -44,12 +44,15 @@ export const DeleteWorktreeModal = ({ open, onClose, worktree, onSuccess }: Dele
4444 setError ( null )
4545 setIsDeleting ( true )
4646
47+ // Always force delete unless worktree is locked and user hasn't opted in
48+ const shouldForce = worktree . isLocked ? forceDeleteLocked : true
49+
4750 vscode . postMessage ( {
4851 type : "deleteWorktree" ,
4952 worktreePath : worktree . path ,
50- worktreeForce : forceDelete ,
53+ worktreeForce : shouldForce ,
5154 } )
52- } , [ worktree . path , forceDelete ] )
55+ } , [ worktree . path , worktree . isLocked , forceDeleteLocked ] )
5356
5457 return (
5558 < Dialog open = { open } onOpenChange = { ( isOpen : boolean ) => ! isOpen && onClose ( ) } >
@@ -90,13 +93,13 @@ export const DeleteWorktreeModal = ({ open, onClose, worktree, onSuccess }: Dele
9093 </ div >
9194 </ div >
9295
93- { /* Force delete option (if worktree is locked) */ }
96+ { /* Force delete option (only shown if worktree is locked) */ }
9497 { worktree . isLocked && (
9598 < div className = "flex items-center gap-2" >
9699 < Checkbox
97100 id = "force-delete"
98- checked = { forceDelete }
99- onCheckedChange = { ( checked ) => setForceDelete ( checked === true ) }
101+ checked = { forceDeleteLocked }
102+ onCheckedChange = { ( checked ) => setForceDeleteLocked ( checked === true ) }
100103 />
101104 < label htmlFor = "force-delete" className = "text-sm text-vscode-foreground cursor-pointer" >
102105 { t ( "worktrees:forceDelete" ) }
0 commit comments