Files
wireguard-admin/docs/evidence/milestone-20.md
T

81 lines
4.5 KiB
Markdown

# Milestone 20 evidence: vocabulary and prepared contexts
Recorded 2026-10-29T22:38:53+02:00. Base commit
`ede45d224a9ad255a919900e556a03d7e575430f` had a clean working tree.
The final tree is dirty only for this milestone's `PLANS.md`, Rust source and
test changes, and this evidence report. No `Cargo.toml` or `Cargo.lock` diff,
new dependency, persisted-format change, production configuration, or secret
fixture was introduced. The final Rust source/test patch fingerprint is
SHA256 `cba97207f926f1927c70643754db2743603e0f72892115ef8d959696d769992a`,
produced by:
```sh
git diff -- src/app.rs src/domain.rs src/persistence.rs src/container_driver.rs src/tui/events.rs src/tui/render.rs src/tui/state.rs src/tui/terminal.rs tests/client_delivery.rs tests/commit_restore.rs tests/runtime_restart.rs tests/tui_workflow.rs | sha256sum
```
The release artifact `target/release/wireguard-admin` built from those inputs
has SHA256 `7a6ee46b1d9c39bac9a7b3627b0b8ba30e70321126ebd16b1948b42b8658ac98`.
`file target/release/wireguard-admin` identified an x86-64 dynamically linked
GNU/Linux PIE with interpreter `/lib64/ld-linux-x86-64.so.2`.
## Implementation and acceptance mapping
- M20.1 renamed the domain's current knowledge enum to `ApplyStatus`, retained
`runtime::RuntimeObservation` for measured interface data, and migrated actual
application, persistence, TUI and integration callers. The exact duplicate
TUI `AppliedState` enum/mapping and now unnecessary `Statistics`,
`TechnicalObservation` and `ObservedRuntime` aliases were removed. UI labels
and current-versus-historical state transitions were preserved (M20-A1).
- M20.2 replaced the six-value prepared delivery tuple and three-value restore
tuple with private named contexts. A private `DeliveryMode` distinguishes
first issue and reissue without changing public `reissue` flags. Neither
context derives `Clone` or `Debug`; identity, attempt, generation, overwrite,
cancellation, unrelated-command clearing, password ownership and QR/file
order remain unchanged. A behavioral test covers cancel/unrelated-command
clearing (M20-A2).
- All affected production and test callers compile; no manifests, formats or
transport behavior changed. Focused tests, final full RUST gates and
independent review passed (M20-A3).
## Independent review and repair
A GPT-6-Luna/high implementer completed M20.1 and M20.2 sequentially. A
separate fresh GPT-6-Luna/high read-only reviewer inspected the integrated
diff, production paths, callers, tests and secret-bearing contexts and found
no behavior issue. The coordinator's first Clippy gate found M20-R1 (P2): two
test/test-only `.clone()` calls on the now-`Copy` status. A separate
GPT-6-Luna/high repairer changed only those two calls to dereferences in
`src/app.rs` and `src/container_driver.rs`. The reviewer independently
rechecked the repair and affected tests, closed R1 and found no new issue.
No actionable finding remains.
## Checks and limits
Environment at execution: `rustc`/Cargo 1.97.1 on
`x86_64-unknown-linux-gnu`, rustfmt 1.9.0 and Clippy 0.1.97, matching the
pinned compiler. Focused implementer/reviewer runs covered `domain::` (13),
`runtime::` (25), `tui::state::` (7), `tui::events::` (7),
`--test commit_restore` (9), `--test runtime_restart` (3),
`--test tui_workflow` (8), and `--test client_delivery` (5). After R1, the
repairer ran `cargo test --locked app::` (58 passed) and
`cargo test --locked --lib container_driver::` (23 passed, 2 ignored). The
reviewer reran affected app/event tests. These are host synthetic/PTY checks;
ignored Alpine selectors were not run.
| Final coordinator command | Actual result |
| --- | --- |
| `cargo fmt --all -- --check` | exit 0 |
| `cargo clippy --locked --all-targets -- -D warnings` | exit 0 after M20-R1 repair |
| `cargo test --locked` | exit 0: 391 unit/integration tests passed, 3 ignored; 2 doctests passed; 0 failed |
| `cargo build --locked --release` | exit 0; artifact SHA256 above |
| `git diff --check` | exit 0 |
The initial Clippy run exited 101 on M20-R1 before repair and is not the final
gate result. Default tests did not execute the three explicitly ignored
Alpine/selected-daemon tests. No Alpine Testcontainers or disposable systemd VM
run was required for this naming/context refactor or performed. Prior Alpine
results are historical for earlier source and do not validate this artifact;
real systemd/D-Bus and IPv6 limitations remain as previously recorded. No
production, live VPN, host service or host network operation was performed.