From fc8ec7f200393bd5b8f870971c851dca23634fa1 Mon Sep 17 00:00:00 2001 From: Kujtim Hoxha Date: Fri, 20 Jun 2025 11:21:35 +0200 Subject: [PATCH] chore: cancel requests when user closes --- internal/app/app.go | 1 + internal/llm/agent/agent.go | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/internal/app/app.go b/internal/app/app.go index 29c77308111e09f8174ea7f7ceddd30948db8cf1..e7472059a9f3fad360172c353f5d9a188529d177 100644 --- a/internal/app/app.go +++ b/internal/app/app.go @@ -163,4 +163,5 @@ func (app *App) Shutdown() { } cancel() } + app.CoderAgent.CancelAll() } diff --git a/internal/llm/agent/agent.go b/internal/llm/agent/agent.go index 2659e2bcad17756986cbc69a203c05ce7a688c9f..4c8bae171118b4550c9d2a28cb5df0456099530c 100644 --- a/internal/llm/agent/agent.go +++ b/internal/llm/agent/agent.go @@ -50,6 +50,7 @@ type Service interface { Model() models.Model Run(ctx context.Context, sessionID string, content string, attachments ...message.Attachment) (<-chan AgentEvent, error) Cancel(sessionID string) + CancelAll() IsSessionBusy(sessionID string) bool IsBusy() bool Update(agentName config.AgentName, modelID models.ModelID) (models.Model, error) @@ -698,6 +699,13 @@ func (a *agent) Summarize(ctx context.Context, sessionID string) error { return nil } +func (a *agent) CancelAll() { + a.activeRequests.Range(func(key, value any) bool { + a.Cancel(key.(string)) // key is sessionID + return true + }) +} + func createAgentProvider(agentName config.AgentName) (provider.Provider, error) { cfg := config.Get() agentConfig, ok := cfg.Agents[agentName]