Files
2026-10-27 21:55:59 +02:00

69 lines
3.6 KiB
Markdown

# Milestone 14 acceptance evidence: restart with valid legacy peers
Validated 2026-10-27T21:55:11+02:00 on the native
`x86_64-unknown-linux-gnu` development host. Results below use synthetic
saved files, fake service/runtime adapters, and existing pure runtime comparison
tests. They do not establish a real systemd restart.
## Behavior and review
Restart preview and confirmation now use the complete `SavedPeerProjection`
derived from the authoritative saved configuration. It includes every valid
peer's public key and complete normalized `AllowedIPs`, independently of
optional managed alias metadata and the narrower management `Client` shape.
The existing runtime comparator still requires a complete observed peer set
and checks all saved peers and routes before verification can be recorded.
The management applied snapshot remains absent when it cannot represent the
whole saved peer set; no partial `Client` snapshot is marked applied.
Synthetic fixtures cover a saved managed client alongside metadata-free legacy
peers, IPv4-only host routes, and valid subnet routes outside the management
model. Preview preserves server bytes and creates no backup. Fake successful
service completion plus a full runtime match creates the required pre-restart
backup, records verified historical status, and releases deleted-address
reservations only after durable installation. Reopening retains that history,
starts with runtime `Unknown`, and does not regain a partial applied snapshot.
A missing legacy runtime peer leaves reservations durable and runtime unknown.
Malformed AllowedIPs, duplicate public identity, and malformed section headers
block preview before backup/service mutation with a secret-free public identity
or section line and condition. Existing tests also cover backup failure,
service timeout/failure, stale saved generation, runtime mismatch, persistence
failure, draft cancellation and `SaveConfig` rejection.
An independent GPT-6-Luna/high reviewer found no actionable behavior finding.
The first coordinator Clippy gate found M14-R1 (P3), a collapsible diagnostic
guard in `src/app.rs`. A separate GPT-6-Luna/high repairer fixed it; the
reviewer confirmed equivalent logic and closed R1. The final integrated gates
below ran after that repair.
## Commands and source identity
Pinned rustc/Cargo 1.97.1, rustfmt 1.9.0 and Clippy 0.1.97 were verified.
The following commands ran from the repository root and exited 0 on the
integrated revision:
- `cargo test --locked app::tests::`: 57 passed.
- `cargo test --locked --test runtime_restart`: 3 passed.
- `cargo fmt --all -- --check`.
- `cargo clippy --locked --all-targets -- -D warnings`.
- `cargo test --locked`: 357 passed, 3 explicitly ignored, 0 failed,
including 2 documentation tests.
- `cargo build --locked --release`.
- `git diff --check`.
Base commit: `4bb975f122abfdeabbd04fe6b737eec5706596f5`. Dirty Rust inputs
at validation were `src/app.rs`, `src/domain.rs`, and `tests/runtime_restart.rs`;
`PLANS.md` was dirty with this milestone's execution record. SHA256 inputs:
- `src/app.rs`: `01cf281f5b8ae62877dcf63ece7d51b5cca5522f6bc5c9e99dbc0e718a4121f4`
- `src/domain.rs`: `179ecbe66ad7b6e022233a6da3b62a6ce57d92d26d32b0ae6c750ccd2edc5f01`
- `tests/runtime_restart.rs`: `4cff0de16a18cccc846ace86808840567165fc110d121fd7bdc459481379e05f`
Native release artifact `target/release/wireguard-admin` SHA256:
`a7c946297d2a0140ddcca1c15bb3f651fe6ddc494c2eb7e8e713fdfc700e6b5a`.
No Alpine rerun, disposable systemd VM, or production operation was performed.
The accepted M8 Alpine artifact identity predates this revision; it does not
validate this build. M9's real systemd/D-Bus acceptance remains retired and
unverified.