diff --git a/CHANGELOG.md b/CHANGELOG.md index f44b60b..3b41e24 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -## v0.342.0 (unreleased — committed 2026-10-23 night, NOT released; a test image `0.342.0-rc.1` for scratch 9202 only) — the upload and CPU watch (operator ruling 2026-10-23 19:22) +## v0.342.0 (2026-10-24) — RELEASED on the operator's yes (attended release run; image sha256:d002d3b7…, from `42cda07`, CI 2283) — the upload and CPU watch, the tested line and qBittorrent's limit **MinAgent: 0.158.1** (unchanged). **Hub dependency:** the four new event types need hub 0.169.0 (committed the same night, not built); an older hub answers 400 and the event is dropped (logged), nothing else breaks. Task: the weekend- diff --git a/REPORT.md b/REPORT.md index 97fdbca..0d6a66d 100644 --- a/REPORT.md +++ b/REPORT.md @@ -1,27 +1,28 @@ -# REPORT — v0.342.0 (unreleased): the upload and CPU watch (2026-10-23 night) +# REPORT — v0.342.0 released: the upload and CPU watch, the tested line, qBittorrent's limit (2026-10-24) -Task: the weekend-night brief, Part 2 (spike → design → build, commit only). Operator ruling 2026-10-23 19:22. -Design: felhom.eu `documentation/architecture/08-alarm-ladder.md` §9 [DESIGN — proposed]. Spike, numbers and live -proofs: felhom.eu `documentation/audits/SPIKE-upload-watch-2026-10-23.md`. Baseline: `277e998` (0.341.0, released). +Task: the attended release brief (operator rulings 2026-10-24 07:22 / 07:26: D41 = 50 %, D42, the weekly iperf3 line +test). Design: felhom.eu `architecture/08-alarm-ladder.md` §9; the spike `audits/SPIKE-upload-watch-2026-10-23.md`. -## What was built (`a9c1997`, CI run 2270 success) +## What changed since last night's build -- `internal/upwatch`: exact per-container counters (Docker Engine API), per-app judging (upload ≥ max(5 Mbit/s, 25 % of - the line) for 15 min; CPU ≥ max(150 %, 50 % × cores) for 30 min), explainers qBittorrent / Transmission / Plex, - `app_unexplained_upload` / `app_unexplained_cpu` + `_cleared` (operator-only on hub 0.169.0), the line from a - one-second sample of the off-site push, qBittorrent's default limit (50 %, the household's limit always wins). -- One line on the system settings page (the measured line), one on qBittorrent's page (the limit, while the box owns it). -- 18 new tests; 20 mutations each seen failing (CHANGELOG lists them); the system page's four frozen Hungarian renders - gained one row each (diffed: nothing else moved). +- The controller reads the host's weekly line test from the agent (`GET /host/line-test`, agent ≥ 0.164.0; + `agentapi.LineTest`): qBittorrent's limit is 50 % of the TESTED line only, the watch judges against the higher of test + and push floor, the system page names the source (`ed1011b`). The start line's wording (`42cda07`). +- MinAgent stays **0.158.1** — an older agent answers 404, read as „not measured" (no limit, the floor stays). -## Live (scratch 9202, `0.342.0-rc.1`, set by hand — never offered to a household) +## Release (the normal path) -The limit set (19:47:42Z); a real seed judged explained (20:04:42); a CPU burner in Plex alarmed once at 30 min -(20:07:42) and cleared once (20:25:41); a flood from inside qBittorrent hidden behind the real seed alarmed once -(20:19:42: 65.0 Mbit/s sent, 20.0 counted) and cleared once (20:41:41); a limit changed by hand was left alone -(20:32:42). 9202 is back on 0.341.0. +1. `0.342.0-rc.2` on scratch 9202: healthy, the watch started (9202 has no local API, so no line there — by design). +2. `0.342.0` built and pushed (sha256:d002d3b7…); per-customer floors for Tester 1, demo-hp, demo-felhom (08:05:59Z, + 303 `floor_set`); all three healthy on 0.342.0 by 08:08Z; 0 unhealthy, 0 restarting, 0 errors; https-only rc 0. +3. Each box read its tested line at start: Tester 1 94.3, demo-hp 94.4, demo-felhom 92.6 Mbit/s. +4. demo-felhom's qBittorrent (unlimited before): limit **5 789 696 B/s (46 Mbit/s = 50 %)** at 08:20:56Z — the log, + qBittorrent's own `GlobalUPSpeedLimit=5654` KiB/s and the box's record agree. +5. The global floor: on the operator's yes, after this commit (own save). -## Not done / open +Evidence: felhom.eu `documentation/audits/line-test-2026-10-24/controller-0342-boxes.txt`. -Not released (R-1244, the operator's yes; R-1245 the limit size; R-1246 who is told). The line is a lower bound -(R-1247); an app's API can lie (R-1248: a `tc` ceiling, measured, not built). MinAgent unchanged (0.158.1). +## Not shown live + +The family's line on qBittorrent's page (the household's password is not CC's); pinned by +`TestUpwatch_QBLimitLineOnQBittorrentsPageOnly`.