Skip to content

Fix fan discovery, invalid readings, Settings navigation, and disk caching - #95

Merged
offyotto merged 1 commit into
offyotto:mainfrom
OGSmokeStudios:fix/fan-readings-settings-disk-cache
Sep 19, 2026
Merged

offyotto merged 1 commit into
offyotto:mainfrom
OGSmokeStudios:fix/fan-readings-settings-disk-cache

Conversation

@OGSmokeStudios

@OGSmokeStudios OGSmokeStudios commented Sep 19, 2026 •

Copy link
Copy Markdown
Contributor

Change

Fix five reproducible fan-reading, Settings, and disk-cache defects:

  • When FNum is 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.
  • Exclude failed RPM readings from low-speed alerts while retaining warnings for slow fans and critical alerts for genuine zero-RPM stalls under heat.
  • Show 0 in the fan menu bar value when the highest valid reading is zero; retain the unavailable marker when no valid reading exists.
  • Apply the requested Settings tab to the existing hosted view, including after manual tab changes or reopening the window.
  • Retain the last successful disk statistics and timestamp after failed or incomplete reads, allowing a retry on the next sample without changing the normal successful-refresh cadence.

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 --check passes.

  • 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.

@gitar-bot

gitar-bot Bot commented Sep 19, 2026

Copy link
Copy Markdown
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.

Auto-approved: No blocking issues found.
Please see Auto-approve Docs for details on setting custom approval criteria.

Review coverage

Auto-approval Approved

Rules No rules evaluated

Functional validation Not enabled · Set up

Options

Auto-apply is off → Gitar will not commit updates to this branch.
Display: compact → Counting what did not apply, without listing it.

Comment with these commands to change the behavior for this request:

Auto-apply Compact
gitar auto-apply:on         
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Powered by Gitar — free for open source

@gitar-bot
gitar-bot Bot enabled auto-merge (squash) September 19, 2026 08:51

@gitar-bot gitar-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gitar has auto-approved this PR (configure)

@gitar-bot gitar-bot Bot added the gitar-approved Added by Gitar label Sep 19, 2026
@offyotto
offyotto disabled auto-merge September 19, 2026 09:21
@offyotto
offyotto merged commit cfb63aa into offyotto:main Sep 19, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gitar-approved Added by Gitar

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] resolvedFanCount returns 1 on 2-fan fallback path

2 participants