Add modal editing to the agent TUI. (#2)

Adds a status line indicating which mode the user is in.
Adds a "normal" mode with keyboard shortcuts (including a chorded shortcut 'gg').
Adds a command mode with several basic commands that can be entered into an overlay.

Chores:
- Cleans up design/claude/plan.md to avoid confusing claude.
- Adds some TODOs based on claude feedback.`

Reviewed-on: #2
Co-authored-by: Drew Galbraith <drew@tiramisu.one>
Co-committed-by: Drew Galbraith <drew@tiramisu.one>
This commit is contained in:
Drew 2026-02-25 01:16:16 +00:00 committed by Drew
parent 5d213b43d3
commit 3fd448d431
9 changed files with 725 additions and 101 deletions

View file

@ -61,7 +61,7 @@ Events use parent IDs forming a tree (not a flat list). This enables future bran
- Unit tests go in the same file as the code (`#[cfg(test)] mod tests`)
- Integration tests go in `tests/`
- TUI widget tests use `ratatui::backend::TestBackend` + `insta` snapshots
- TUI widget tests use `ratatui::backend::TestBackend`
- Provider tests replay recorded SSE fixtures from `tests/fixtures/`
- Sandbox tests use `tempdir` and skip Landlock-specific assertions if kernel < 5.13
- Run `cargo test` before every commit