Repository navigation
feat: add PowerStation API v0.2 fan profiles - #550
Open
sknowledge1 wants to merge 2 commits into
Open
sknowledge1 wants to merge 2 commits into
sknowledge1 wants to merge 2 commits into
Conversation
This was referenced Sep 22, 2026
sknowledge1
force-pushed
the
feat/powerstation-fan-controls
branch
from
October 8, 2026 10:46
c1be4b6 to
6fc002f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fan controls now use PowerStation's complete profile API v0.2, including the startup contract in PowerStation #54. Hardware matching, required safety sensors, native curve constraints and thermal policy stay in the service.
Behavior
LoadProfile,LoadProfileJson, fan/sensor discovery, current profile name/path and advertised modes.quiet.yaml. A profile includes every fan once; native point counts are validated by the service without resampling. Draft edits do not write hardware.The fan documentation describes the modes, a concise profile example, persistence and recovery. This replaces API v1 directly. The separate Decky migration is complete; this native client remains independent of its release.
Local validation
Exact candidate:
17c1610952530e9705d4e577ad5e3753f7794fb6, based on main0db5812f21e98d0a5ac70bb1b5a674f2f369c22cwith two linear contribution commits. Pinned builder: Rust 1.97.1 / Godot 4.7.1.fffb4b93979dd2622cd93cfa097baacc27b7a2e6on private D-Bus and fake sysfs, including both saved JSON and file startup restoration.The broader network-isolated headless suite retains the GitHub-release assertion failure and thread-pool/OSK script errors reproduced on untouched main; it is not a clean full-suite pass. GitHub reports no test check contexts for this new head at this update. Counts above are local validation.
Native GUI/device acceptance on these revised heads, thermal-policy acceptance, official packages/images and ARM dependency/install qualification remain separate release gates. No device runtime or release was changed by this source revision.
Assisted-by: Codex