7.5 KiB
Release readiness and qualification matrix
This is a scope-qualified M9.4 record, not a release approval. M1–M8 are
accepted in PLANS.md; M9 real-system acceptance remains
incomplete because no explicitly selected disposable systemd VM is available.
No production host, VPN, service, key, or configuration was accessed. The
operator procedure is in OPERATIONS.md.
Current host release candidate
The following native artifact was built from the current Rust sources with the
pinned compiler and locked dependency set. Its --help and --version paths
were executed on the development host. This assessment does not establish
startup in a guest or supported compatibility with another distribution.
| Property | Observed value |
|---|---|
| Source Git HEAD | f4a6540df9621c9c5e5d1430243f92e749356a59 |
| Working-tree state at build | Pre-existing dirty documentation only: PLANS.md modified and docs/VM_ACCEPTANCE.md untracked; no source, manifest or lockfile changes |
| Relevant input fingerprint | SHA-256 02ace329ca2ed17aa0b47112a3fcaa090b7d9a7eaa334f293aea9792e35e668a over sorted src/, Cargo.toml, and Cargo.lock file hashes |
| Compiler and target | rustc 1.97.1, host x86_64-unknown-linux-gnu; Cargo 1.97.1 |
| Build command | cargo build --locked --release — exit 0 |
| Artifact | target/release/wireguard-admin, x86-64 ELF PIE, dynamically linked |
| Artifact SHA-256 | d52d43cd02332352ffbd09c97e3b8095a710359128260c1286006e1c76c1b283 |
| Runtime requirements observed | ELF interpreter /lib64/ld-linux-x86-64.so.2; libc.so.6 (GLIBC symbols through GLIBC_2.39) and libgcc_s.so.1; ldd resolved these on the development host |
| Artifact smoke | ./target/release/wireguard-admin --help and --version — both exit 0; no settings, terminal, root management, service or interface exercised |
Commands used to inspect the artifact were sha256sum target/release/wireguard-admin,
file target/release/wireguard-admin, readelf -h, readelf -l, readelf -d,
readelf --version-info, and ldd target/release/wireguard-admin. The linked
GLIBC requirement is an observed lower symbol-version bound, not proof that a
distribution satisfying it is otherwise compatible. No installer, package,
signature, reproducible-build claim, or supported distribution baseline is
provided. This native GNU artifact is not an Alpine/musl artifact.
The source-input fingerprint was calculated from the repository root with:
rg --files src Cargo.toml Cargo.lock | sort | xargs sha256sum | sha256sum
Specification-to-evidence matrix
“Accepted” refers to the repository's existing milestone result. It does not
mean every production platform or dual-stack behavior has been qualified. For
M1–M7, the concise milestone scope, review outcome and commands are in the
corresponding accepted sections of PLANS.md. M8's detailed
source, artifact, run and scope record is
evidence/milestone-8.md.
| Requirement area | Existing evidence | Qualification and limit |
|---|---|---|
| Settings validation, executable-relative paths, draft/saved/applied model | M1 accepted record in PLANS.md; M7 startup/workflow record there |
Synthetic/unit and TUI workflow coverage; no guest startup or production configuration. |
| Server configuration authority, client identity by public key, byte preservation and metadata | M2 accepted record in PLANS.md; specification in SPEC.md |
Fixture/behavioral evidence for preserving non-client bytes and comments; no real server file was used. |
| Secret-safe keys, encrypted vault, read-only imports and originals | M3 accepted record in PLANS.md; M8 import/reissue scenario in evidence/milestone-8.md |
Synthetic import plus accepted Alpine lifecycle scenario; source originals were fixture files and retained. Vault password loss remains unrecoverable by design. |
| Backups, mandatory backup boundary, journaled Commit, recovery and previewed restore | M4 accepted record in PLANS.md; M8 restore and backup-failure runs in evidence/milestone-8.md |
Saved-state operations and test-fixture behavior covered. Restore did not apply runtime changes; real-VM manual recovery remains unverified. Archives are not encrypted. |
| Read-only runtime observations, restart orchestration, deadline and failure reporting | M5 accepted record in PLANS.md; runtime section of docs/RUNTIME.md; M8 Rustix observations |
Fake-adapter and real Alpine WireGuard reader/IPv4 observations exist. No actual systemd/D-Bus job or Application::restart against real systemd has been run. |
| Delivery, first issue, password-per-action reissue, QR and private output | M6 accepted record and M7 synthetic PTY/workflow records in PLANS.md; docs/DELIVERY.md |
Synthetic behavior covers file publication/reissue and QR rendering/terminal handling. No user device scan or actual client device qualification is recorded. |
| Native TUI, root/startup boundary and exit/terminal cleanup | M7 accepted record in PLANS.md, including synthetic PTY and workflow checks |
Not a real guest root/non-root startup smoke. The release binary was only exercised for help/version on the build host. |
| Alpine real WireGuard lifecycle and IPv4 traffic | M8.7 in evidence/milestone-8.md |
Accepted M8 used the pinned Alpine 3.22.7 fixture and selected disposable Docker daemon; repeated fresh integrated IPv4 scenarios passed on the recorded source fingerprint. Fixture Apply is a test-only callback, not systemd evidence. |
| Dual-stack behavior | M1–M7 synthetic client/configuration tests; M8 scope declaration | Production IPv4+IPv6 creation/full-tunnel requirements remain in force. Real IPv6 capability and traffic were excluded from M8 and are unverified; an IPv4 result does not qualify IPv6. |
| Real systemd job, alias/fast completion, failure/timeout, verified apply, restore and release-worker startup | No M9 VM result exists; docs/VM_ACCEPTANCE.md is a reviewed safety/scenario contract |
Unverified / M9 incomplete. No selected disposable guest or VM run. Do not infer this from fake service adapters, Alpine or the host --help check. |
| Native artifact identity and dynamic dependencies | This document's host release-candidate record | Host-only assessment. Guest compatibility and startup are unverified; no universal Linux support claim. |
Qualification status and next action
- M1–M8 remain accepted at their recorded scope. Later M9 documentation does not change or broaden their evidence.
- M9.1 has a reviewed, non-runnable VM safety/scenario contract. M9.2–M9.3 real-system work and M9.5–M9.6 review/acceptance remain incomplete.
- The release candidate was built and its ELF dependencies inspected on the host, but has not been copied to or started in a guest. Actual guest architecture/distribution compatibility, root management startup, systemd/D-Bus behavior and service recovery are unverified.
- Real IPv6 capability and tunnel traffic are unverified. No M8 IPv4 or synthetic dual-stack test is a substitute for that qualification.
- No release, installation, production action, Git commit, or deployment is authorized by this report.
Next action: select and explicitly identify a disposable VM/guest satisfying
VM_ACCEPTANCE.md, then complete its target guard and
real-system scenarios before independent M9 review. Keep systemd/guest results
separate from the existing Alpine and synthetic evidence. Any final release
statement must retain the real IPv6 qualification gap unless that coverage is
explicitly authorized and completed.