From 21f1dc336670da1c678369a1aa09fe867b2ffb48 Mon Sep 17 00:00:00 2001 From: Stefan Haller Date: Fri, 3 Jul 2026 14:21:31 +0200 Subject: [PATCH] Bounce TAGS model updates onto the UI thread refreshTags now captures the repo generation, loads the tags on the worker, and writes Model.Tags in an onUIThreadUnlessRepoChanged bounce rather than directly from the worker goroutine. Co-Authored-By: Claude Sonnet 5 --- pkg/gui/controllers/helpers/refresh_helper.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkg/gui/controllers/helpers/refresh_helper.go b/pkg/gui/controllers/helpers/refresh_helper.go index 2fda422bc..e610fef13 100644 --- a/pkg/gui/controllers/helpers/refresh_helper.go +++ b/pkg/gui/controllers/helpers/refresh_helper.go @@ -666,12 +666,17 @@ func (self *RefreshHelper) refreshRebaseCommits() error { } func (self *RefreshHelper) refreshTags() error { + generation := self.c.State().GetRepoGeneration() + tags, err := self.c.Git().Loaders.TagLoader.GetTags() if err != nil { return err } - self.c.Model().Tags = tags + self.onUIThreadUnlessRepoChanged(generation, func() error { + self.c.Model().Tags = tags + return nil + }) self.refreshView(self.c.Contexts().Tags) return nil