Fix fan recovery, sampling races, network counters, and UI state - #96
Conversation
Code Review ✅ Approved 1 closed / 1 findings🔴 High risk Comprehensive fix for ten fan-control, monitoring, and UI state issues, including XPC lease supervision, fan ID validation, sampling race conditions, network counter handling, and locale-aware UI state. All 121 tests pass with strong regression coverage. Consider adding "Charging" and "AC Power" entries to
✅ 1 closedClosed: Quality: Charging/AC Power battery states not localized
Review coverageAuto-approval Approved OptionsAuto-apply is off → Gitar will not commit updates to this branch. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Powered by Gitar — free for open source |
Change
Fix ten fan-control, monitoring, and UI state findings from #94.
Addresses #94 items 1, 4, 8, 11, 16, 17, 21, 25, 26 (stale weather), and 27. Other #94 findings and hardware-validation issues #49–#52 remain open.
Verification
git diff --checkpasses. The battery precision fixture avoids an exact rounding midpoint and specifies its locale, so it tests precision without assuming a different native rounding rule or the tester's language setting.Compatibility and validation limits
Update the app and reinstall the bundled helper together. The app checks the helper's safety protocol before manual writes. Standalone CLI
setis no longer supported because an exiting process cannot supervise an override;readandautoremain available.No physical Apple Silicon fan, thermal, signing/install, sleep/wake, or manual visual validation was performed. Lease tests simulate hardware callbacks; the watchdog requires a running helper and responsive SMC calls and does not claim recovery from helper/system crashes. See runtime behavior and validation.
New battery phrases include English, Swedish, German, French, and Spanish; existing catalog translations are reused where available, and other missing translations fall back to English.
Tests cover the changed behavior.
User-facing changes are documented.
Security-sensitive changes were reviewed for privilege, XPC, signing, and SMC impact; existing client authorization remains enforced, and hardware-dependent behavior is explicitly unverified.