feat(claudbg-8bs3): highlight selected agent row with REVERSED style instead of '>' cursor

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>
main
Elijah Voigt 2 months ago
parent 1fd9f8c259
commit 52f33202d3

@ -1,10 +1,11 @@
--- ---
# claudbg-8bs3 # claudbg-8bs3
title: 'TUI: color-highlight selected agent row instead of ''>'' cursor' title: 'TUI: color-highlight selected agent row instead of ''>'' cursor'
status: todo status: in-progress
type: feature type: feature
priority: normal
created_at: 2026-04-01T06:11:10Z created_at: 2026-04-01T06:11:10Z
updated_at: 2026-04-01T06:11:10Z updated_at: 2026-04-01T06:15:41Z
--- ---
In the sub-agents panel (transcript screen), the currently selected/viewed agent is shown with a '>' prefix and yellow text. Instead, use row-level color highlighting (e.g. reversed or bold style on the full row) so the cursor character is not needed — matching how ratatui Table highlights work.\n\nThe rendering is in the subagent_lines iterator in src/tui/screens/transcript.rs. Replace the '> {short_id} {agent_type}' format with ' {short_id} {agent_type}' and apply a highlight style (e.g. Modifier::REVERSED) to the selected row span instead. In the sub-agents panel (transcript screen), the currently selected/viewed agent is shown with a '>' prefix and yellow text. Instead, use row-level color highlighting (e.g. reversed or bold style on the full row) so the cursor character is not needed — matching how ratatui Table highlights work.\n\nThe rendering is in the subagent_lines iterator in src/tui/screens/transcript.rs. Replace the '> {short_id} {agent_type}' format with ' {short_id} {agent_type}' and apply a highlight style (e.g. Modifier::REVERSED) to the selected row span instead.

@ -505,13 +505,14 @@ pub fn render_transcript(f: &mut Frame, area: Rect, state: &AppState) {
); );
let is_panel_selected = let is_panel_selected =
i == state.subagent_selected && state.focus == Focus::SubagentsPanel; i == state.subagent_selected && state.focus == Focus::SubagentsPanel;
let text = format!(" {short_id} {agent_type}");
if is_viewing || is_panel_selected { if is_viewing || is_panel_selected {
Line::from(Span::styled( Line::from(Span::styled(
format!("> {short_id} {agent_type}"), text,
Style::default().fg(Color::Yellow), Style::default().add_modifier(Modifier::REVERSED),
)) ))
} else { } else {
Line::from(format!(" {short_id} {agent_type}")) Line::from(text)
} }
}) })
.collect() .collect()

Loading…
Cancel
Save