fix: prevent UI lockup when deleting a branch#25
Merged
wesbillman merged 1 commit intomainfrom Feb 10, 2026
Merged
Conversation
Make delete_branch a Tauri async command so the git worktree removal runs on a background thread instead of blocking the main thread. On the frontend, add a 'deleting' state that shows a spinner overlay on the branch card while the backend operation runs. The confirm dialog dismisses immediately, the card shows 'Deleting…', and the card is removed from the list on success. On failure the deleting state is cleared so the card returns to normal.
loganj
added a commit
that referenced
this pull request
Feb 26, 2026
Add In Review section to project page
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Deleting a branch blocks the main thread because
delete_branchruns synchronous git worktree removal on the Tauri main thread. This causes the UI to freeze until the operation completes.Solution
Backend
delete_brancha Tauriasynccommand so the git worktree removal runs on a background thread instead of blocking the main thread.Frontend
deletingstate that shows a spinner overlay on the branch card while the backend operation runs.Changes
src-tauri/src/lib.rs— Markdelete_branchas asyncsrc/lib/BranchCard.svelte— Acceptdeletingprop, render spinner overlay when activesrc/lib/ProjectHome.svelte— TrackdeletingBranchesset, manage async delete lifecyclesrc/lib/ProjectSection.svelte— PassdeletingBranchesthrough toBranchCard