diff --git a/CHANGELOG.md b/CHANGELOG.md index 229ce24..53f9116 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,24 @@ +## v0.134.0 — a whole-box backup that cannot fit is skipped with a reason, before anything starts (2026-09-25 night, R-685) + +> **RELEASED 2026-09-24 night** by `scripts/release-agent.sh` — tag `v0.134.0` (`0722b2c`), sha256 `7593bebe03234c7d22f3ade384e7ed7787dc659aa8c8594b3ee19af2ce81c72d`, verified by download. **NOT vouched** (Day-0 stays on the previous version). + +**MinAgent impact:** none required by any controller. + +- **R-685 — the backup space preflight** (`backup/runner.go` `spaceFits`). Before a vzdump to a LOCAL (non-PBS) + target, the newest archive of that guest on that target × 1.25 + 1 GiB must be free — PVE prunes old archives + only AFTER a successful backup, so the kept ones still stand during the run. A shortfall is a skip: nothing + starts, the record's Error reads `skipped: not enough space: has X GiB free; the last archive of guest N + was Y GiB, so a new one needs about Z GiB …` (stable prefix `BackupSkipNoSpacePrefix`), and it reaches the + controller's tier view and, through the quiesce loop's tier notifier, the operator's `whole_guest_backup_failed`. + It FAILS OPEN on what is not known (PBS target, first backup, unreadable usage). +- **Free space is read from `GET /nodes//storage`** (`NodeStorage`), never `GET /storage` — the latter is the + cluster DEFINITIONS and carries no usage. **Found live, before release:** the first build read `/storage`, + failed open, and a real vzdump of demo-hp 9201 started from the live test; it was aborted after 5 min 16 s, no + archive left (`felhom.eu/documentation/audits/night-2026-09-25/F/`). The test fake's `ListStorage` now strips + usage like production. Red-proofs: two (`…/F/redproof-r685-*.txt`). +- Live proof (demo-hp, safe builds with a hard stop before vzdump): ×10 margin → refused, "local has 14.9 GiB + free … needs about 77.2 GiB"; release margin → "space preflight passed" need 11.3 GB, avail 16.0 GB. + ## v0.133.0 — a restore-test can never fill a box's disk; leftovers retried on a timer (2026-09-24, R-672, R-673) > **RELEASED 2026-09-24** by `scripts/release-agent.sh` — tag `v0.133.0` (`9bdb4da`), sha256 `3aa303452b8c6be58573d00af01a0ab4a0d97e4f885ffecd0144a18ac24e69b6`, verified by an independent anonymous download. **NOT delivered** (needs an operator-signed `agent_update` job per box, R-530) and **NOT vouched**.