v0.238.0: the page follows the update, and a held app offers no way to start it (update arc slice 4 Part 4)
gates / gates (push) Successful in 13s

No behaviour change on the box — the surface only.

- Frissítés follows the job: the button shows the phase label (polling GET /api/stacks/{name}
  every 3 s) and the page reloads when updating goes false.
- An updating card offers no lifecycle button; a held card (failed update OR failed restore) shows
  the hold sentence with a Mentések link and nothing that would start it; a failed update that held
  nothing shows its sentence above the buttons. app_info shows the same three notices.
- The updating/held checks run BEFORE isOperational, which counts `restarting` as operational — how
  the 2026-09-01 spike saw a green Frissítés beside a crash loop. Pinned with StateRestarting
  fixtures; red-proofed by moving the checks after it (both tests fail).
- No new CSS, no version number.

Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
2026-09-13 12:07:35 +02:00
parent 0d402f711d
commit 129201abab
6 changed files with 137 additions and 1 deletions
+5
View File
@@ -596,6 +596,11 @@ the boot sweep) puts a pin back or marks an interrupted update for `ResumeInterr
since v0.237.0 the drive-return gate and the nightly volume dump. The nightly capture and Tier-2 run
skip a held app so its restore point is not overwritten.
**The page (v0.238.0).** `Frissítés` follows the job — the button shows the phase label and the page
reloads when the update ends. An updating card offers no lifecycle button; a held card shows the hold
sentence with a `Mentések` link and nothing that would start it; a failed update that held nothing
shows its sentence. These checks run BEFORE `isOperational`, which counts `restarting` as operational.
**Not done, deliberately:** the old version is never put back automatically — whether that works is
per-app and was measured unpredictable. Reasoning: `felhom.eu/documentation/architecture/09-update-architecture.md` §6.