Skip to content

Releases: ProtonDev-sys/task-manager

Task Manager v1.3.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 06:48
6820118

Task Manager 1.3.0

This release adds scoped search and CSV export, reduces repeated sampling and display work, and improves recovery when Windows data sources fail. The application remains a standalone native executable; existing saved settings and update speeds are preserved.

Search, export and keyboard navigation

  • Combine name, pid, publisher, command, path, user and status search fields. PID matching is exact; other fields support substrings, quoted values and exclusions such as -status:suspended. Every term must match the same process within a group. Ordinary text continues to search as one phrase, including spaces and Windows paths.
  • Press Enter in search to apply the query immediately and focus the results. Filtered refreshes preserve selection, independent keyboard focus and the viewport. Focused table rows now display the native keyboard focus cue.
  • Use File > Export current table or Ctrl+Shift+S to save the filtered, sorted table and displayed columns in their current order. The export captures the values before opening the Save dialog, includes expanded rows, and omits category headings and hidden columns.
  • CSV files preserve Unicode, quotes and embedded newlines. Formula-like cell text receives an apostrophe prefix for spreadsheet import. Saving runs in the background and replaces an existing destination only after the new file is completely written. Values match the formatted display rather than a raw numeric feed.
  • History and CSV saves use exclusive temporary files with short names in the destination directory. A save no longer consumes an unrelated history.tsv.tmp neighbor or collides with another running instance, and valid long CSV filenames remain usable. Concurrent history saves preserve one complete snapshot; they do not merge histories between instances.
  • Keep Performance selection, keyboard navigation and copied summaries consistent when a selected disk, adapter or GPU disappears. The fallback is CPU, and the selected sidebar item is brought back into view.
  • Preserve the full unsigned Windows PID range when resolving process-group owners.

Live updates and resource reporting

  • Recover from transient sampling failures without permanently freezing live updates. The last complete snapshot remains visible, and the title reports Live updates unavailable; retrying.... Retries back off from 250 ms to a maximum of 4 seconds; F5 and shutdown interrupt the wait. Successful recovery restores the normal title and update setting, including pause.
  • Read service inventories across multiple Windows result pages. A failed refresh retains the last successful inventory and displays an unavailable or outdated status with the Windows error code. F5 retries; a successful refresh clears the status even when the rows are unchanged.
  • Show unavailable GPU engine data explicitly, distinguishing missing counters from a measured zero in the graph area, sidebar, utilization statistic and copied summary.
  • Use the timestamps of the corresponding process, network-interface and trace samples for rate calculations. Failed reads, counter resets and reused PIDs cannot reuse an unrelated rate baseline.
  • Validate native process records, thread extents and name bounds before reading them. Read packed firmware memory records safely and recognize occupied slots whose capacity is unknown.
  • Prevent late network events and metadata or icon work from being assigned to a new process that reuses a PID. Trace sessions have unique ownership, so opening or closing another app instance does not stop an existing instance's network trace.

Reduced repeated work

  • Reuse a bounded Windows performance-counter buffer instead of allocating and probing it for every read. Bounded retries handle live counter instances growing between calls, and invalid or non-finite values are rejected.
  • Reuse per-process trace counters between samples and discard obsolete icon requests and results.
  • Parse each search query once per filter operation and reuse process matches across group rows. Filtered tables use the existing changed-row repaint path.
  • Measure the App history footer only when that tab is visible. Expand startup environment tokens without repeatedly lowercasing and rebuilding the whole command for each match.

These changes remove identifiable repeated work. Measured before/after results must be assessed from the paired reports; they do not imply a fixed speedup on every machine or workload.

Process actions

  • Turning off Efficiency mode that another tool enabled preserves the process's existing priority when this app has no saved priority to restore.
  • Build process-specific dump paths on the action worker and report temporary-directory failures. Separate process instances no longer share a dump name based only on the executable name.
  • Release wait-chain resources reliably and clear the busy state if an action thread cannot start, so later actions remain available.

Development tools

The repository's PowerShell scripts have been replaced by the standard-library Python CLI, tools/taskmgr.py. Build, benchmark, comparison, compiler-study and packaging commands work from Command Prompt, Git Bash or another terminal. Start with:

python tools/taskmgr.py build

Development requires Python 3.10 or newer, Visual Studio 2022 or newer with the C++ tools and Windows SDK, and a compatible CMake version. CMake selects an installed Visual Studio generator by default. Python is not needed to run the released executable.

The tooling validates fresh reports, bounds child-process timeouts, and rejects malformed results or mismatched comparison metrics. UI benchmark reports now also require healthy sampling throughout the measured interval, so a recovered failure cannot be mistaken for a successful low-cost run. An optional paired Windows performance study retains raw reports and captures the actual native views in light and dark themes after timing. A separate loopback UDP smoke diagnostic reports verified attribution, a recognized environment skip, or failure explicitly.

Verification and limits

