Pitch
opencode parity. Some users want to scan the workspace without leaving the TUI. `Ctrl+E` toggles a left-side file tree (similar to opencode's "explorer" pane) showing:
- Workspace tree, gitignore-aware (uses our existing `ignore::WalkBuilder` walker).
- Cursor + Up/Down nav, Enter opens the file in the transcript as a read-only preview.
- `r` re-runs `grep_files` against the cursor's path.
Layout: when toggled, sidebar layout becomes `[file tree | chat | sidebar]` with sidebar collapsing if the terminal is < 160 cols.
Implementation sketch
- New `tui/file_tree.rs` widget.
- Lazy-load directory contents on first expand.
- File preview goes through the existing `read_file` tool, rendered as a Syntax-highlighted code cell.
Acceptance
Pitch
opencode parity. Some users want to scan the workspace without leaving the TUI. `Ctrl+E` toggles a left-side file tree (similar to opencode's "explorer" pane) showing:
Layout: when toggled, sidebar layout becomes `[file tree | chat | sidebar]` with sidebar collapsing if the terminal is < 160 cols.
Implementation sketch
Acceptance