diff --git a/REPORT.md b/REPORT.md index e4fa45d..8559559 100644 --- a/REPORT.md +++ b/REPORT.md @@ -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" - `
` 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).