diff options
| author | Fuwn <[email protected]> | 2026-01-30 08:47:29 +0000 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2026-01-30 08:47:29 +0000 |
| commit | 75fa492c7268b02ef3586d97c40121c791f60f7f (patch) | |
| tree | d46a2c05f53ecbc986a971c3504b40f8cc16a8d3 /internal/app | |
| parent | feat(claude:session): Support orphaned sessions (diff) | |
| download | faustus-75fa492c7268b02ef3586d97c40121c791f60f7f.tar.xz faustus-75fa492c7268b02ef3586d97c40121c791f60f7f.zip | |
fix: improve orphaned session handling
Diffstat (limited to 'internal/app')
| -rw-r--r-- | internal/app/state.go | 15 | ||||
| -rw-r--r-- | internal/app/update.go | 1 |
2 files changed, 12 insertions, 4 deletions
diff --git a/internal/app/state.go b/internal/app/state.go index 82e186d..cebd672 100644 --- a/internal/app/state.go +++ b/internal/app/state.go @@ -72,10 +72,19 @@ func (m *Model) updateFilteredFromOriginal() { func (m *Model) reloadSessions() { sessions, loadError := claude.LoadAllSessions() - if loadError == nil { - m.sessions = sessions + if loadError != nil { + m.setMessage("Reload error: " + loadError.Error()) - m.updateFiltered() + return + } + + m.sessions = sessions + + m.updateFiltered() + m.invalidatePreviewCache() + + if m.cursor >= len(m.filtered) { + m.cursor = max(0, len(m.filtered)-1) } } diff --git a/internal/app/update.go b/internal/app/update.go index b50fe82..7e8409e 100644 --- a/internal/app/update.go +++ b/internal/app/update.go @@ -404,7 +404,6 @@ func (m Model) executeConfirmedAction() (tea.Model, tea.Cmd) { if deleteError := claude.MoveToTrash(session); deleteError != nil { m.setMessage(fmt.Sprintf("Error: %v", deleteError)) } else { - m.setMessage("Moved to Bin") m.reloadSessions() } } |