Repository navigation
TaskMan v0.1.14
An input responsiveness, system stability, and diagnostic reliability release: unblockable Ctrl+Shift+Esc hotkey handling with desktop input queue isolation, power throttling (EcoQoS) exemption for low-level keyboard interception, self-targeting process operation safeguards, non-blocking UI settings persistence, reliable file logging and crash records, orphan-free kernel ETW trace session teardown, and allocation-free case-insensitive table sorting.
Hotkey Interception & Desktop Input Isolation
- Unblockable Ctrl+Shift+Esc hotkey handling. The hotkey worker thread no longer synchronously waits on TaskMan's UI thread. If TaskMan's window is hung or starting up, the hotkey worker forwards the combo to Explorer to launch a responsive instance, and the IFEO registry watch remains active so disabling the replacement always cleanly removes the hook.
- Input queue isolation during window activation. Window activation now shares only the foreground thread's input queue rather than chaining both the foreground and target queues. Slow or hung frames no longer delay foreground game or application input.
- EcoQoS exemption for keyboard hook thread. The low-level keyboard hook thread is now explicitly opted out of Windows power throttling (EcoQoS), preventing keystroke latency when TaskMan is minimized to the system tray on efficiency cores.
- Safe Escape key swallowing & clean tray restore. Auto-repeat Escape presses clear the swallow mask so Escape never stays held down, swallowed releases are strictly TTL-bounded (1 second) to prevent dropping unrelated Escape releases across desktop switches, and window uncloaking is handled by the UI thread to eliminate white flashes on restore.
Process Operations & Self-Protection
- Self-targeting safeguards. TaskMan now strictly refuses suspend, priority change, processor affinity modification, and Efficiency mode actions targeting its own process. This prevents accidental freezes of the low-level keyboard hook or lockout scenarios. Saved per-program rules also exclude TaskMan's own process on startup.
- Accurate batch operation feedback. Efficiency mode toggles across multi-selections now accurately track per-process success and failure, reporting real errors when all targets fail and showing
(done/total)counts for partial completions.
Diagnostics, Logging & Crash Reporting
- Process-lifetime file logging. Fixed early drop of the
WorkerGuardand connected the file sink on engine startup, ensuring log files record full run history rather than truncating after the first line. - Synchronous crash records. Release builds (
panic = "abort") now synchronously flush panic payload, thread state, and symbolized backtraces to<log>.crash. - Kernel ETW session abort teardown. Emergency cleanup (
stop_live_sessions) stops kernel ETW trace sessions (TaskMan-Disk-ServiceandTaskMan-Net-Service) on abnormal process aborts, preventing orphaned sessions from continuing machine-wide background tracing.
UI Responsiveness & Table Sorting
- Non-blocking settings persistence. All UI settings saves are now dispatched to the background coalescing writer thread, removing synchronous disk I/O from frame rendering.
- Bounded Services tab loading. The Services tab now queries via the bounded action executor rather than an unbounded raw thread, preventing permanent "Gathering data" spinners on worker failure.
- Allocation-free table sorting. Replaced per-comparison lowercase string allocations across all table tabs with an iterator-based case-insensitive comparison helper (
tablekit::cmp_ignore_case). - Accurate Startup approved state. An empty
StartupApprovedregistry value is now correctly recognized as enabled rather than disabled.
Verifying a download
Each archive ships a .sha256 checksum file beside it:
sha256sum -c taskman-v0.1.14-windows-x86_64.zip.sha256
Full changelog: v0.1.13...v0.1.14