Skip to content

SysManager 1.56.8

Choose a tag to compare

@github-actions github-actions released this 04 Aug 12:28
· 660 commits to main since this release
c8d51c0

[1.56.8] - 2026-08-04

Version 1.56.7 was tagged but never published: its release run failed at the unit-test
gate, so no binary, notes, or announcement for it exist. The tag is retained rather than
moved, and the work below ships here instead.

Fixed

  • Restored Performance Mode's persisted Restore All after an app restart. Snapshot persistence added in #431 loaded the saved baseline only when the user applied another change. Reopening SysManager therefore left Restore All disabled even though %LocalAppData%\SysManager\performance-snapshot.json still held the original settings. Performance Mode now rehydrates that snapshot first during initialization under the existing snapshot gate, so the recovery action becomes available without waiting for live powercfg probes and without racing a concurrent Apply.
  • Made old recovery points clear and testable. New snapshots record their UTC capture time and show it in local time in the Restore All confirmation, while snapshots created by older releases remain loadable with an explicit unknown-time label. Snapshot storage now has an injected test directory, and regression coverage recreates an app restart with a second service instance, verifies the real command reaches confirmation, and keeps legacy JSON compatible without touching the user's profile.
  • Hardened the persisted recovery boundary and failure semantics. Snapshot files are size-bounded, require a complete non-duplicated schema, and reject malformed GUIDs, spoofable plan names, out-of-range processor values, and unsafe GPU subkeys before enabling restore. Power-plan, processor, and GPU restore failures now remain failures instead of reporting success and deleting the only recovery point; failed snapshot saves prevent any setting change, and failed cleanup keeps Restore All available for a retry.
  • Made the Performance Mode lock-guard test deterministic. The guard test seeded the recovery snapshot while initialization was still loading the persisted one, and that load's deferred assignment overwrote the seeded value. On a fast machine the load finished first and the test passed; on a slower one it did not, so Restore All reported "nothing to restore" and never reached the guard under test. The test now waits for initialization before seeding. Test-only change, no effect on shipped behavior.

Verify the download

Get-FileHash .\SysManager-v1.56.8.exe -Algorithm SHA256

Expected SHA256: 059059E44583941C4F408E779F91E75DE1A23ECF3D6CC10593AF6768B7F1A097

This build is not code-signed, so Windows will warn on first launch. That is
expected for a small independent app: see what the warning says and what to
click
.

Verify where this binary came from

This exe was built by GitHub Actions from this public source, and the build is
recorded in the Sigstore public transparency log. With the
GitHub CLI:

gh attestation verify .\SysManager-v1.56.8.exe --repo laurentiu021/SystemManager

That proves which commit and workflow produced this exact binary, something the
SHA256 file cannot show, since it is published alongside the exe it describes.
Each release also ships SysManager-v1.56.8.sbom.json, a CycloneDX inventory of
every dependency resolved for this build.