fix(chat): race condition

Kujtim Hoxha created

Change summary

internal/ui/model/ui.go | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

Detailed changes

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)