{ "title": "Fix HZ-as-CPU off-by-one in usage_report and restore the native helper", "objective": "The usage report must attribute CPU time from atop's utime/stime columns, not its HZ field. Success means short-lived, near-zero-CPU processes (xset, dd, chronyc, sleep) no longer appear in the Top CPU table, real consumers rank correctly, and both the Python parser and the restored native C aggregator agree on the numbers.", "acceptance_criteria": [ "_parse_prc skips the HZ field; xset/dd/chronyc report ~0 CPU-seconds.", "The native C helper builds from linux_configuration/C/atop_agg and emits the same CPU figures as the Python path.", "A regression test feeds a raw PRC line including the HZ field and fails against the pre-fix indices.", "usage_report.py runs end-to-end and the Top CPU table is led by genuine consumers (e.g. SkyrimSE)." ], "out_of_scope": [ "Rewriting the digital_wellbeing polling daemons that generate the fork storm.", "Achieving 100% line coverage of the C helper's defensive OOM/hash-full paths." ], "verifier": "python3 usage_report.py --date 20260604; make test in linux_configuration/C/atop_agg; python3 -m pytest linux_configuration/tests/test_usage_report_since.py" }