Add expand/collapse all, per-pane key legends

SectionTree:
- 'e': expand all nodes
- 'c': collapse all nodes
- Home/End already wired from previous commit

Key legend shown at bottom border of each focused pane:
- Tree panes: nav, expand/collapse, expand/collapse all, paging
- Agent list: select, tab
- History: scroll, paging

Legend only appears on the focused pane to avoid clutter.

Co-Authored-By: Proof of Concept <poc@bcachefs.org>
This commit is contained in:
Kent Overstreet 2026-04-07 19:09:04 -04:00
parent 19bb6d02e3
commit 578be807e7
3 changed files with 54 additions and 14 deletions

View file

@ -11,7 +11,7 @@ use ratatui::{
};
use super::{App, ScreenView, screen_legend};
use super::widgets::{SectionTree, pane_block, render_scrollable};
use super::widgets::{SectionTree, pane_block, render_scrollable, tree_legend};
pub(crate) struct ConsciousScreen {
agent: std::sync::Arc<tokio::sync::Mutex<crate::agent::Agent>>,
@ -94,7 +94,8 @@ impl ScreenView for ConsciousScreen {
lines.push(Line::raw(format!(" Active tools: {}", app.active_tools.lock().unwrap().len())));
let block = pane_block("context")
.title_top(Line::from(screen_legend()).left_aligned());
.title_top(Line::from(screen_legend()).left_aligned())
.title_bottom(tree_legend());
render_scrollable(frame, area, lines, block, self.tree.scroll);
}