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.
45 lines
2.1 KiB
Markdown
45 lines
2.1 KiB
Markdown
---
|
|
# claudbg-i6l2
|
|
title: 'TUI: interactive session browser'
|
|
status: completed
|
|
type: epic
|
|
priority: normal
|
|
created_at: 2026-03-30T04:44:52Z
|
|
updated_at: 2026-03-30T17:02:35Z
|
|
---
|
|
|
|
Implement a full terminal UI using Ratatui for browsing Claude Code sessions.
|
|
|
|
## Design
|
|
|
|
**Navigation model:** drill-down (not split-pane)
|
|
- Screen 1: full-screen session list → Enter opens transcript
|
|
- Screen 2: full-screen transcript with embedded sub-agents panel → Tab cycles panes, Escape returns to list
|
|
- Screen 3: sub-agent transcript (same layout as Screen 2, Escape returns to parent transcript)
|
|
|
|
**Session list screen**
|
|
Columns: short ID, datetime, project (truncated tail), model, message count, sub-agent count.
|
|
Sorted most-recent-first.
|
|
|
|
**Transcript screen**
|
|
- Header: session ID, model, tokens (in/out/cache), tool call summary, duration
|
|
- Scrollable chat log: user messages, assistant text, tool use blocks (truncated), tool results (truncated)
|
|
- Long lines truncated with horizontal scroll
|
|
- Sub-agents panel (Tab to focus): list of sub-agent runs for this session; Enter navigates to sub-agent transcript
|
|
- Thinking blocks hidden by default
|
|
|
|
**Keyboard bindings**
|
|
- `Up`/`Down`/`k`/`j` — navigate within pane
|
|
- `Left`/`Right`/`h`/`l` — horizontal scroll in transcript
|
|
- `Tab` — cycle focus between panes
|
|
- `Enter` — drill into selection
|
|
- `Escape` — go back
|
|
- `q`/`Q` — quit confirmation dialog (q=confirm, Esc=cancel)
|
|
- `?` — help modal listing all shortcuts (Esc to close)
|
|
|
|
**Non-goals for this milestone**
|
|
- Live refresh / follow mode (future feature)
|
|
- Color themes / configuration
|
|
|
|
## Summary of Changes\n\nFull TUI implementation completed across 8 sub-tasks:\n- ratatui + crossterm deps added\n- AppState/Screen/Focus model with navigation methods\n- Terminal setup, RAII guard, panic hook, 50ms event loop\n- Session list screen (Table widget, j/k nav)\n- Transcript screen (stats header + scrollable chat log)\n- Sub-agents panel (30-char right split, Tab focus, Enter drill-in)\n- Quit confirmation dialog (q→confirm, Esc→cancel)\n- Help modal (? → shortcuts overlay)
|