diff --git a/CONTEXT.md b/CONTEXT.md index f7cb47c..dbecf1c 100644 --- a/CONTEXT.md +++ b/CONTEXT.md @@ -7,7 +7,14 @@ > > Ask Claude Code: "Please update CONTEXT.md with what we did today" -Last updated: 2026-09-23 (v0.264.0 — the household is told when an update is undone or held) +Last updated: 2026-09-23 (v0.265.0 — R-634's cause fixed, held badge, OOM storm) + +> **2026-09-23 (late evening) — v0.265.0 (R-634, R-625, R-636, R-647).** A whole-box backup no longer +> stops/restarts a DEPLOYING app (`ListDeployedStacks` skips `Deploying`; the volume leg re-asks via the +> optional `deployingReporter`; `StopStack`/`StartStack` → `ErrStackDeploying`). Held apps: badge +> `badge.update.held`, no Update button. OOM: the kernel `oom_kill` counter (the `OOMKilled` flag is sticky); +> ≥20 kills / 30 min per container run → one `app_oom_storm`. Web `readerFuncs` render hold/error per reader +> in EVERY language. Needs hub v0.121.0. Floor 0.265.0. Open: R-649 (operator), R-650 (tests on real docker). > **2026-09-23 (evening) — v0.264.0 (`09` §6.4 parts 2–3; R-606, R-620, R-646).** Two events, > `app_update_undone` / `app_update_held`, one per app per outcome, via `Manager.SetUpdateEventSink` diff --git a/REPORT.md b/REPORT.md index 537318d..40d374a 100644 --- a/REPORT.md +++ b/REPORT.md @@ -1,31 +1,29 @@ -# REPORT — controller v0.264.0: the household is told when an update is undone or held (2026-09-23) +# REPORT — controller v0.265.0: R-634's cause fixed, held apps say so, the OOM storm (2026-09-23) -`09` §6.4 parts 2–3; R-606, R-620, R-646. Commit `bc27894`. MinAgent 0.131.0 (unchanged). Needs hub -v0.120.0 (deployed first). **Floor raised to 0.264.0** after the live proof. Full report, mails and -evidence: `felhom.eu/REPORT.md`, `felhom.eu/documentation/audits/undo-fleet-2026-09-23/`. +R-634, R-625, R-636, R-647. Commit `0054d4b`. MinAgent 0.131.0 (unchanged). Needs hub v0.121.0 (deployed +first). **Floor raised to 0.265.0.** Full report, the brief's wrong claims, evidence: +`felhom.eu/REPORT.md`, `felhom.eu/documentation/audits/cleanup-2026-09-23/`. ## Not done, or changed -- R-606 has three leftovers → **R-647**: a reader in the other language than the box sees a HELD sentence - in the box's language; the English mail's raw `Note:` keeps the Hungarian `copy_holds`; two log wordings. -- Added beyond the brief: a one-time box-side seed + two notifications-page toggles (the page pushes its - list to the hub on save, which would undo the hub's migration). -- The undone line ends „nincs teendőd" (the product's „te" voice), not „teendője nincs". +- R-634: the backup race is fixed; the deploy's OWN failure leaving containers is an operator question → R-649. +- R-625: the Update button was already hidden on the list; the fix is the badge (both hold kinds). +- R-636: the flag cannot count (sticky) — the kernel `oom_kill` counter is read instead. +- My first test draft ran real docker on DooPlex (an empty volume) — removed; tests use seams; R-650. ## What shipped -- `app_update_undone` (warning) / `app_update_held` (error), one per app per outcome, via - `Manager.SetUpdateEventSink` (main.go); held mails carry the hold sentence in the household's language. -- Update sentences stored as key + args and rendered per reader on both pages and `GET /api/stacks/`; - stored Hungarian byte-identical. -- `BackfillAppliedMeta` at startup (R-646). Disabled notifier: one WARN per type, then DEBUG (R-620). +- **R-634:** deploying apps leave `ListDeployedStacks`; the volume leg re-asks (`deployingReporter`) and + SKIPs; `StopStack`/`StartStack` → `ErrStackDeploying`. +- **R-625:** badge `badge.update.held` „Megállítva — visszaállítás szükséges" / "Stopped — restore needed". +- **R-636:** `ScanOOMKilled` reads `oom_kill`/`memory.max`/`memory.peak`; ≥20 kills in 30 min per container + run → one `app_oom_storm` (error, operator-only). +- **R-647:** `readerFuncs` (every language) + `UpdateErrorKeyHeld`; `copy_holds` as a key; two log wordings. -## Red-proofs (9, each seen failing) -Backfill stores nothing; `dropped()` not called; undone event not emitted; held event not emitted; page -error text not localised; hold sentence ignores the language; `UpdateErrorIn` returns Hungarian; box -seed not run; sink not wired in main (retried with a compiling mutation). Messages in `felhom.eu/REPORT.md` §6. +## Red-proofs (8 here, each seen failing) +Backup skip; StopStack guard; held badge (v0.264.0 shape); reader funcs; copy_holds phrase; health +severity; storm escalation; counter read. Messages in `felhom.eu/REPORT.md` §3. -## Live -9202: undone + held, pages hu/en, WARN-then-DEBUG, backfill 3. 9201 (hub on): 4 household + 4 operator -mails in hu and en, `notification_log` 937–946 all sent, backfill 10. Both torn down to their standing -apps and the live catalog; both on 0.264.0. +## Live (9202) +R-634 race run across a live deploy — the backup stopped three other apps and never the deploying one; +held badge + no button + 409 in all four box/reader language pairs; RomM storm at 21 kills, one line at 49. `go test ./...` rc=0; `controller_gates.py` rc=0.