diff --git a/internal/llm/agent/agent.go b/internal/llm/agent/agent.go index 864188113168948c2e59a221c62c6cdad99f75ce..799cec2e67cc1cdc433903081da86db68ae31e99 100644 --- a/internal/llm/agent/agent.go +++ b/internal/llm/agent/agent.go @@ -832,7 +832,7 @@ func (a *agent) Summarize(ctx context.Context, sessionID string) error { if r.Error != nil { event = AgentEvent{ Type: AgentEventTypeError, - Error: fmt.Errorf("failed to summarize: %w", err), + Error: fmt.Errorf("failed to summarize: %w", r.Error), Done: true, } a.Publish(pubsub.CreatedEvent, event) diff --git a/internal/tui/components/dialogs/compact/compact.go b/internal/tui/components/dialogs/compact/compact.go index 86455e3139b4d0eb43baaf509b0fa0e039dd4939..ecde402fd8dfe1f31791834cd4e4bae13ec45e00 100644 --- a/internal/tui/components/dialogs/compact/compact.go +++ b/internal/tui/components/dialogs/compact/compact.go @@ -104,17 +104,24 @@ func (c *compactDialogCmp) Update(msg tea.Msg) (tea.Model, tea.Cmd) { } case agent.AgentEvent: - if msg.Type == agent.AgentEventTypeSummarize { + switch msg.Type { + case agent.AgentEventTypeSummarize: if msg.Error != nil { c.state = stateError c.progress = "Error: " + msg.Error.Error() } else if msg.Done { - return c, util.CmdHandler( - dialogs.CloseDialogMsg{}, - ) + return c, util.CmdHandler(dialogs.CloseDialogMsg{}) } else { c.progress = msg.Progress } + case agent.AgentEventTypeError: + // Handle errors that occur during summarization but are sent as separate error events. + c.state = stateError + if msg.Error != nil { + c.progress = "Error: " + msg.Error.Error() + } else { + c.progress = "An unknown error occurred" + } } return c, nil }