REPORT: the 2026-10-25 night — committed fixes, CI by hash, teardown. Docs only.
gates / gates (push) Successful in 1m41s

This commit is contained in:
2026-10-25 23:53:46 +01:00
parent fbec5cb499
commit 9c1dfdd71f
+20 -38
View File
@@ -1,46 +1,28 @@
# REPORT — controller v0.343.0 released (2026-10-25, attended release run)
# REPORT — six fixes for v0.344.0, committed, not released (2026-10-25 night, unattended)
**Plain words first.** Every box now runs 0.343.0. A restore whose app does not start says so and keeps both the
restored data and the old copy (operator ruling D49 = A); the old copy goes only after the app ran stably for 3 more
minutes. A `.fab` import that cannot download its version refuses before it touches the app. A reinstall never writes
into the old backup — it sets it aside whole, and now tells the operator. Full record: felhom.eu
`REPORT-release-2026-10-26.md` and `documentation/audits/release-2026-10-26/`.
**Plain words first.** Six controller fixes are on `main`. None is released: the release is Monday's, attended
(felhom.eu `STATUS.md`, the Monday list). MinAgent stays 0.158.1. Each fix was seen failing first (red-proof), and four
were seen working on a throwaway test VM (BYO install on demo-hp, guest 9201, test images `0.344.0-rc.1`…`rc.3`). The
test VM is destroyed.
## Commits (each pushed, CI green by hash)
## Each fix, before → after
| commit | CI job | what |
|---|---|---|
| `7720439` | 2319 | D49 = A follow-ups: fix A (the undo copy only after a stable start; a watch ends only for a newer restore) and fix B (R-1279: the `.fab` import downloads first) |
| `2149a13` | 2321 | fix A on the page too: the first verdict needs a stable 45 s on every path |
| `35232de`, `1ee0353`, `3a1f09d` | 2322, 2324, 2327 | fix A, found live on 9202: the sampler's DEBUG reasons, Docker's stderr kept, and docker inspect read as JSON (a `-f` template failed on every app without a healthcheck) |
| `935e624` | 2328 | D47 follow-up: a set-aside tells the operator once (`backup_run_failures`, leg `unit-set-aside`, own run id) |
| `e2a9761` | 2330 | v0.343.0 release header; README (fix A, fix B, the D47 line) |
| Row | Commit | Before | After | Live proof |
|---|---|---|---|---|
| R-1261 | `a79a292` | the line test held only one seeder; a record of an app removed while held stopped the 50 % rule for good; qBittorrent's limit went back into whatever slot its speed mode showed | every running seeder is held; a removed app's record is dropped; qBittorrent's hold names its slot (`up_limit` / `alt_up_limit` through `app/preferences`) | yes — two seeders held, 94.8 Mbit/s, both limits back; a mode switch mid-test never left 1 KiB/s |
| R-1288 | `b5863a9` | a restore of a set-aside unit set the replaced install aside at the NEXT backup, with a second alarm | set aside at the restore, no alarm | yes — one set-aside mail only |
| R-1282 | `b5863a9` | the 03:30 „restart later" for the media library was forgotten by a controller restart | the time is stored and resumed at start, once | no — unit tests only |
| R-1286 | `838c834` | every restore hold read „a failed restore whose rollback also failed" | each hold reason has its own sentence (start gate, boot sweep, `--restore-holds`) | read only (Kimai on demo-hp: `unhealthy_stop`, the 10-14 power drill); the hold was NOT cleared |
| R-1281 | `7ea942a` | an app container reached FileBrowser on `traefik-public` and signed in with a forged header (200) | FileBrowser is on its own `felhom-files` network (traefik, and OnlyOffice while linked); an app gets no answer | yes — forged header 200 → 000; the household's file manager still 200, no cookie 401; the move-off path seen |
| R-1278 | `fbec5cb` | a new install of an app with a kept backup gave no hint | the install page says a backup is kept and links the restore page (HU + EN) | no — render tests per branch |
## Red-proofs (felhom.eu `audits/release-2026-10-26/redproof/`)
**Upgrade note (R-1281):** the rendered FileBrowser compose changes, so FileBrowser is re-created once on upgrade.
`fixA-first-sample.txt`, `fixA-own-restore-race.txt`, `fixA-page-verdict.txt`, `fixB-no-prepull.txt`,
`d47-setaside-notify.txt` — each test seen failing with its fix switched off.
## Gates and CI (by commit hash, `jobs` endpoint)
## Live proofs
`a79a292` 2340 ✓ · `b5863a9` 2343 ✓ · `838c834` 2346 ✓ · `7ea942a` 2347 ✓ · `fbec5cb` 2348 ✓ — all `run_attempt` 1.
- **9202, rc.6:** an image that exits after 20 s → „még nem indult el", the copy kept, one operator line; the original
unit back → success, the copy released 3 min later. A `.fab` with a missing tag → refused with the D48 sentence,
containers and volumes untouched.
- **9202, rc.7:** a reinstall's set-aside raised the operator event in the same second; the set-aside restore brought
the account back.
- **Release build on Tester 1:** a unit restore and a set-aside (kept-data) restore — the item back each time, „ran
stably for 3m0s … the restore copy is released" each time; Tandoor removed through the product, nothing left.
- **Upgrade (D47):** install ids recorded at start — Tester 1 3/3, demo-felhom 5/5, demo-hp 11/12 (kimai held since
2026-10-14, R-1286); 0 units set aside. Three boxes: 0 ERROR lines, all containers up, https-only green.
## Evidence
## Rollout
rc.6/rc.7 on 9202 → `0.343.0` pushed (`sha256:bb3da72a…`) → per-box floors on Tester 1, demo-hp, demo-felhom (all
three on 0.343.0 at 17:17 UTC) → the operator's yes → global floor 17:53:42 UTC, MinAgent 0.158.1, read back in the hub
log. MinAgent unchanged (an agent before 0.165.0 never reports `waiting_for_quiet`, so the line hold stays idle).
## Found, filed (felhom.eu register)
R-1287 (a set-aside mails „failed to back up"), R-1288 (a set-aside restore leaves the reinstall's unit for the next
writer — a second kept copy and alarm), R-1286 (demo-hp kimai held since 10-14). R-1261 (three line-hold edges) acts only
on a box with agent ≥ 0.165.0.
felhom.eu `documentation/audits/night-2026-10-25/` (red-proofs per row, `rig/` live output) and
`REPORT-night-2026-10-25.md` there.