Home jumps to the top (scroll = 0) and End jumps to the bottom, mirroring
the existing gg/G vim-style bindings. Help modal updated to document both.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace the '>' prefix + yellow fg on the selected/viewing agent row with
Modifier::REVERSED applied to the full span, matching ratatui Table highlight
conventions and removing the need for a cursor character.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Press '/' to immediately focus the filter input on the session-list
screen and the search input on the transcript screen, matching the
less(1) convention. Updates help modal and placeholder hint text.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When the user is viewing a SubagentTranscript, the corresponding entry
in the sub-agents panel is now highlighted with '>' prefix regardless
of which panel has keyboard focus.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When on SubagentTranscript, Esc or Backspace now goes back to the parent
session's Transcript view (lazy-reloads entries) instead of jumping all
the way to the session list. Transcript → session list path unchanged.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
gg (double-g): jump to top of transcript via pending_g chord detection.
G (Shift+G): jump to bottom of transcript.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Compute total rendered lines on each page-down keypress and cap the
scroll offset so it cannot scroll past the last line.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Also close claudbg-4g3l, claudbg-ltt0, claudbg-37cj as already implemented.
Fixes pre-existing fmt issues in agents.rs, sessions.rs, filter.rs, and TUI files.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Bottom search bar (3 rows, always visible), press 't' to focus
- Case-insensitive match highlighting (yellow bg) across all spans
- Panel title shows current/total match count (e.g. "2/7")
- 'n'/'N' navigate next/previous match, wrapping around
- Enter applies search and returns focus to chat log
- Esc clears search and returns focus to chat log
- Tab cycles ChatLog → SubagentsPanel → SearchInput → ChatLog
- Help modal updated with search keybindings
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
fix(claudbg-eej6): wrap Handle::block_on with block_in_place in TUI
load_transcript_for_session and load_transcript_for_agent called
Handle::current().block_on() from within the tokio::main async context,
causing a panic on session selection. Wrap with block_in_place() to
signal the scheduler to move other tasks off the thread before blocking.
fix(claudbg-80fb): add #[serde(rename = "sessionId")] to RawEntry.session_id
The JSONL field is camelCase ("sessionId") but serde matched only the
literal field name, so session_id always deserialized as None. This made
AgentRef.session_id default to "", and since any_str.starts_with("") is
always true, load_transcript_for_agent matched the wrong session and
found no agent, leaving sub-agent transcripts permanently empty.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Splits chat area with a 30-char right panel listing sub-agent runs.
Yellow border highlights the focused pane. Tab cycles focus; j/k
navigates agents when panel focused; Enter drills into sub-agent
transcript. Shows "No sub-agents" when list is empty.
Closes claudbg-9c8r
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>