Files
wireguard-admin/docs/evidence/tui-footer-layout.md
T
2026-10-27 23:04:52 +02:00

56 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# TUI-FL-001 evidence: stable keyboard footer
Validated 2026-10-27T22:59:34+02:00 on the native
`x86_64-unknown-linux-gnu` development host with synthetic
Ratatui/TestBackend fixtures. No production configuration, host service, or
systemd VM was used.
## Behavior and review
The standard TUI layout now reserves four footer rows from the first draw:
two hint rows and their borders. The client-list region therefore keeps the
same height as selection and available actions change. Hints use a stable
priority order and fit into two bounded rows. A first packing pass shows every
hint when they fit; only actual overflow triggers a second pass reserving a
visible `… more` marker on the last row. The existing `? Help` route remains
visible in narrow list layouts. The source of context-sensitive hints and the
keyboard action handlers were not changed. Terminals with 8 or 9 rows use the
compact layout so the client pane retains visible content.
Buffer-level tests cover empty/populated/selected list geometry at 80×24,
narrow widths 34/36/40, the compact 80×9 case, and widths 102/103 where all
actions fit without a false omission marker. Tests check complete rendered
labels and the marker row, not just source-side packing. Existing TUI workflow
tests cover the unchanged action behavior.
An independent GPT-6-Luna/high reviewer found TUI-FL-001.2-R1 (P2, clipped
marker on the first row) and R2 (P2, border-only list at height 9). A separate
GPT-6-Luna/high repairer fixed both; re-review closed them. Re-review then found
R3 (P3, unnecessary omission from reserving marker space too early). The
repairer added a two-pass packer and a 102/103-column regression. Independent
re-review closed R3 with no further actionable finding.
## Checks and identity
Pinned `rustc`/Cargo 1.97.1, rustfmt 1.9.0 and Clippy 0.1.97 were verified.
The final integrated revision passed from the repository root:
- `cargo test --locked tui::render::tests`: 31 passed.
- `cargo fmt --all -- --check`: exit 0.
- `cargo clippy --locked --all-targets -- -D warnings`: exit 0.
- `cargo test --locked`: 370 passed, 3 explicitly ignored, 0 failed, including 2 documentation tests.
- `cargo build --locked --release`: exit 0.
- `git diff --check`: exit 0.
Base commit: `4b53aad20cff6cec5d23f779702b58f0de599d44`.
Dirty Rust input `src/tui/render.rs` SHA256:
`ceae0bec7add49304a38f38987fdac554fc83e9d7d23695cf148f2f8404d3016`.
Native release artifact `target/release/wireguard-admin` SHA256:
`a16214c426b0cc9b29ec03124e965352e4f64f07c82d3ac23e4caf8e45d6273b`.
`PLANS.md` was also dirty with this maintenance record. The M16 private-systemd
validation gap remains separate and unverified; no Alpine or VM suite was rerun.
Very narrow layouts intentionally show only priority hints plus the Help
affordance; additional shortcuts remain available through the existing Help
screen. A physical-terminal visual check was not performed.