From addcf0a978f5885c5da4cd0ec5ceb0be85e0561b Mon Sep 17 00:00:00 2001 From: Levi Neely Date: Thu, 26 Feb 2026 22:28:16 +0100 Subject: [PATCH] Fix crash bugs: remove impossible nil checks, add bounds check for strings.Fields - mailManager guaranteed non-nil by constructor, removed defensive checks - Added bounds check for strings.Fields()[0] in slash command validation - Removed impossible nil check in processMailboxes() --- internal/backend/tmux/session.go | 6 +++++- internal/session/manager.go | 6 +----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/internal/backend/tmux/session.go b/internal/backend/tmux/session.go index 1d21138..8d55a18 100644 --- a/internal/backend/tmux/session.go +++ b/internal/backend/tmux/session.go @@ -426,7 +426,11 @@ func (s *Session) Send(ctx context.Context, prompt string) (string, error) { // Check command support if applicable if strings.HasPrefix(prompt, "/") && s.commands != nil { if !s.commands.IsSupported(prompt) { - cmd := strings.Fields(prompt)[0] + fields := strings.Fields(prompt) + cmd := "unknown" + if len(fields) > 0 { + cmd = fields[0] + } s.mu.Unlock() return "", fmt.Errorf("slash command not supported by %s backend: %s\nTo use manually, middle-click Attach", s.backendName, cmd) } diff --git a/internal/session/manager.go b/internal/session/manager.go index 0cc0be6..920174c 100644 --- a/internal/session/manager.go +++ b/internal/session/manager.go @@ -192,10 +192,6 @@ func (m *Manager) mailProcessingLoop() { // processMailboxes handles outbox delivery and inbox processing func (m *Manager) processMailboxes() { - if m.mailManager == nil { - return - } - m.mu.RLock() sessions := make([]backend.Session, 0, len(m.sessions)) for _, sess := range m.sessions { @@ -258,7 +254,7 @@ func (m *Manager) processMailboxes() { } } -// GetMailManager returns the mailbox manager +// GetMailManager returns the mailbox manager (guaranteed non-nil) func (m *Manager) GetMailManager() *mailbox.Manager { return m.mailManager }