Implement adaptive client list
This commit is contained in:
@@ -2,8 +2,11 @@
|
||||
|
||||
Recorded 2026-10-27T22:42:48+02:00 on the native
|
||||
`x86_64-unknown-linux-gnu` development host. This is **implementation and
|
||||
synthetic evidence, not systemd acceptance**. The milestone remains blocked on
|
||||
private-peer behavioral and disposable-VM checks.
|
||||
synthetic evidence, not systemd acceptance**. On 2026-10-28, the user reported a
|
||||
successful manual check and explicitly directed that M16 be considered done.
|
||||
The check's environment, commands, source identity, and transport coverage were
|
||||
not supplied. PLANS.md records user-directed acceptance; this report does not
|
||||
claim a passing disposable-VM run or independently close M16-R2.
|
||||
|
||||
## Source and protocol basis
|
||||
|
||||
@@ -65,8 +68,8 @@ Native release artifact `target/release/wireguard-admin` SHA256:
|
||||
The prior disposable Debian VM was stopped before guest installation and has
|
||||
no verified guest marker or running systemd acceptance environment, per
|
||||
[`VM_ACCEPTANCE.md`](../VM_ACCEPTANCE.md). No private-socket or system-bus
|
||||
restart was run in a disposable VM. Neither transport is accepted against real
|
||||
systemd yet; production must not be used to fill this gap. The next check is
|
||||
to finish and authorize a disposable VM with synthetic WireGuard configuration,
|
||||
then run both transport paths and verify job completion plus full runtime
|
||||
matching, with exact source/artifact identity.
|
||||
restart was run in a disposable VM as part of the recorded checks. This gap
|
||||
remains despite the later user-directed acceptance. A future independent check
|
||||
would use a disposable VM with synthetic WireGuard configuration to cover both
|
||||
transport paths, job completion, and full runtime matching, with exact
|
||||
source/artifact identity. Production must not be used to fill the gap.
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user