Skip to content

Releases

v0.9.7

Choose a tag to compare

@github-actions github-actions released this 08 Nov 18:25

Bug Fixes

  • guard AMD applies and stale results
  • reconcile imported power state
  • reject unordered STAPM and PPT limits
  • fail applies when PM-table readback differs
  • serialize post-resume CPU power write

Documentation

  • add the Ryzen testing guide as a web page

Features

  • show Intel package power

Maintenance

  • bump to 0.9.7

Verification

v0.9.6

Choose a tag to compare

@github-actions github-actions released this 08 Nov 07:49

Bug Fixes

  • clear stale reset intent and sync latch state
  • persist the manual language choice

CI/CD

  • put the VirusTotal verdict on its own line

Documentation

  • add social metadata and refresh screenshots for 0.9.5
  • qualify the homepage hardware requirement as tested
  • drop the supported claim from the README platform notes
  • sync architecture tree and measured resource usage
  • document the AMD read-only RyzenSMU card
  • document the experimental AMD CPU Power support
  • add the Ryzen power testing checklist and issue form
  • add the Traditional Chinese README, site, and Ryzen testing guide
  • add the USB expansion card misclassification report form

Features

  • add persisted AC/Battery power-limit profiles
  • record MMIO wall defaults for AC and battery
  • add read-only RyzenSMU PM-table telemetry
  • add experimental RyzenSMU writes, profiles, and keep-alive
  • add the experimental CPU Power card controls

Maintenance

  • remove pre-0.9.0 screenshots
  • bump to 0.9.6

Refactoring

  • guard stale applies and drop dead messages
  • split limits into decode, validate, and write modules
  • split the poll loop into phase modules

Verification

v0.9.5

Choose a tag to compare

@github-actions github-actions released this 06 Nov 14:32

Bug Fixes

  • curve seed after reset, calibration median abort, OneDrive export
  • preserve import duty baseline, guard tray quit, tag calibration runs

CI/CD

  • tidy release notes and group the VirusTotal link

Documentation

  • read SHA-256 from the release asset digest
  • show the VirusTotal result under the latest download
  • describe the keep-alive toggle after the Sync move

Features

  • move the keep-alive policy to About and slow it to 5 minutes

Maintenance

  • batch tick refreshes, guard sync restart, fix comments
  • rename GitHub owner to vinctw22
  • bump to 0.9.5

Verification

v0.9.4

Choose a tag to compare

@github-actions github-actions released this 04 Nov 21:53

Bug Fixes

  • always populate edit fields from snapshots
  • prime edit fields when hardware appears
  • target tooltip updates at the pump window
  • calibration abort restores fans, debounce guards, hot-start guard
  • hardened import read, explicit no-overwrite export
  • wall-jump reload, battery dedup, 5s tray tip; tests

CI/CD

  • add CodeQL static analysis for Rust
  • skip Rust CI for docs and asset-only changes
  • submit release binary to VirusTotal and link the report

Documentation

  • refresh feature list for recent telemetry work
  • note unreleased 0.9.4 features in README
  • add GitHub Pages project site with Privacy Policy and License
  • add SECURITY.md and Security page on project site
  • expand homepage features, add Limitations page
  • sync README and site
  • sync README arch tree and Security page
  • live release info on homepage
  • rework site into home, downloads, changelog, contribute pages
  • note planned AMD support requires community testing

Features

  • turbo telemetry, tray temp tip, and peripheral status rows
  • add settings export and import
  • add per-fan curves on multi-fan machines
  • add calibration wizard for per-fan RPM tables

Maintenance

  • bump to 0.9.4

Other

  • Style: cargo fmt across recent edits

Refactoring

  • split into window, system, and startup_task modules
  • drop the empty ExpansionCard abstraction
  • collect poll state and extract phase functions
  • move poll state and phases into background_task/poll
  • split settings IO and calibration dispatch into config_io
  • to_wide convergence, docs, caches, label tests
  • split shared currency types into types.rs
  • split single file into config/ submodules

Testing

  • stop echoing user principal in spoofed-env assertion

Verification

v0.9.3

Choose a tag to compare

@github-actions github-actions released this 01 Nov 16:01

Bug Fixes

  • harden task UI, installs, and CPU power state

  • slow idle CPU polling and bound retries

  • raise manual high-temperature duty floor

  • tighten charge-limit readback retries

  • accept read-only MMIO values outside model caps

  • invalidate auth cache and persist sync intent

  • isolate tests and make height probe lock-free

  • tighten retries and skip redundant updates

  • reject reparse-point log directories

  • remove the hardcoded 80C curve floor

  • re-evaluate idle state before CPU power polls

  • bump libz-sys past RUSTSEC-2026-0418

  • keep tempfile on getrandom 0.4.3

  • hello tiebreak before EC client reset

  • manual 95C floor at 90 instead of the 80/90 handover

