From ccf49c8112407c2788aa96469a1aa61f299a5db2 Mon Sep 17 00:00:00 2001 From: Stefan Haller Date: Mon, 6 Jul 2026 11:55:28 +0200 Subject: [PATCH] Show a waiting status when editing a commit Setting a single commit to "edit" ran the interactive rebase inline on the UI thread with no spinner, while its sibling startInteractiveRebaseWithEdit (used when editing multiple commits or quick-starting a rebase) already runs on a worker with a waiting status. Make the direct path match. Co-Authored-By: Claude Opus 4.8 (1M context) --- pkg/gui/controllers/local_commits_controller.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkg/gui/controllers/local_commits_controller.go b/pkg/gui/controllers/local_commits_controller.go index 80f01fc03..9f3acb1d2 100644 --- a/pkg/gui/controllers/local_commits_controller.go +++ b/pkg/gui/controllers/local_commits_controller.go @@ -589,9 +589,11 @@ func (self *LocalCommitsController) edit(selectedCommits []*models.Commit, start commits := self.c.Model().Commits if !commits[endIdx].IsMerge() { - err := self.c.Git().Rebase.InteractiveRebase(commits, startIdx, endIdx, todo.Edit, "") - return self.c.Helpers().MergeAndRebase.CheckMergeOrRebaseWithRefreshOptions( - err, types.RefreshOptions{Mode: types.BLOCK_UI}) + return self.c.WithWaitingStatus(self.c.Tr.RebasingStatus, func(gocui.Task) error { + err := self.c.Git().Rebase.InteractiveRebase(commits, startIdx, endIdx, todo.Edit, "") + return self.c.Helpers().MergeAndRebase.CheckMergeOrRebaseWithRefreshOptions( + err, types.RefreshOptions{Mode: types.BLOCK_UI}) + }) } return self.startInteractiveRebaseWithEdit(selectedCommits)