Skip to content

Add Ultra performance level for throttle-avoidance cooling#7

Draft
nsd97 wants to merge 4 commits into
idevtim:mainfrom
nsd97:contrib/ultra-performance
Draft

Add Ultra performance level for throttle-avoidance cooling#7
nsd97 wants to merge 4 commits into
idevtim:mainfrom
nsd97:contrib/ultra-performance

Conversation

@nsd97

@nsd97 nsd97 commented Jul 19, 2026

Copy link
Copy Markdown

What does this PR do?

Adds a fifth Performance Mode level — Ultra — a louder/earlier temperature-responsive curve (higher floor, full speed by ~60°C) so fans cool sooner under load without constant 100% blast.

Context

What changed

  • PerformanceLevel.ultra + Ultra branch of PerformanceCurve (70% floor, 100% by ~60°C, faster ramps than Max)
  • Preview + curve unit tests; README + release-notes/v1.8.0.md
  • Max remains the smart-balance preset; Ultra is optional and louder earlier

Max vs Ultra (short)

Max Ultra
Floor 50% 70%
~100% by ~68°C ~60°C
Intent Smart preemptive balance Hold peak clocks earlier (louder)

Review guide

Start at: ChillMac/App/AppSettings.swift (PerformanceLevel) → ChillMac/Fan/PerformanceCurve.swift (.ultra) → ChillMacTests/Unit/Fan/PerformanceCurveTests.swift

How to test

  1. Requires helper working (Fix SMAppService helper so Performance Mode can control fans #6): xcodegen generate && xcodebuild -project ChillMac.xcodeproj -scheme ChillMac -destination 'platform=macOS' test
  2. Enable Performance Mode → select Ultra → confirm description and curve % respond earlier/louder than Max at the same temp
  3. At cool idle, Ultra should sit on a high baseline (~70%), not pinned at 100%

Checklist

  • Builds without errors (xcodegen generate && xcodebuild -scheme ChillMac build)
  • Unit tests pass (xcodebuild -project ChillMac.xcodeproj -scheme ChillMac -destination 'platform=macOS' test)
  • Tested manually in the app

Made with Cursor

nsd97 and others added 4 commits July 19, 2026 10:10
Introduce PreviewSupport fixtures (no SMC/XPC in canvas), #Preview on every View, and a ChillMacTests target so previews and fixture contracts stay verifiable.

Co-authored-by: Cursor <cursoragent@cursor.com>
Register the helper with BundleProgram and LaunchDaemons layout, gate Performance Mode on a live helper with an Install CTA, and extract testable PerformanceCurve/FanControlPolicy helpers.

Co-authored-by: Cursor <cursoragent@cursor.com>
Avoid @published dictionary churn that invalidates the popover mid-update when Performance Mode re-sends the same target.

Co-authored-by: Cursor <cursoragent@cursor.com>
Introduce a fifth Performance Mode curve with a higher floor and earlier ramp to 100%, plus docs, preview, and curve tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant