Skip to content

Task Manager v1.3.0

Latest

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.