docs: v0.76.0 CHANGELOG + REPORT + CONTEXT (GL-5b shipped, published)

AGENT_VERSION=0.76.0
AGENT_SHA256=9828c5f75e719fb2e1fc3523f9c322b595a963ec1dcdf37ca42a96bedab7f50b

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
This commit is contained in:
2026-07-08 09:55:19 +02:00
parent b1697874ec
commit 7f07393623
3 changed files with 115 additions and 85 deletions
+31
View File
@@ -1,3 +1,34 @@
## v0.76.0 — restore-test full-fidelity verification (GL-5b / go-live G12) (2026-07-08)
Closes GL-5 finding #2's mirror image: the restore-test's live-source-config bind-override path
tripped the same PVE drop-unlisted-mountpoints rule DR did, so it boot-verified scratch guests
WITHOUT their storage mpN — weaker verification than it claimed, and GL-6 will lean on it.
**0.75.0 was superseded unpublished; this is the Day-0 manifest bump target.**
- **Archive-derived params:** the restore-test now derives its restore params exactly like DR
bring-up — `ExtractArchiveConfig` + `drRestoreOverrides` (the ARCHIVE is the object under test,
not any live guest's current config): rootfs explicit, every storage mpN passed through (its
content genuinely extracted — full fidelity; the added runtime IS the verification), structural
binds → throwaway stand-ins. Unreadable archive config / unknown bind topology → refuse UP FRONT
(never restore a partial guest to "verify" it).
- **Mount-parity assert (the non-hollow core):** pre-start, the restored scratch's mpN set is
compared against the archive's — a missing, mispathed, undersized, or extra mpN FAILS the test
naming the delta. PVE rule (b) can never regress into a green light again. `MountParity`
("ok"|"mismatch") + `MountInventory` ride the result and the hub wire record (additive keys — an
older hub ignores them).
- Dead code deleted with its tests: `bindMountOverrides`, `archiveVMID` + the volid regexes (the
restore-test was their only caller; a reachable dead lookalike is how the next bug happens).
`throwawayVolumeOverride`/`rootfsSizeGB`/`mountPathOf` live on under `drRestoreOverrides`.
- DR bring-up, 4d, KeepMAC, grows, caps: untouched (bringup.go had zero line changes — the §13
DR re-run trigger did not fire).
- Tests: Scenario A (exact 5-param derivation from the archive + parity ok + inventory + teardown),
B (dropped mp0 → FAIL naming it, never started, still torn down; RED-PROOF: with the parity
assert removed the run passes silently — run→fail→revert), C (extract-failure + unknown-topology
refusals, no restore attempted), D (provision/DR bring-up tests all green, byte-untouched);
`mountParity` pure-function matrix (parity/missing/mispathed/undersized/extra/trivial).
- Live validation + publish: REPORT.md (full-fidelity runtime measured vs the ~3m data-less shape;
`AGENT_VERSION`/`AGENT_SHA256` recorded verbatim for the operator's manifest bump).
## v0.75.0 — DR bring-up structural bind overrides + real-bind swap (GL-5 / go-live G8) (2026-07-08)
Implements the verdict of `felhom.eu/documentation/audits/SPIKE-dr-bindmount-source-2026-07-07.md`: