docs: fleet floor raised to 0.253.0 — evidence and the operator note
gates / gates (push) Successful in 23s

The floor went 0.250.0 -> 0.253.0 with min_agent 0.131.0 declared, which is what carries a floor
above the vouched golden (R-472). Agent versions were checked FIRST, because the floor is held for
a box whose agent is below the requirement.

Positive observables at both ends, and the box's is the one that counts: the hub logs "managed
floor SERVED … from declared", and demo-felhom's own log reads "settle-gate: GO — at/above floor
0.253.0 (we are 0.253.0)" with the running image and four untouched containers to match. The
release then answered in both languages on that second box.

What the table must not be read as: the two DOWN customers got nothing and will take 0.253.0
unattended when they next report, from 0.115.0 and 0.245.0 — nobody has carried a box forward
from 0.115.0 in one step. Ordinary for a floor, and stated rather than left implied.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
2026-09-18 12:23:05 +02:00
parent 08e9ddbd5c
commit ed0b0f5c92
2 changed files with 55 additions and 2 deletions
@@ -0,0 +1,48 @@
# Fleet floor raised to 0.253.0 (2026-09-18, operator asked)
**Before:** `min_controller_version` 0.250.0, `min_agent` 0.131.0.
**After:** `min_controller_version` **0.253.0**, `min_agent` **0.131.0** (the value the v0.253.0
CHANGELOG header declares; `minagent_header_gate.py` guarantees that line exists).
The floor is ABOVE the vouched golden (0.246.0), so the declaration is what carries it — an
undeclared floor above the golden is HELD by design (R-472, hub v0.112.0).
## What it reached, and what it could not
| customer | before | status | after |
|---|---|---|---|
| Demo Ügyfél (demo-felhom, N100) | 0.250.0 | ONLINE | **0.253.0**, in ~20 s |
| Demo HP | 0.253.0 (hand-deployed for the live proof) | ONLINE | unchanged |
| Peti Proxmox | 0.115.0 | **DOWN, last seen 65 days ago** | nothing — it takes the floor when it returns |
| Tester 1 | 0.245.0 | **DOWN, last seen 1 day ago** | nothing — same |
Agent versions checked first, because the floor is held for a box whose agent is below the
requirement: demo-felhom **0.132.0**, demo-hp **0.132.0**, both above 0.131.0. (`drill-r50` is a dead
drill host on 0.129.0 and reads `floor held` — correct, and it has no customer.)
## Positive observables, both ends
Hub:
```
[INFO] Global controller-version floor set to "0.253.0" (declared MinAgent "0.131.0")
[INFO] managed floor SERVED for demo-felhom: floor 0.253.0, agent requirement "0.131.0"
from declared (golden 0.246.0)
```
The box (demo-felhom guest 9201), which is the half that matters — the hub SAYS, the box DOES:
```
/etc/felhom-controller-image = gitea.dooplex.hu/admin/felhom-controller:0.253.0
docker ps = …:0.253.0 Up 26 seconds (healthy)
[INFO] [offsite-apply] settle-gate: GO — at/above floor 0.253.0 (we are 0.253.0)
```
Its other four containers (traefik, cloudflared, filebrowser, opengist) stayed up across the update.
And the release works on this SECOND box, in both languages — `/login?flash=flash.login.password_changed`:
„Jelszó sikeresen módosítva. Kérjük, jelentkezzen be az új jelszóval." / "Your password is changed.
Sign in with the new one."
## What a reader should NOT conclude from this
The two DOWN customers have not been tested on 0.253.0 and will take it unattended when they next
report. Their boxes are on 0.115.0 and 0.245.0 — 0.115.0 in particular is a long way back, and no
box has been carried from there to 0.253.0 in one step by anyone. That is the ordinary consequence of
a floor and is not new today, but it is the honest reading of the table above.