What's new
Bug fixes
- Memory monitor: removed an AVRT thread-characteristic call that was being lost across every
awaiton the 1 sPeriodicTimerloop, leaking the handle without any scheduling benefit. - Standby purge: the process token opened by
OpenProcessTokeninElevatePrivilegeis now closed; previously every auto-purge leaked a kernel handle. - Settings persistence:
StandbyLimitMb/FreeLimitMbwrites are now debounced (500 ms). A four-digit value no longer triggers four registry writes. - Game Mode PID tracking: replaced
HashSet<int>withConcurrentDictionary<int, byte>so overlapping monitor ticks and UIClear()calls cannot corrupt the set. - Standby calculation: the gauge now sums Normal-Priority + Reserve + Core standby buckets. Reading only the Reserve bucket (as before) under-reported standby by an order of magnitude on most systems.
Game-mode effectiveness
- Each game process now receives
SetProcessInformation(ProcessPowerThrottling)withIGNORE_TIMER_RESOLUTION+EXECUTION_SPEEDopt-out, so Windows 11 honours the 0.5 ms timer even when the game loses foreground focus.
Update integrity
- The in-app updater now streams a SHA-256 hash while downloading and verifies it against either the
SHA256:line in the release body or a*.sha256/SHA256SUMSasset on the release. On mismatch the file is deleted and the install is aborted.
Hardening
SetDefaultDllDirectories(LOAD_LIBRARY_SEARCH_DEFAULT_DIRS)is called at startup so a DLL planted next to the admin-elevated exe cannot be loaded.
Repo hygiene
- Added MIT
LICENSE(repo was previously license-less). - Added
.github/dependabot.ymlfor weekly NuGet + GitHub Actions dependency PRs. - Removed the duplicate
ARCHITECTURE_UPDATE.mddocument.
Integrity
SHA256: d3c26b1baf5f266f924dfc9e4c6d6c16bebb24ab63fd60bf635095cdfd46f553
Installer: StandbyAndTimer_Setup_2.0.1.exe (72.2 MB, self-contained .NET 10)
Requirements: Windows 10 21H1+ or Windows 11, x64, Administrator privileges