Skip to content

fix: make manual fan control safe and predictable#65

Merged
naufaldi merged 1 commit into
mainfrom
fix/manual-rpm-confirmation-beta6
Jul 13, 2026
Merged

fix: make manual fan control safe and predictable#65
naufaldi merged 1 commit into
mainfrom
fix/manual-rpm-confirmation-beta6

Conversation

@naufaldi

Copy link
Copy Markdown
Owner

What Change

  • Keep Manual mode selected across telemetry refreshes by separating hardware hydration from user interaction state.
  • Auto-apply the stable slider target after a 2-second countdown; a new slider movement resets the countdown, and Auto cancels it.
  • Replace the Apply and Restore Auto buttons with immediate Auto restoration plus inline countdown/verification status.
  • Add a safe-range RPM ruler with 100 RPM ticks, 500 RPM labels, and exact range endpoints.
  • Enforce temperature-aware Manual limits in both Svelte and Rust: block missing telemetry, block Manual at 95°C, and prevent RPM reductions at 85°C or hotter.
  • Bump package, Cargo, Tauri, and lockfile versions to 0.1.0-beta.6.

Why Change

  • Telemetry polling previously re-applied the backend Auto mode and overwrote a user’s Manual selection.
  • A deliberate 2-second settling window prevents transient slider positions from reaching the SMC.
  • Backend validation is required because frontend safety checks alone can be bypassed or become stale before the hardware write.
  • Numeric scale marks make the requested fan speed understandable before it is applied.

Impact

  • Affected areas: Fan control pane, dashboard temperature data flow, global fan-control command validation, browser/component regression tests, and release version metadata.
  • Breaking changes: No public command names changed; set_all_fans_constant_rpm(rpm) and restore_all_fans_auto() remain the Tauri API.
  • Dependencies: No new dependencies or schema changes.
  • Testing: pnpm biome:check; pnpm test (63 tests); pnpm exec svelte-check --tsconfig ./tsconfig.json; pnpm build; pnpm playwright:test (6 tests); cargo fmt --check; cargo check; cargo clippy -- -D warnings; cargo test (124 executed, 3 hardware-dependent ignored); cargo check --target x86_64-apple-darwin; release workflow shell tests. Visual proof captured locally at the configured 960×540 Tauri size in /tmp/fanguard-beta6-ui.png.

@naufaldi
naufaldi marked this pull request as ready for review July 13, 2026 02:56
@naufaldi
naufaldi merged commit e054566 into main Jul 13, 2026
3 checks passed
@naufaldi
naufaldi deleted the fix/manual-rpm-confirmation-beta6 branch July 13, 2026 02:56
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