Context
The interactive TUI (src/tui.ts) is keyboard-only. Users must use arrow keys and shortcuts to fold/unfold a repo's extracts (▸/▾), toggle selection (✓) on repos/extracts, and page through long result lists (Page Up/Down, Ctrl+U/D). Terminal mouse reporting (xterm/SGR protocol) is a standard, dependency-free mechanism that would let users click the fold arrow, click a checkbox, or scroll with the wheel — closer to a GUI interaction model and more discoverable for new users.
Solution
Add mouse support to the TUI using the standard SGR mouse-reporting protocol (\x1b[?1000h\x1b[?1006h), parsed on the same raw stdin channel already used for keyboard input in runInteractive(). No new dependency is introduced (picocolors remains the only styling dependency per AGENTS.md).
| Sub-issue |
Feature |
Scope |
| Mouse tracking foundation |
Enable/disable protocol + escape-sequence parsing pipeline |
Infrastructure, blocks the two below |
| Click-to-toggle |
Fold/unfold (â–¸/â–ľ) and select/deselect (âś“) on repo/extract rows |
MVP interaction |
| Scroll-wheel support |
Wheel-up/down mapped to existing scroll logic |
Depends on foundation |
| UI consistency |
Dimmed/inactive âś“ instead of blank space for deselected checkboxes |
Independent, can ship first |
Acceptance Criteria
Definition of Done
Context
The interactive TUI (
src/tui.ts) is keyboard-only. Users must use arrow keys and shortcuts to fold/unfold a repo's extracts (▸/▾), toggle selection (✓) on repos/extracts, and page through long result lists (Page Up/Down, Ctrl+U/D). Terminal mouse reporting (xterm/SGR protocol) is a standard, dependency-free mechanism that would let users click the fold arrow, click a checkbox, or scroll with the wheel — closer to a GUI interaction model and more discoverable for new users.Solution
Add mouse support to the TUI using the standard SGR mouse-reporting protocol (
\x1b[?1000h\x1b[?1006h), parsed on the same raw stdin channel already used for keyboard input inrunInteractive(). No new dependency is introduced (picocolorsremains the only styling dependency perAGENTS.md).Acceptance Criteria
Definition of Done
bun testpasses.bun run lintpasses.bun run format:checkpasses.bun run knippasses (no unused exports/imports).bun run build.tscompiles successfully.*.test.ts, per the pure-function-first architecture inAGENTS.md.README.mdinteractive-mode section mentions mouse support if applicable.AGENTS.md § Release process(minor release).