Summary
When the privileged fan helper is not registered / not approved in Login Items, ChillMac can still show Performance Mode as active (or cache target RPMs) while the actual fans stay on macOS auto speeds.
Repro
- Ensure the helper is not approved under System Settings → General → Login Items & Extensions (Background Items), or unregister the daemon.
- Enable Performance Mode (any level).
- Observe: UI may claim controlled fans / high curve % while Activity Monitor shows no helper and fan RPM does not follow the curve.
Root cause (observed on fork)
- Launchd plist lacked
BundleProgram and was not copied into the app bundle at Contents/Library/LaunchDaemons/ (required for SMAppService.daemon(plistName:)).
- App treated the helper as ready without a live/usable helper path, and cached fan targets even when XPC did not succeed.
Docs vs practice note
Apple documents SMAppService.Status.enabled as registered/eligible. In practice (Apple Developer Forums / DTS threads), .enabled is necessary but not sufficient — the process may still be absent and XPC can fail. Gating Performance Mode on a live helper + Login Items approval CTA matches that reality.
Expected
- Performance Mode cannot pretend to control fans until the helper is actually usable.
- Clear Install / Login Items path when the helper is down.
- Fan target caches only update after a successful helper reply.
Happy to send focused PRs for the SMAppService layout + readiness gating.
Summary
When the privileged fan helper is not registered / not approved in Login Items, ChillMac can still show Performance Mode as active (or cache target RPMs) while the actual fans stay on macOS auto speeds.
Repro
Root cause (observed on fork)
BundleProgramand was not copied into the app bundle atContents/Library/LaunchDaemons/(required forSMAppService.daemon(plistName:)).Docs vs practice note
Apple documents
SMAppService.Status.enabledas registered/eligible. In practice (Apple Developer Forums / DTS threads),.enabledis necessary but not sufficient — the process may still be absent and XPC can fail. Gating Performance Mode on a live helper + Login Items approval CTA matches that reality.Expected
Happy to send focused PRs for the SMAppService layout + readiness gating.