Skip to content

Performance Mode shows controlled fans when helper is not running #4

Description

@nsd97

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

  1. Ensure the helper is not approved under System Settings → General → Login Items & Extensions (Background Items), or unregister the daemon.
  2. Enable Performance Mode (any level).
  3. 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)

  1. Launchd plist lacked BundleProgram and was not copied into the app bundle at Contents/Library/LaunchDaemons/ (required for SMAppService.daemon(plistName:)).
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions