ci / rust (push) Failing after 4m44s
Adds the full visual layer: - `state.rs` — `AppState` (tabs/focus/mode/sidebar visibility/overlay). v1 keeps each tab to one optional session; the split tree is v1.5. - `terminal.rs` — `TerminalGuard` (raw mode + alt screen + mouse capture with RAII restore) and an idempotent panic hook that restores the terminal before re-panicking. - `sidebar.rs` — daemon → session tree with ●/○/✗ glyphs. Pulls a label out of `metadata.label` (the protocol's shape), falls back to the command. - `tabs.rs` — top-row TabBar with active highlight. - `pane.rs` — `vt100::Screen` → ratatui `Buffer` cell-by-cell, with full fg/bg/bold/italic/underline/reverse translation. `PaneStatus` round-trips from `SessionState`. - `overlays.rs` — SpawnModal (5-field form with rotation), KillConfirm, HelpOverlay, Toast. All centered popups with `Clear` underlay. - `render.rs` — `draw(f, RenderInputs)` composes everything; returns a `RegionMap` whose `region_at(col, row)` resolves a mouse coordinate to a tagged Region (modal eclipses the rest). 22 new unit tests bringing the crate total to 80 passing. Tests use content-based assertions over `ratatui::backend::TestBackend` output rather than file-based goldens — less brittle to whitespace shifts while still covering the visible content.