Migrate the knowledge fetch onto runFetchAsync

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-01 18:06:09 -04:00
parent db0d11ea2e
commit fbbff6966d
+7 -13
View File
@@ -181,16 +181,12 @@ func (c *Controller) startKnowledgeFetchLocked() {
c.knowledgeStatus = knowledgePending c.knowledgeStatus = knowledgePending
src := c.knowledgeSrc src := c.knowledgeSrc
path := c.knowledgePath path := c.knowledgePath
go func() { var prof knowledge.Profile
ctx, cancel := context.WithTimeout(context.Background(), knowledgeTimeout) var err error
defer cancel() c.runFetchAsync(knowledgeTimeout,
prof, err := src.Load(ctx, path) func(ctx context.Context) { prof, err = src.Load(ctx, path) },
func() bool { return gen != c.knowledgeGen || c.runtimeState != domain.RuntimePlanning },
c.mu.Lock() func() {
if gen != c.knowledgeGen || c.runtimeState != domain.RuntimePlanning {
c.mu.Unlock()
return // stale or left planning: discard
}
if err != nil { if err != nil {
c.knowledgeStatus = knowledgeError c.knowledgeStatus = knowledgeError
c.knowledgeText = "" c.knowledgeText = ""
@@ -209,9 +205,7 @@ func (c *Controller) startKnowledgeFetchLocked() {
c.knowledgeChars = len(prof.Text) c.knowledgeChars = len(prof.Text)
c.knowledgePath = prof.Path c.knowledgePath = prof.Path
} }
c.mu.Unlock() })
c.notify()
}()
} }
// SetReviewer injects the AI reviewer. A nil reviewer keeps reflection idle and // SetReviewer injects the AI reviewer. A nil reviewer keeps reflection idle and