The complete release candidate passed all 12 Windows CTest targets, 357 named native self-test checks and all 21 benchmark scenarios. All 25 native UI reports passed their functional and sampling-health checks, and all 18 suite UI reports passed the existing responsiveness budgets. Python tooling and release guards passed on Windows and Linux, with Windows API integrations explicitly skipped on Linux. All 38 named light/dark study screenshots and three corrected GPU rendering fixtures were visually reviewed. A real Windows loopback test verified attribution of 32 UDP datagrams with exact payload and byte-count checks. The persistence and GPU feedback corrections passed their separate Windows workflows and the combined release-candidate verification.

The performance and validation report retains exact source and executable identities, raw-evidence links, observed ranges and limitations. Three alternating paired runs showed favorable CPU medians with overlapping main timing ranges, so they do not establish a reliable whole-application speedup. Observed diagnostic memory and executable size increased in that earlier study build. After the final persistence, GPU feedback and version changes, the verified release candidate is 966,144 bytes, 4 KiB smaller than the original build. The report records both revisions separately; no new timing or production-memory claim is inferred from the later size result.

The release pipeline builds production and optimized developer executables with MSVC warnings treated as errors. It runs portable search and CSV regressions, native self-tests, sampler and UI stress cases, the component benchmark and the full scenario suite. Targeted fixtures cover sampling failure and recovery, paused shutdown, report health, service paging, rate baselines, PID reuse, table focus, device removal and export failures. Production checks verify elevation, diagnostic exclusion, matching project/resource/manifest versions and the executable checksum. Publication is restricted to the exact merged main commit after its Windows verification succeeds.

Synthetic fixtures and runner screenshots do not establish physical multi-GPU, large processor-group, multiple-DPI or complete Windows 11 validation. Live network verification covers owned IPv4 UDP loopback on the tested Windows Server runner. Existing platform and feature limits remain in the README and feature differences. No universal performance improvement or absence of all bugs is claimed.

Download and update

The release provides TaskManager.exe and SHA256SUMS.txt. Windows 10 or Windows 11 x64 and administrator approval are required. The executable remains unsigned and needs no .NET runtime. Follow the README installation and update instructions, including the disable/update/re-enable procedure if replacement of Windows Task Manager is enabled.

Task Manager v1.2.1

Choose a tag to compare

@github-actions github-actions released this 10 Oct 19:45
062797e

Task Manager 1.2.1

This maintenance release combines the reviewed fixes from pull requests #3–#29, with consistent version metadata and a release process that publishes the verified Windows production build.

