Files
2026-10-28 23:12:22 +02:00

78 lines
4.5 KiB
Markdown
Raw Permalink 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.
# Milestone 17 evidence: adaptive client list and state presentation
Recorded 2026-10-28T23:09:37+02:00 on `x86_64-unknown-linux-gnu` with
`rustc`/Cargo 1.97.1, rustfmt 1.9.0 and Clippy 0.1.97. Base commit:
`d49721ff8e6a40c1016e59b2648a6a622f84a4c4`. This is a dirty working tree;
the M17 Rust/README inputs at validation have SHA256:
| Input | SHA256 |
| --- | --- |
| `src/tui/render.rs` | `19fad8a9edfa571060c94fe34a1a484369f3601a3ffc52148081c935be2404f2` |
| `src/tui/state.rs` | `b533427001c67fb2c1d8527fb8a2cc1d6bd7e824be8985fd8b773b09a144d0f9` |
| `src/tui/terminal.rs` | `591ad7498fb4bb8cb825dfba0bad26e28bd8432ef26d5527950863a7534689f6` |
| `tests/tui_workflow.rs` | `f57d058d8538d5d1afdab7ddb7e88d23259804a9927ee4ac52982903dc1a6928` |
| `README.md` | `7c5eb0b58e81aaecbddae230211099db59560dfc5fe30991e7022d841d6b04a8` |
`PLANS.md` and `docs/evidence/milestone-16.md` are also dirty documentation
inputs. The latter records user-directed M16 acceptance and an undocumented
manual check; it is not M17 test evidence. No M17 dependency manifest or
application adapter changed. The release binary
`target/release/wireguard-admin` has SHA256
`336103d76bb78225735411a76abdbf3f6d5dc49dd6ce0b96537dfd3dea46a578`.
`file` identified an x86-64 dynamically linked GNU/Linux PIE.
## Implementation and acceptance mapping
- M17-A1: the table allocates the actual list-pane width across wide, medium
and compact columns. Synthetic buffers cover growing names, Latin/Cyrillic/
wide-character alignment, separate host IPv4/IPv6 cells, IPv4-only peers,
and route markers. Full routes and public identity remain in details.
- M17-A2/A3: shared visible records and selection drive the list, persistent
pane and Enter details. Synthetic state/navigation/buffer checks cover first
selection, duplicate and malformed peers, draft removals, document-only
issues, refresh, dimension breakpoints and stable geometry. A loading-state
regression covers side and stacked panes. Breakpoints use the content area:
side-by-side at 140×13 or larger, stacked at 80×17 or larger (eight rows for
details), compact summary at 60×12 or larger, otherwise list-only. These
dimensions are independent of selected content and action availability.
- M17-A4/A5: explicit Draft, Saved and Applied labels distinguish pending
drafts from saved peers and runtime verification. The saved peer count comes
from installed server bytes and includes nonmanaged peers; managed counts
remain separately scoped. Tests cover state combinations, issue versus
capability-limit counts, complete details and available observations.
- M17-A6: focused TUI/workflow checks include navigation, forms, footer, QR and
synthetic PTY lifecycle coverage. No Commit/restore/restart behavior changed.
## Review and checks
One GPT-6-Luna/high implementer completed M17.1, M17.2 and M17.3 in order.
A separate fresh GPT-6-Luna/high read-only reviewer inspected the integrated
diff and ran `cargo test --locked tui::` (70 passed) and
`cargo test --locked --test tui_workflow` (8 passed). It found M17-R1 (P2):
loading list and persistent detail messages conflicted. A separate
GPT-6-Luna/high repairer fixed the pane and added a 140×20/80×24 buffer test;
the reviewer rechecked and closed R1 (`cargo test --locked tui::render::tests`:
39 passed). The integrated Clippy gate then found M17-R2 (P2), two redundant
closures. The repairer replaced them with function items; the reviewer checked
semantics, reran exact Clippy, and closed R2. No actionable review finding
remains.
Final integrated checks on the input hashes above:
| Command | Result |
| --- | --- |
| `cargo fmt --all -- --check` | exit 0 |
| `cargo test --locked tui::` | 71 passed, 0 failed |
| `cargo test --locked --test tui_workflow` | 8 passed, 0 failed; includes synthetic PTY smoke |
| `cargo clippy --locked --all-targets -- -D warnings` | exit 0 after R2 repair |
| `cargo test --locked` | 384 passed, 0 failed, 3 explicitly ignored; 2 doctests passed |
| `cargo build --locked --release` | exit 0; binary hash above |
| `git diff --check` | exit 0 |
All tests used synthetic configuration and keys. The PTY smoke checks emitted
terminal control behavior through an isolated `script` session; it is not a
manual terminal-emulator usability test. Alpine Testcontainers, disposable-VM
systemd paths, live WireGuard, production configuration, and phone QR scanning
were not run for this presentation milestone. Those checks are not claimed by
the fixture results. No host service was restarted and no Git commit was made.