Skip to content

Feat/taskmgr windows UI - #25

Merged
manupawickramasinghe merged 2 commits into
masterfrom
feat/taskmgr-windows-ui
Jul 31, 2026
Merged

Feat/taskmgr windows UI#25
manupawickramasinghe merged 2 commits into
masterfrom
feat/taskmgr-windows-ui

Conversation

@manupawickramasinghe

Copy link
Copy Markdown
Member

No description provided.

manupawickramasinghe and others added 2 commits July 31, 2026 19:14
The three "untested on Windows" entries existed because nobody had the
machine. Running the release binaries for the first time retired one of
them and turned up three reproducible defects, none of them fixed here:

- every release build demands elevation, including the headless one meant
  for servers and containers, because the manifest is gated on the profile
  alone rather than on the gui feature. A non-elevated parent gets
  ERROR_ELEVATION_REQUIRED with no UAC prompt available
- --help, --version and every clap error print nothing, because clap
  handles them inside Cli::parse() and attach_console() is not called until
  cli::run(). A mistyped subcommand fails in silence
- kill without --force can never succeed, since sysinfo supports no signal
  but Kill on Windows. This also breaks the Task Manager's default
  "End process" button

And the reason CI stayed green through all three: the headless smoke test
runs a debug build, and nothing on any platform ever executes a release
binary.

What was verified working is listed too, so it is not re-investigated:
AttachConsole itself, the windows_subsystem gating, exit codes,
stdout/stderr separation, redirection, and the TUI's panic-hook terminal
restoration under panic = "abort".

The ring/C-compiler entry is settled rather than removed: it builds fine
with MSVC, so the requirement moves to the README as a prerequisite.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
More colour, and the layout people already know.

Processes now leads with Name and follows Windows' column order, with the
measured columns heat-shaded — the tint strengthens and shifts amber to red
with the value, so the processes worth looking at are found by glancing
rather than by reading. Each header carries its machine-wide total.

The Disk column needed real data, not just a cell: sysinfo only exposes
cumulative counters, so the collector keeps the previous tick's values and
differences them against the wall clock actually elapsed rather than the
nominal interval, which would overstate every rate on a slow machine. The
rate is None until a baseline exists, exactly as cpu_pct is, and pid reuse
is handled with saturating_sub so a recycled pid cannot report an absurd
rate.

CPU % in the table is now a share of the whole machine, which is what the
column means to anyone reading it — 4 saturated threads of 16 reads 25 %,
not 400 %. The per-thread-summed figure is in the tooltip and is still what
`sensorview ps` prints; the filter bar was showing the summed number beside
the header's share, which read as a contradiction, and now agrees.

Performance gives each device class its own hue — CPU blue, memory purple,
disk green, network rose, GPU teal — used for its card, thumbnail and
graph, so colour identifies the device rather than decorating it. Graphs
fill to the baseline over a fixed grid, and utilisation is pinned to
0-100 % so an idle machine reads as idle instead of auto-scaling noise to
full height.

Sidebar titles are disambiguated in a post-pass, because the rule depends
on a tally no single node knows while the tree is walked. This machine has
two RAM-class nodes and six NICs, which rendered as two cards labelled
"Memory" and six labelled "Network" — the one thing the sidebar must never
do. Distinct device names win over an index ("Wi-Fi 2" beats "Network 5",
and is what Windows shows); numbering stays the fallback for genuinely
identical devices such as two disks reporting the same model string.

format_rate now prints <0.1 MB/s rather than 0 MB/s for small but real
I/O: rounding a measured value to zero contradicts this module's rule that
0 means idle and — means unknown.

Verified on screen in both the Black and Light palettes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 31, 2026 13:47

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@manupawickramasinghe
manupawickramasinghe merged commit 979d4a0 into master Jul 31, 2026
0 of 3 checks passed
@manupawickramasinghe
manupawickramasinghe deleted the feat/taskmgr-windows-ui branch July 31, 2026 16:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants