From 0131f7ea5d268bfa999e3b7fb262532c70398ac0 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Fri, 30 Jan 2026 12:50:48 +0000 Subject: fix(claude:session): Handle empty session index --- internal/claude/session.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/internal/claude/session.go b/internal/claude/session.go index e541586..c2f191b 100644 --- a/internal/claude/session.go +++ b/internal/claude/session.go @@ -69,7 +69,7 @@ func LoadAllSessions() ([]Session, error) { indexPath := filepath.Join(projectDirectory, "sessions-index.json") sessions, loadError := loadSessionsFromIndex(indexPath, directoryEntry.Name(), false) - if loadError != nil { + if loadError != nil || len(sessions) == 0 { sessions = loadSessionsFromJsonlFiles(projectDirectory, directoryEntry.Name(), false) } @@ -91,7 +91,7 @@ func LoadAllSessions() ([]Session, error) { indexPath := filepath.Join(projectDirectory, "sessions-index.json") sessions, loadError := loadSessionsFromIndex(indexPath, directoryEntry.Name(), true) - if loadError != nil { + if loadError != nil || len(sessions) == 0 { sessions = loadSessionsFromJsonlFiles(projectDirectory, directoryEntry.Name(), true) } @@ -453,7 +453,11 @@ func removeFromIndex(projectDirectory, sessionID string) error { return unmarshalError } - filteredEntries := make([]Session, 0, len(sessionIndex.Entries)-1) + if len(sessionIndex.Entries) == 0 { + return nil + } + + filteredEntries := make([]Session, 0, len(sessionIndex.Entries)) for _, entry := range sessionIndex.Entries { if entry.SessionID != sessionID { -- cgit v1.2.3