Resource reporting

  • Report GPU utilization using the busiest actual engine, including correct shared-engine totals for application groups (#3).
  • Keep network rates coherent after Windows API failures and use the successful counter sample's timestamp (#9).
  • Keep application process groups within one user session (#12) and sort Base priority by its scheduler value (#13).
  • Show memory transfer speed in MT/s (#15).
  • Sample CPU usage across all processor groups and reset baselines when the topology changes (#17).
  • Refresh cached GPU and disk identities on explicit refresh, including changed or replaced hardware (#24).

Process, service, and startup actions

  • Correct Run new task and startup-command parsing for spaces, tabs, quoted paths, environment variables, and inferred executable extensions (#5).
  • Capture owned process/session targets before modal dialogs, resolve expanded window rows to their process, and retain complete descendant-first process trees (#6).
  • Preserve preexisting temporary files when dump creation fails (#7).
  • Stop startup registry scans after permanent enumeration errors while continuing past oversized entries (#8).
  • Request only the access rights each service action needs (#10).
  • Restore saved priority when Efficiency mode has been cleared externally (#11).
  • Preserve domain-qualified user identities and verify session identity before disconnecting or signing off (#22).

Windows interface

  • Keep busy headers, tabs, and Performance navigation readable in High Contrast (#4).
  • Correct ownership of the row image list (#14) and preserve table layout, selection, scrolling, and scaled icons when DPI changes (#21).
  • Restore keyboard focus when leaving Performance (#18).
  • Keep the tray meter current while minimized and restore it after Explorer restarts (#19).
  • Keep Name first when table columns are reordered (#20).
  • Preserve the viewport during automatic numeric refreshes (#26).
  • Keep dense CPU and GPU graphs visible in narrow windows, with an explicit overall-CPU fallback when individual graphs cannot fit (#28).
  • Skip category headings during native keyboard navigation (#29).

History and diagnostics

  • Persist application history with explicit UTF-8 encoding and escaped metadata fields (#16).
  • Escape diagnostic errors and sorting failures as valid JSON (#23).
  • Reject stale, missing, malformed, or unsuccessful benchmark reports (#25).
  • Decode UTF-8 error messages consistently in Windows dialogs, including Run new task (#27 and integration cleanup).

Download

Download TaskManager.exe and SHA256SUMS.txt from this release. The standalone executable requires Windows 10 or Windows 11 x64 and administrator approval. It is unsigned and requires no .NET runtime. Replacement of Windows Task Manager remains optional; see the README for installation, updates, and recovery instructions.

Verification and limits

The release job publishes only the production executable built from the exact merged commit after Windows verification succeeds. That workflow builds production and optimized diagnostics with MSVC warnings treated as errors, runs all ten CTest cases, checks production manifest and diagnostic exclusion, runs the component benchmark and all 21 benchmark-suite scenarios, and validates benchmark-report and release-publication guards. Executable, manifest, and project versions must agree, and the uploaded executable must match its SHA-256 checksum.

Synthetic fixtures cover multi-GPU accounting, large process trees, multiple processor groups, dense CPU graphs, High Contrast, DPI, and keyboard behavior. They do not establish physical multi-GPU or 128-CPU hardware validation, complete Windows 11 feature parity, or universal performance improvements. Existing feature differences and OS restrictions remain documented in README and docs/PARITY.md.

Task Manager 1.2.0

Choose a tag to compare

@ProtonDev-sys ProtonDev-sys released this 02 Oct 15:20

Task Manager 1.2.0

Native C++20 Windows x64 release with faster, lower-overhead process updates and progressive startup loading.

Changes

  • Add Adaptive (low overhead) refresh: process updates target 250 ms to 4 seconds based on measured sampling/display cost. Existing saved update speeds remain unchanged; select View > Update speed > Adaptive to enable it.
  • Collect expensive disk, GPU, per-core and detailed memory counters about once a second instead of repeating them for every fast process update. Process CPU, memory and I/O remain sampled on each process update.
  • Repaint only changed visible rows in stable tables; preserve the viewport during numeric sorting and consume the latest snapshot when unfreezing or restoring the window.
  • Populate Startup progressively and load publishers/icons asynchronously instead of blocking entry discovery.
  • Display process-category headings only when sorting by Name; classify applications using visible, uncloaked windows and provide a fallback icon.
  • Extend headless tests and diagnostics for adaptive backoff, resource-cache freshness, process creation/exit, progressive startup loading and table repaint behavior.

Download

Download TaskManager.exe and SHA256SUMS.txt from this release. Requires Windows 10 or Windows 11 x64 and administrator approval. The executable is unsigned and requires no .NET runtime. Replacement of Windows Task Manager remains optional; see the README for installation and recovery instructions.

Verification and limitations

The final versioned Release build passes all 10 local CTest cases and production manifest/diagnostic-exclusion checks. Windows rejects unelevated production launches as expected; elevated production runtime checks were not executed from the unelevated test shell.

Prior serial headless measurements of this implementation on this PC showed about 16% lower CPU and 48% lower mean sampler time at the same fixed 500 ms cadence. Adaptive averaged approximately 630-660 ms at 2.4-3.1% of one CPU core, with 17-19 MiB private memory. These are local observations, not universal guarantees or a hard CPU cap. Physical 20-year-old hardware and full Windows 11 behavior remain unverified; XP/32-bit support is not provided. See README and docs/PARITY.md for feature differences.

Task Manager 1.1.0

Choose a tag to compare

@ProtonDev-sys ProtonDev-sys released this 01 Oct 18:16

Task Manager 1.1.0

Native C++20 Windows x64 release with the classic seven-tab layout, live performance graphs, process search, light/dark themes and startup inventory. The older .NET implementation is no longer part of the source tree or release.

Install

Download TaskManager.exe below and run it on Windows 10 or 11 x64. It is a standalone executable with no .NET runtime requirement. It requires administrator approval and is unsigned. Compare its SHA-256 with SHA256SUMS.txt before running it.

Choose No at the replacement prompt to try it without changing Windows' default Task Manager. Replacement is optional; installation, updates, removal and recovery instructions are in the README.

Changes

  • Separate production and developer builds; release binaries exclude diagnostic, benchmark and screenshot tooling.
  • Search no longer clears compact-view rows when a pending search update fires.
  • Graph scaling accounts for values crossing the visible history boundary.
  • Performance sidebar scrolling accumulates high-resolution mouse-wheel input correctly.
  • Live column resizing explicitly applies the requested minimum width after native tracking, including on Windows builds that ignore adjusted tracking notifications.
  • Process search avoids redundant group matching and PID formatting for nonnumeric queries.
  • Product-focused installation documentation, explicit feature differences and contribution instructions.

Verification and limitations

All eight optimized developer self-test/UI/stress cases pass locally. Production manifest and diagnostic-exclusion checks pass. Windows correctly rejects unelevated production launches; runtime command-rejection checks were not run because the local test shell is unelevated.

GitHub Actions also passes the optimized build, all eight test cases, production packaging checks, the component benchmark and all 21 benchmark-suite cases for the release commit.

This is not full feature parity with Windows Task Manager: disk and power values have different semantics, app history is local CPU history, and some startup sources are read-only. Live Windows 11 verification remains outstanding. See README and docs/PARITY.md for the specific differences.