Files
felhom-controller/REPORT.md
T

28 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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).