diff --git a/internal/ui/model/ui.go b/internal/ui/model/ui.go index dc581d4febe19a73ae12618a44f9ccd8bdf802b8..967452e3e81aa7c92c75b02c184dd6f53aaa164a 100644 --- a/internal/ui/model/ui.go +++ b/internal/ui/model/ui.go @@ -1279,8 +1279,10 @@ func (m *UI) sendMessage(content string, attachments []message.Attachment) tea.C cmds = append(cmds, m.loadSession(newSession.ID)) } + // Capture session ID to avoid race with main goroutine updating m.session. + sessionID := m.session.ID cmds = append(cmds, func() tea.Msg { - _, err := m.com.App.AgentCoordinator.Run(context.Background(), m.session.ID, content, attachments...) + _, err := m.com.App.AgentCoordinator.Run(context.Background(), sessionID, content, attachments...) if err != nil { isCancelErr := errors.Is(err, context.Canceled) isPermissionErr := errors.Is(err, permission.ErrorPermissionDenied)