CI/CD

  • pin actions and add MSRV/weekly release checks

  • require MSRV check before releases

Documentation

  • document config internals and MSRV

  • add CI and release status badges

Features

  • deep battery and PD firmware telemetry

Maintenance

  • bump to 0.9.3

Other

  • raise MSRV to Rust 1.94

  • raise MSRV to Rust 1.99.1

  • Deps: bump smallvec

  • Merge pull request #8 from vincent-chang-rightfighter/dependabot/cargo/cargo-6d9cf0bd4f

Refactoring

  • drop unused versions snapshot fields

  • share limit range checks between UI and writer

Testing

  • add deterministic fuzz coverage

Contributors: @dependabot[bot]

v0.9.2

Choose a tag to compare

@github-actions github-actions released this 26 Oct 16:28

Bug Fixes

  • show app version in About software section

  • reset manual ramps when unified duty toggles

  • hand control to firmware when curve has only battery readings

  • avoid spurious AC-to-battery reset on battery boot

  • map Laptop 12 Core 3 to the Laptop12 family

  • resolve winget only from trusted Program Files packages

  • harden scheduled task XML against TOCTOU

  • limit EC initialization to one in-flight attempt

  • hand fans back to firmware on session end

  • stop sync around Apply and restore it on failure

  • require the MSR half before reporting CPU power available

  • keep PL reset pending until the write succeeds

  • distinguish unreadable BIOS defaults from a missing file

  • read live RAPL units before restoring BIOS defaults

  • retry charge-limit writes after a failed apply

  • keep polling for AC transitions while idle

  • restore sync when a BIOS-defaults reset fails

  • avoid blocking on the scheduled-task query and toggle

  • reset DLL state after the combined PawnIO update

  • latch sync startup failures and clear Syncing state

  • clear the last duty after handing control back to firmware

  • reject enabled limits with a zero time window

  • back off failed AC-to-battery resets

  • evaluate the 80C guard only on the active duty path

  • stop reporting the mainboard board ID as an expansion card

  • display no cap when the charge limit is disabled

  • preserve sub-zero temperature readings

  • diagnose time and clamp readback differences

  • avoid duplicate BIOS backups and symlink reads

  • fence EC writes before the final firmware handover

  • fsync debounced config saves

  • wait briefly for the tray pump to exit

  • free the DLL on init failure and cache a missing version

  • move the task XML into an admin-only ProgramData directory

  • route the startup refresh through the single EC dispatcher

  • keep stop_sync flags under the thread lock

  • bring the tray menu to the foreground

  • ignore the config directory override in release builds

  • bound winget install and update runtime

  • key the Authenticode verdict cache by DLL path

  • cap module archive size before and during extraction

  • refuse a fallback that would overwrite an unmarked local install

  • reject hard-linked BIOS defaults files

  • keep the release check inside the caller timeout

  • only clean stale task XML older than an hour

  • surface time and clamp readback differences

  • validate config and BIOS files through one handle

  • persist chart window and correct status text

  • reject Windows alias paths and link members

  • stop startup refresh after a dispatch failure

  • join child pipe readers on timeout

  • enforce firmware time-window bounds

  • tighten archive extraction bounds

  • treat the 0x614 max window as advisory

  • bound validated config reads and corrupt backups

  • quarantine BIOS defaults from validated bytes

  • remove temporary archive on pre-check failure

  • require an admin-only executable path

  • avoid negative battery current when AC state is unknown

  • drop unsafe legacy tasks and clean child waits

  • allow portable startup registration again

  • enforce curve safety floor and monotonic duty

  • harden BIOS capture, sync restart, and resume handover

  • throttle firmware handovers and refresh startup data

  • repair module updates and bound install/auth tasks

  • refresh late versions and harden UI state

  • enumerate all Laptop 16 PD ports

  • bound registry reads and isolate startup task test

  • keep reinit cleanup from clobbering a newer pump

  • verify charge-limit writes with readback

  • harden capture and make MMIO read-only

  • isolate driver calls on a dedicated runtime

  • render the 80C floor on the curve canvas

CI/CD

  • track cargo dependency updates

Documentation

  • record accepted advisories and local audit command

  • document startup hardening and logoff limitation

  • align capture, polling, and port behavior

  • document MSR-only MMIO behavior

Maintenance

  • update tokio and clipboard-win for cargo audit

  • drop unused core affinity pinning

  • v0.9.2

Other

  • make release unwind behavior explicit

  • Deps: bump cargo packages without parking_lot 0.13

Refactoring

  • drop unused history window field

Testing

  • serialize tests that use the global EC dispatcher

  • make versioned-save test order-independent

v0.9.1

Choose a tag to compare

@github-actions github-actions released this 20 Oct 12:25

Bug Fixes

  • gate PL floor and order check on enabled toggles

