Add Ratatui terminal application

This commit is contained in:
Georg Bauer
2026-08-03 21:15:16 +02:00
parent 976742e173
commit 2534010d1d
13 changed files with 4414 additions and 375 deletions

View File

@@ -1,11 +1,11 @@
# Testing Gotcha
This document is the source of truth for iOS visual verification. Every UI
change must update its relevant scenarios in the same commit. For ordinary
commits, run the build gates and every scenario affected by the change. A
release test means completing this entire checklist successfully on the stated
simulators and devices; record failures as open issues and do not sign off until
every scenario passes.
This document is the source of truth for iOS and terminal UI verification.
Every UI change must update its relevant scenarios in the same commit. For
ordinary commits, run the build gates and every scenario affected by the
change. A release test means completing this entire checklist successfully on
the stated terminals, simulators, and devices; record failures as open issues
and do not sign off until every scenario passes.
## Test record
@@ -38,6 +38,43 @@ cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
```
## Terminal UI
Run `cargo run -p gotcha-tui -- --server NAME` in a normal terminal and in a
Herdr pane. Use a non-production account with at least two server profiles and
representative repositories.
- [ ] The five numbered panes open Home, Issues, Repos, PRs, and Milestones;
the selected pane and row remain visibly distinct at narrow and wide
terminal sizes.
- [ ] `j`/`k`, arrows, `g`/`G`, Page Up/Down, Enter, Backspace, and `q` provide
mutt-style list and history navigation; `n`/`p` and scrolling past a
boundary traverse paginated API results without losing history.
- [ ] Clicking a pane switches it, clicking a list row selects it,
double-clicking opens it, and the mouse wheel scrolls the list.
- [ ] Home activity filters cycle with `v`; activity targets route to their
repository, issue, pull request, or commit.
- [ ] Repository favorites toggle with `*`, sort first per pane, and persist
after relaunch. Commits switch branches with `b`; file trees, text and
binary files, commit changes, pull changes, and per-file diffs open.
- [ ] Issue and pull filters apply. Issues can be created, edited,
closed/reopened, and deleted after confirmation; issue comments can be
added and the current user's comments edited.
- [ ] Milestones can be created, edited, closed/reopened, and deleted after
confirmation; milestone details route to their issues and pulls.
- [ ] Server profiles can be added, authenticated, selected, edited, renamed,
and deleted. Blank token on edit preserves the existing token; removing
the last server leaves the server manager available.
- [ ] Editors move between fields with Tab/Shift-Tab, support cursor movement,
Unicode insertion, Delete, and Backspace without navigating back, mask
tokens, save with Ctrl-S, and cancel with Esc.
- [ ] The default overview refresh interval is five seconds. Changing it with
`,` persists after relaunch; refresh preserves selection and pauses while
editing, confirming, scrolling, or otherwise interacting.
- [ ] `cargo build --release -p gotcha-tui` produces
`target/release/gotcha-tui`, and the installed executable starts from
`PATH`.
Build and install the simulator app:
```sh