0.2.0 (2026-07-02)
Features
- add advanced boost controls to the Potencia panel (0b6bf88)
- add advanced TDP level types and bridges to api (bafa2d4)
- add asus fan-curve control backend with safe sanitisation (295f65a)
- add control-center shell with tabbed sections (0c5a768)
- add device detection with per-device profiles and generic fallback (5a3ef4c)
- add firmware-attributes TDP backend (ASUS/Lenovo/MSI) (862461d)
- add FPS-target auto-TDP control loop and RPCs (365ff41)
- add FPS-target selector and live FPS gauge (8fe8205)
- add in-plugin self-updater (22ff447)
- add PdC UI theme, device header and language toggle (c973ab3)
- add per-device TDP backend factory with graceful fallback (9a9bcf9)
- add per-PL limits and explicit level control to TDP backends (f380339)
- add power-arc TDP gauge component (917e4f1)
- add pure helpers for boost margin math (23a1ec4)
- add pure TDP view logic (zones, arc color, angle) (c838005)
- add read-only fan monitor (Ventiladores section) (4209b3f)
- add running-game detection hook for per-game TDP (a94731f)
- add ryzenadj generic AMD fallback TDP backend (2a291ab)
- add Spanish-first i18n with English fallback (dae76f7)
- add Steam Deck hwmon power-cap TDP backend (5f35477)
- add TDP lifecycle re-apply on resume and AC/DC transitions (75442a6)
- add TDP profile selector and presets (b23fec2)
- add TDP ProfileStore with per-game inheritance (23d193a)
- add TDP RPC bridges and types to api.ts (3e57de3)
- add TDP value types (TdpLimits, TdpResult) (9e07983)
- add TDPBackend interface and NullBackend (9004015)
- add usage telemetry store and sampler (d609dd8)
- advanced TDP, auto-TDP, battery ceiling, telemetry and fan-curve control (b7ca38d)
- assistive auto-adaptation — GPU-driven auto-TDP, adaptive fan mode, learning (3bd6488)
- assistive fan-curve suggestions + multi-device fan & TDP control (74bf87e)
- assistive fan-curve suggestions + multi-device fan & TDP control (44f5d12)
- cap TDP to a device-aware battery ceiling on DC power (38516c2)
- customizable tab and block layout (03f5cea)
- expose advanced PL levels and reset over TDP RPC (87264ae)
- expose detected device profile via get_device RPC (7cf5621)
- expose fan-curve RPCs and restore-auto fail-safe on unload (9043bf9)
- expose global_watts in TDP state for accurate scope display (8ae72a2)
- expose TDP RPCs and wire lifecycle manager (223feaf)
- fan-curve editor, sensor dashboard, and usage-telemetry opt-out (d8d39b4)
- fan-curve editor, sensor dashboard, and usage-telemetry opt-out (7a3fb9c)
- live auto-TDP gauge and ceiling note in the power panel (87eb7c2)
- move language flags below device header with spacing (7a3f97c)
- read actual APU power draw via hwmon (123461f)
- read GPU load and add auto-TDP controller (6fa88ec)
- read real game FPS from gamescope stats pipe (3c7c486)
- render device header and language switch in the panel (af3afb5)
- replace emoji icons with Lucide (react-icons/lu) (dccde53)
- sample telemetry in-game and expose get_telemetry RPC (0331c8f)
- scaffold Panel de Control Decky plugin skeleton (50ebdb8)
- store per-PL levels in TDP ProfileStore with migration (61cd7bb)
- store TDP boost as auto/manual margins with derivation (a62d093)
- system: battery card with health, cycles and per-device charge limit (08a3c07)
- system: CPU controls (SMT + turbo boost) and collapsible cards (4e1345c)
- system: download mode (low-power) with ambient screen dim (52c68c0)
- system: persist collapsed state of cards per section (b7bc1d4)
- use Colores-style flag language toggle instead of dropdown (f21d321)
- wire auto-TDP control loop and RPCs (d8d3aab)
- wire TDP power-arc section into the panel (4dcacd5)
Bug Fixes
- average GPU busy over a short burst to fix noisy Deck readings (0e44bc4)
- average GPU busy over a short burst to fix noisy Steam Deck readings (47cec1f)
- contain power sliders within their card and make boost math NaN-safe (07efd45)
- customize: guard against a corrupt saved layout bricking the panel (f90ea01)
- enforce auto/manual margin invariant on profile load (382e538)
- harden TDP RPC against bad scope/appid, keep lifecycle poller alive, guard atomic save path (6fdb2c6)
- keep auto-reset UI consistent and hide unbounded boost rails (7cab9b4)
- make advanced boost sliders optimistic and independent (1025ad7)
- remove unused pytest import (ruff in CI lints tests/) (e3afb5b)
- ruff lint failure on main (unused import in tests/) (cd831dd)
- system: drive volume to the output channel (audioType 1) (a979d49)
- system: hide battery cycle count when the firmware reports a fake 0 (e7c04f3)
- system: show the real CPU model and label max frequency honestly (6d91471)
- system: stop the brightness/volume slider jumping on stale echoes (eadc141)
- tighten control-center spacing, iconography and layout (6dfebe2)
Performance Improvements
- customize: memoize tab/block id resolution on the render path (42dcbdb)