REPORT: power-off (R-998) released and proven on the N100
gates / gates (push) Successful in 48s

This commit is contained in:
2026-10-13 21:41:33 +02:00
parent 201f936e9a
commit e24430cce5
+28 -20
View File
@@ -1,24 +1,32 @@
# REPORT — felhom-controller v0.309.0 (2026-10-12 evening)
# REPORT — felhom-controller v0.310.0: „A gép kikapcsolása" (2026-10-13)
Baseline 68294ec (v0.308.0). Commits 462196e, 402fa41, 7626a28 (helper session, under the brief's full fences) and the
lead's default-list commit. MinAgent 0.131.0 (unchanged). No wire change, no hub change.
Baseline `1b2f74c` (v0.309.0). Commit `201f936`. **MinAgent 0.155.0.** Needs hub v0.149.0 for the 14-day alarm hold.
Design: felhom.eu `documentation/architecture/14-host-power-off.md`.
## R-388 slice 1 — the notification page in three switches (`08` §8.1, `09` §3 decision 200; operator Q1/Q2 „as picked")
- Three group switches with one sentence each (hu+en); the 18 per-detector switches and the cooldown under a „Részletek"
`<details>` fold (Q2).
- A group is a view over `enabled_events` (`settings.NotificationGroups` = the §8.1 table). A moved group switch sets or
clears its detectors; an untouched one leaves the per-detector switches in charge, so an „egyedi" group is saved back
unchanged. Old forms without group fields behave as v0.308.0.
- Default list (Q1): groups 1 and 3 fully on for households with no saved list; group 2 „egyedi" (`app_start_failed`
off, R-329). No stored prefs are seeded.
- Tests `internal/web/r388_notif_groups_test.go` (7), red-proved (switch-off branch, untouched-group save, switch-on
branch, the default list). Parity: 2 fixtures re-captured, 1 new case.
## What the household sees
## R-521 F7 — the guest's own disk event in the household's language
- The root filesystem is a fill-watch target (since v0.191.0) checked every 10 min (since v0.297.0); now pinned end to end.
- Fixed: the fill warning was Hungarian only — now bundle keys `event.fill.*`, the household text as `message_customer`
(`Notifier.PushEventHousehold`). One Hungarian word changed: the formal „Kérjük," dropped (te-form gate).
- Red-proved three ways (root target removed; household text dropped; watcher renders none).
- Not measured: "/" and `/mnt/sys_drive` may be one filesystem on a box, so one fill could send two disk events.
Beállítások → Rendszer, after the restart cards: „A gép kikapcsolása" — „A gép teljesen kikapcsol. Az alkalmazásaid és a
mentések leállnak. **Újra bekapcsolni csak otthon lehet: nyomd meg a gép bekapcsológombját.**" The button opens a dialog;
the household types KIKAPCSOLÁS (EN: TURN OFF); then „A gép kikapcsol. Néhány perc múlva teljesen leáll…". A refusal
shows one sentence (backup running, just started, other system on the machine…). With an older agent: the button is
hidden and one line says an update is needed.
Suite `go build/vet/test ./...` rc 0; `controller/scripts/controller_gates.py --fast` rc 0.
The restart card now says what it does (R-999): „A Felhom újraindítása" — „Újraindítja a Felhom részt a gépen: a
vezérlőpultot és az összes alkalmazást. A gép maga bekapcsolva marad. Kb. 30 másodpercig semmi nem érhető el, utána
minden magától visszajön. Ha csak a vezérlőpult akad, a fenti „Vezérlő újraindítása" elég." `/api/server/reboot` is
POST only (one of R-983's seven).
## Proof
- `internal/web/poweroff_handlers_test.go` (6 tests): the word, POST only, refusals shown and nothing asked of the agent,
hidden for an old agent, a sentence for every reason in both languages, the restart route refuses a GET. Each guard
red-proofed. The four `settings_system` i18n parity fixtures regenerated on purpose (diff = the new card, the dialog's
type-to-confirm, the restart texts). `go test ./...` and `controller_gates.py` green.
- Live on the N100 (endpoint level — the calls the page makes; no browser on DooPlex): the card and the new texts on
`/settings`, the old heading gone; `POST /api/server/poweroff` with no word and with „igen" → 400 naming the word;
`GET /api/server/reboot` → 405; with KIKAPCSOLÁS → 202, and the machine went off.
## Delivered
Image `gitea.dooplex.hu/admin/felhom-controller:0.310.0` pushed. Hand-deployed to the N100 guest 9201 only (needed for
the live proof). demo-hp and Tester 1 get it with the operator's floor raise (floor 0.310.0, `min_agent` 0.155.0).