54bb4da343
gates / gates (push) Successful in 26s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
27 lines
2.2 KiB
Markdown
27 lines
2.2 KiB
Markdown
# REPORT — v0.275.0: a backup's data and its version travel together (2026-09-26/27)
|
||
|
||
Brief: version-travel (Parts A, D2–D4). Architecture: `07-backup-architecture.md` §6 (+ new §6.6), `09` §3, §5.3, §6.4.
|
||
Session record: `felhom.eu/documentation/audits/DRILL-version-travel-2026-09-26.md`.
|
||
|
||
**Baseline:** `main` `fb2bcdd5d619`, v0.274.0, floor 0.274.0. **Commits:** `b6810f1` (Part A, R-695, R-691 (1), R-694),
|
||
`7fcda8f` (R-699, found live). **Released:** image `0.275.0` (rc `0.275.0-rc1` for the live proofs); floor 0.275.0 with
|
||
MinAgent 0.131.0 — both demo boxes on 0.275.0 within 15 s (`audits/version-travel-2026-09-26/R/`); 9202 by hand (scratch).
|
||
|
||
**Tests:** full suite green (`go build/vet/test ./...` rc=0) after the last change; controller gates all OK. New tests:
|
||
`internal/backup/a_version_travel_test.go` (15), `internal/stacks` `TestA5_TheReleaseRefusesAPreConversionDump`,
|
||
`TestA4_AnOldRecordWithoutAServiceChecksEveryPostgresImage`, `TestA3_RestoredVersionPosition`, `TestR695_*`, `TestR694_*`,
|
||
`internal/web` `TestA3_RestoredVersionSentence`, `TestR695_*`, `TestR691_*` (2), `TestR694_*`; new parity fixture
|
||
`deploy_deployed_restored_login`. Two AST fixture names updated (`TestAdmission_IsWiredIntoEveryProductionWriteLeg`).
|
||
|
||
**Red-proofs (each seen failing, tree restored)** — `felhom.eu/documentation/audits/version-travel-2026-09-26/`:
|
||
RP1 Tier 1 time = manifest ("the refresh 1s made a two-hour-old dump read as new"); RP2/RP2b the refresh rewrites
|
||
`compose/` (the restore started 16 data with `postgres:18`); RP3 no version check (mismatch/mixed restored); RP4 the
|
||
release on a pre-conversion dump ("released [nextcloud]; copies=0"); RP5 off-site uses the live definition; RP6 R-699 (a
|
||
dump-less unit accepted); D2 R-695 ×2; D3 R-691 ×2; D4 R-694.
|
||
|
||
**Live (endpoint level, 9202):** `A5-live/README.md` — both shapes restore the old version whole and climb again; the box's
|
||
own night showed the frozen definition and the data-time restore point.
|
||
|
||
**NOT yet live-validated:** the off-site restore's definition write; the conversion-copy release on a real 18 dump (due
|
||
after 9202's next nightly backup); R-691 (1) with a real 0770 folder; the English restore sentence.
|