Fix fan discovery, invalid readings, Settings navigation, and disk caching - #95
Merged
offyotto merged 1 commit intoSep 19, 2026
Conversation
Code Review ✅ Approved🔴 High risk Fixes fan discovery fallback, invalid RPM readings, Settings tab navigation, and disk cache recovery across five reproducible defects. Includes regression test coverage and passes the XCTest suite. No issues found.
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 |
offyotto
approved these changes
Sep 19, 2026
offyotto
disabled auto-merge
September 19, 2026 09:21
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Change
Fix five reproducible fan-reading, Settings, and disk-cache defects:
FNumis unavailable, scan every candidate fan slot instead of returning after the first match. The app and privileged helper share the tested fallback, including sparse IDs and min/max-only keys.0in the fan menu bar value when the highest valid reading is zero; retain the unavailable marker when no valid reading exists.Fixes #93. Addresses #94 items 3, 14, 15, 19 (fan label), and 20. The rest of #94 and the hardware-validation issues #49–#52 remain open.
Verification
macOS build, XCTest suite, and optimized helper lifetime check all pass in fork CI. The validation branch has identical application, helper, and test sources; its only extra change enables the existing CI workflow on that fork branch.
Added regression coverage for multiple/sparse fans, missing and zero RPM readings, disk-cache failure/recovery, and Settings window reuse/reopening. Registered the affected tests in the Xcode test target and the shared fan detector in both app/helper targets.
git diff --checkpasses.Developed on Windows. No physical Apple Silicon fan-control/thermal testing or manual visual inspection was performed. Automated Settings tests create and inspect the hosted macOS window; sensor and disk-failure tests use controlled inputs.
Tests cover the changed behavior.
User-facing changes are documented.
Security-sensitive changes were reviewed for privilege, XPC, signing, and SMC impact. The helper change affects fan discovery; real-device fan restoration remains unverified.