diff --git a/CONTEXT.md b/CONTEXT.md index f37d2f35..882185c6 100644 --- a/CONTEXT.md +++ b/CONTEXT.md @@ -1,5 +1,12 @@ # CONTEXT.md — Project Memory +> **2026-10-29 (evening, attended) — v0.349.0 RELEASED, the global floor since 19:24 CET (MinAgent 0.158.1).** Image +> `sha256:c5341883…` from `94049a7`. D65 = A: `internal/busymark` keeps `/ctl/busy` fresh while the controller's +> own work runs (the agent refuses „Reboot guest" meanwhile); the dashboard shows „A Felhom ügyfélszolgálata HH:MM-kor +> újraindította a dobozt." for a day after an operator reboot (`GET /guest/operator-reboot`, asked once at start). +> R-1350: the operator's hold clear records the stop as wanted (desired state „stopped") before the hold is lifted — +> proven on Tester 1, no `app_start_failed` in 6.5 minutes. 30-minute watch clean; per-box floors cleared. + > **2026-10-29 (afternoon, attended) — v0.348.0 RELEASED, the global floor since 14:48 CET (MinAgent 0.158.1).** Image > `sha256:672fc1c1…` from `2a0a17a` (CI 2515). D64 = B (`09` §3 decision 283): `clear_hold` is the fifth verb of the closed > operator-action list; any hold reason; the running controller clears memory and `settings.json` together through diff --git a/REPORT.md b/REPORT.md index e79c721c..068c49d6 100644 --- a/REPORT.md +++ b/REPORT.md @@ -1,40 +1,39 @@ -# REPORT — v0.348.0 released as the global floor: „Clear hold" from the hub (2026-10-29, attended) +# REPORT — v0.349.0 released as the global floor: the busy file and the household line for „Reboot guest" (D65 = A); no alarm after a hold clear (R-1350) (2026-10-29 evening, attended) -**Plain words first.** The controller 0.348.0 is the floor for every box since 14:48 CET. The operator can now clear any -held app from the hub (D64 = B); the running controller clears it and saves at once, so a later save cannot bring it -back (R-1343). The box command (`--clear-restore-hold`) goes through the running controller too. The held-app mail names -the real cause (R-1340), the OOM line is logged once per kill (R-1341), and a restore copy cannot be deleted during the -30-minute stable-start watch (R-1342). +**Plain words first.** The controller 0.349.0 is the floor for every box since 19:24 CET. While it runs a backup, a +restore, an off-site run, the night catch-up, an app update or an app export/import, it keeps a small „busy" file fresh, +and the agent refuses the operator's „Reboot guest" until it ends. After an operator reboot the dashboard says „A Felhom +ügyfélszolgálata HH:MM-kor újraindította a dobozt." for a day. When the operator clears a hold and the app stays +stopped, no „Telepített alkalmazás nem fut" follows any more (R-1350). ## Commits | Commit | CI (job id) | What | |---|---|---| -| `652a690` | 2500 green | R-1342 (from the morning, first released now). | -| `5b3b541` | 2508 green | `clear_hold` in the closed operator-action list; the socket `/ctl/hold.sock` (0600 in a 0700 folder, peer uid checked); `ClearHoldByOperator` also drops a waiting put-back from the app-stop marker; R-1340 hold mail from the hold record; R-1341 OOM line once per kill. Tests red first. | -| `6077ac0` | 2509 green | R-1343 fallback: with no controller running, the box command's own edit goes through the same clear door. Test red first. | -| `99fac06` | 2514 green | R-1340 second producer: `RestoreHold.Why()` builds the restore_mixed text from the record (found live on rc.1). Test red first. | -| `2a0a17a` | 2515 green | v0.348.0 CHANGELOG heading — the release build's commit. MinAgent 0.158.1. | +| `b69e90b` | 2521 green | `internal/busymark` (the busy file, 15 s, removed when idle and at start) wired with five probes; `agentapi.OperatorReboot` + `web.WatchOperatorReboot` + the dashboard line (HU/EN, `dashboard.operator_reboot`; the idle dashboard byte-identical); R-1350: `stacks.Manager.RecordStopWantedIfDown` run through `AppStopGuard.ClearHoldByOperatorThen` once the hold is found and before it is lifted. Tests red first (R-1350: build failure, then the mutants); 17 mutants killed (two first-run mutants did not compile and were re-made). | +| `94049a7` | 2526 green | v0.349.0 CHANGELOG heading — the release build's commit. MinAgent 0.158.1. | ## Release -- rc.1 (`5b3b541`+) and rc.2 (`2a0a17a`, `sha256:1d96f60c…`) on 9202; the walk green on rc.2 (6 containers, 0 errors, - login and file manager 200; the hold socket present). -- 0.348.0 from a clean clone of `2a0a17a`: `sha256:672fc1c1deaaf1cbeecfc2c5b04da731b076a9194f4ce7ed9678339fcd4548bf`. -- Per-box floors 14:41 CET (Tester 1, demo-hp, demo-felhom; MinAgent 0.158.1): all three on 0.348.0 within 25 s; the - walk green on all three (no unhealthy container, 0 refusals, 0 ERROR lines, login and file manager 200, the socket - 0600) and `https_only_check.py` green. -- Global floor 14:48 CET on the operator's yes (303 `floor_set`; the hub page and the hub log read 0.348.0 / 0.158.1). +- rc.1 (`b69e90b`, `sha256:3bd08409…`) on 9202 (demo-hp): walk green (6 containers, 0 errors, login and file manager 200); + on Tester 1 for the live proofs. +- 0.349.0 from the clean pushed tree at `94049a7`: `sha256:c5341883cd58410ea631fc0c76262d0902a731a24c1096df551e7d35df1ea877`. +- Per-box floors 19:21 CET (Tester 1, demo-hp, demo-felhom; MinAgent 0.158.1): all three on 0.349.0 within 45 s; the + walk green on all three (0 unhealthy, 0 refusals, 0 ERROR lines, login and file manager 200, the socket 0600) and + `https_only_check.py` green. +- Global floor 19:24:23 CET on the operator's yes (303 `floor_set`; the hub log and the configuration page read + 0.349.0 / 0.158.1). -## Live proofs (Tester 1) +## Live proofs (Tester 1, rc.1) -- **Clear from the hub, crash-loop hold (rc.1):** pressed 13:44 CET; gone on the box and on the hub; still gone after the - next settings save (14:00:45). No false `app_start_failed` after the clear in 18 minutes (F2: NOT-A-FINDING). -- **Clear from the hub, restore_mixed hold (fault test build):** the page showed the data warning; cleared; the copy kept. -- **R-1340:** the mixed-hold mail names a local restore, the failed put-back stop and the kept copy; no „database". -- **R-1341:** one WARN line over 4 scans; one `app_oom` event. -- **R-1342 (rc.1):** the list says „checking", the button is off, a delete gets 409; removing the app ended the watch - with no alarm. -- **On the release builds:** see the felhom.eu report `REPORT-release-2026-10-29b.md` (one restart, one clear). +- **The busy file:** an off-site run pressed from the hub → `busy` 11 s later („a backup, a restore or an off-site run is + running"); the run ended 18:04:38 UTC, the file was gone at 18:04:47; the agent refused the reboot meanwhile. +- **The household line:** after the operator reboot the dashboard (logged in, `box_walk`) read „A Felhom + ügyfélszolgálata 19:05-kor újraindította a dobozt." (ASCII control `jraind` present, and the page title). +- **R-1350:** a throwaway Gokapi in a crash loop → held 18:09:57 UTC → cleared from the hub → „desired state for gokapi + recorded as "stopped" (was "running")" → still gone after the next settings save → **no `app_start_failed` in 6.5 + minutes** (before the fix: 30 s after the clear). Positive control: the dead-app scan at 18:17:27 UTC read „20 scans + since boot, 4 deployed app(s) evaluated, 0 currently down". Gokapi then removed through the product (no container, no + app.yaml, no volume). -Evidence: felhom.eu `documentation/audits/release-2026-10-29b/` (`p3-clear-hold/`, `release-controller-0.348.0/`, `final/`). +Evidence: felhom.eu `documentation/audits/release-2026-10-29c/` (`p1-reboot/`, `p3-r1350/`, `release-controller-0.349.0/`).