Documentation

  • mention one-click copy buttons on About page

  • refresh screenshots to v0.9.0

  • show v0.9.0 screenshots in a 2x2 grid

  • refresh measured memory footprint

  • note v0.9.0 sleep/wake hardening

  • refresh stale architecture entries

Maintenance

  • bump version to 0.9.1

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 20 Oct 11:01

Bug Fixes

  • share one band per two-column row so bottoms align

  • stack sections as independent full-width cards

  • keep Device and Diagnostics side by side

  • keep Software beside Theme and Updates

  • pad Theme+Updates column to Software height

  • trim Theme+Updates match pad 64 to 12

  • drop match pad, a constant cannot track dynamic heights

  • pad Software to meet Theme+Updates (measured 42px)

  • centralize PL write-boundary caps for UI and BIOS restore

  • hand Manual mode back to firmware on stale thermal

  • release EC mutex on write timeout instead of orphan-holding it

  • never unload PawnIO DLL under in-flight users on reset

  • revoke all watched explicit write ACEs, not just Everyone

  • write schtasks XML with create_new unique names

  • resolve task principal from token, scope instance mutex

  • strict update-check fetch and tag shape

  • bound sync retries and keep reset pending across failures

  • pin 64-bit registry view, accept empty REG_SZ

  • Light contrast pass and Black plot lift

  • harden EC handover and PL/fan limits

  • pin winget/modules download and config write

  • unify rule/scrollable/mode styles

  • retry quit handover and tighten fan guards

  • align PL validation across UI/BIOS/sync

  • pin system tool paths and download fetches

  • keep selected text readable and unify views

  • cap concurrent EC reads with semaphore

  • enforce per-model PL ceilings

  • keep fan loop alive on EC backpressure

  • close PL/bios validation gaps

  • harden task, log, config and download paths

  • keep selected text readable and unify charts

  • re-check shutdown after EC lock and deduplicate counters

  • unify quit handover retries and clamp hot drags

  • validate modules directory before use

  • shutdown-aware EC lock wait for per-fan writes

  • replace deprecated fetch_update with compare_exchange

CI/CD

  • least-privilege jobs, pinned audit, signed-by-hash releases

  • add dispatcher soak workflow and dependabot

  • run dependabot monthly instead of weekly

  • tag-based actions with grouped dependabot bumps

  • bump the actions group with 4 updates

Documentation

  • document snapshot alloc tradeoff

  • sync binary size, panic, and env override notes

  • document single-writer EC dispatcher

Features

  • add single-writer dispatcher with bounded queue

  • harden single-writer dispatcher

Maintenance

  • bump version to 0.9.0

Other

  • Merge branch 'master' into dependabot/github_actions/actions-cfe433e3f5

  • Merge pull request #5 from vincent-chang-rightfighter/dependabot/github_actions/actions-cfe433e3f5

Performance

  • prefer size over speed in release profile

Refactoring

  • thread palette through settings views

  • introduce EcHw trait behind dyn dispatch

  • route all EC I/O through single writer

  • drop hardcoded card pad, unify lock-dot fill

  • wrap About updates help text onto three lines

  • tighten About updates hint into one paragraph

  • adapt call sites to typed dispatcher errors

Testing

  • soak dispatcher with randomized ops and quit storm

Contributors: @dependabot[bot]

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 11 Oct 14:05

Bug Fixes

  • show quit confirmation above About

  • compute gray against the card background

  • make Black true black instead of Oxocarbon gray

  • paint Black window background true black

  • give Gruvbox its signature orange accent

  • mop up hardcoded colors from review

  • close hardware write gaps from review

  • review leftovers (paths, battery gate, audit)

  • review batch 2 (config dir, DACL, locks, loop death)

  • cap per_fan_duty length at validate

  • point powershell pin at its real subpath

Features

  • full theming with Default preserving the current look

  • paint chart panels and move Updates under Theme

  • add Tokyo Night, Gruvbox, Mocha, and Nightfly schemes

  • add Black scheme, drop Tokyo Night, theme the accents

  • fan curve follows the theme accent

  • dim secondary text, brighten Gruvbox green

Maintenance

  • bump version to 0.8.0

Refactoring

  • tidy remaining review items F18/F17/F16/F3

  • group the page into labeled sections

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 05 Oct 03:46

Bug Fixes

  • fail closed when the single-instance mutex cannot be created

  • find main window by PID instead of title

  • enforce config ACL by revoking Everyone write ACEs

CI/CD

  • watch upstream PawnIO.Modules releases

  • verify git-cliff checksum before running it

Features

  • check for app updates from the About page

Maintenance

  • accept-list three transitive iced advisories

  • remove redundant cfg(windows) and document icon_gen

  • bump version to 0.7.0

Other

  • raise png to 0.18

  • raise sha2 to 0.11

  • raise dirs to 7

  • refresh patch-level dependencies

Refactoring

  • split background_task mode arms into submodules