1.9 KiB
REPORT — v0.342.0 (unreleased): the upload and CPU watch (2026-10-23 night)
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).
What was built (a9c1997, CI run 2270 success)
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).
Live (scratch 9202, 0.342.0-rc.1, set by hand — never offered to a household)
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.
Not done / open
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).