Not applied
No command was accepted. Keep the last confirmed state and report the failed control.
The tray sends user choices to a local service, which validates and applies supported hardware changes.
| Project | Responsibility | Trust boundary |
|---|---|---|
OpenBlade.Contracts | Defines versioned IPC messages for profiles, state, capabilities, and results. | Contains no platform or HID code. |
OpenBlade.Protocol | Validates reports, admits exact devices, stores sanitized fixtures, exposes typed HID operations, and renders lighting. | Only admitted typed operations reach HID. |
OpenBlade.Service | Owns the control handle, serializes operations, runs automation, confirms state, and handles drift and diagnostics. | Runs as the privileged LocalSystem IPC server. |
OpenBlade.Tray.Core | Holds presentation state, commands, profiles, telemetry choices, and service client behavior without WinUI dependencies. | Runs in the unelevated user process. |
OpenBlade.Tray | Provides the WinUI 3 window, Mica styling, tray icon, startup preference, and user interaction. | Runs as the unelevated current-user UI. |
OpenBlade.Display | Finds displays and applies Windows refresh rate, HDR, and color profile settings. | Uses APIs from the current interactive session. |
OpenBlade.Platform | Reads Windows NVIDIA GPU activity counters, lists and closes the apps holding the GPU awake, and applies processor efficiency policy. | Contains no HID code. Acts only on the current user's own processes. |
OpenBlade.Deployment | Parses published release metadata and verifies a signed release before the app offers it. | Reads only what an update check returns. It never installs anything on its own. |
OpenBlade.Session / SessionAgent | Handles current-user display, input, audio, and streamed-lighting work. Profile automation, configured keys, and interactive lighting continue when the tray exits. | Runs once per signed-in user. The service accepts hardware changes only from the active console session. |
OpenBlade.Capture | Provides typed capture, query, and reversible validation tools for developers. | Does not ship in the production installer, which rejects a payload containing it. |
OpenBlade.FirmwareSmoke | Runs reversible firmware checks against a connected Blade and restores the original state. | A developer tool. Does not ship in the production installer. |
OpenBlade.DeploymentBroker / DeploymentClient | Installs locally built OpenBlade payloads without repeated permission prompts, with first-install rollback. | For local development only, and only after an explicit, machine-authorized enrollment. Does not ship in the production installer. |
OpenBlade.Setup | Installs or removes the app, manages the service and session component, and preserves profiles. | Requests elevation only for machine changes. It refuses to replace a newer installed version. |
The service applies settings in this order: manual override, temporary power source override, active profile, then confirmed firmware state. It writes only changed values.
Firmware behavior varies by model. RZ09-0581 reports one manual thermal state for Fixed, Manual curve, and Maximum. Its adapter remembers the selected mode while confirming the generic firmware state.
No command was accepted. Keep the last confirmed state and report the failed control.
A write may have reached the laptop, but confirmation failed. Stop writing and reconnect.
Report the change, then restore the confirmed setting or leave it in place, depending on your choice. Never replay a write whose outcome is unknown.
Hide the control or use a documented fallback, such as maximum fan speed.