You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.0 KiB
2.0 KiB
| title | status | type | priority | created_at | updated_at | parent |
|---|---|---|---|---|---|---|
| TUI session list shows no sessions — state.sessions never populated on startup | completed | bug | high | 2026-03-30T17:05:02Z | 2026-03-30T21:02:18Z | claudbg-i6l2 |
Problem
The TUI session list is always empty. run_tui() in src/tui/run.rs creates AppState::new() (which has sessions: Vec::new()) and enters the event loop without ever loading sessions from disk.
Root cause
discover_sessions() in src/parser/discovery.rs is never called from the TUI startup path. The session list screen renders from state.sessions which stays empty forever.
Fix
Before entering the event loop in run_tui(), call discover_sessions() and convert each SessionRef into a SessionListItem, then populate state.sessions.
SessionRef → SessionListItem mapping
short_id= first 8 chars ofsession_idfull_id=session_iddate=modified_at.format("%Y-%m-%d %H:%M:%S")project=project_path.unwrap_or_default()model=""(leave empty — would require parsing JSONL)msg_count= 0 (leave as 0 for now)agent_count= calldiscover_agents_for_session(&session_ref.file_path).map(|v| v.len()).unwrap_or(0)
Sort by modified_at descending (most recent first).
Error handling
If discover_sessions() fails, start with an empty list (don't crash). Log the error to stderr before entering the alternate screen, or silently ignore.
Relevant files
src/tui/run.rs—run_tui()function, add session loading before the event loopsrc/parser/discovery.rs—discover_sessions()anddiscover_agents_for_session()src/tui/state.rs—SessionListItemstruct