Skip to content

TaskMan v0.1.8

Choose a tag to compare

@aufkrawall aufkrawall released this 12 Sep 15:43

A reliability and polish release: fixes for LocalSystem broker service stability, disk active time scaling and short-window preservation, and table scroll anchoring when sorting live tables.

Core Service & Broker

  • A vanished client no longer terminates the LocalSystem broker service. When an opener connected and dropped its handle before ConnectNamedPipe, NPFS left the instance in ERROR_NO_DATA. This was mapped to Err and propagated out of the accept loop, killing the service (SCM event 7024/7031). Connection errors are now handled per-instance without failing the broker.
  • Eliminated pipe listener race conditions. The broker now re-arms its next pipe listener before resolving client image identity, eliminating ERROR_PIPE_BUSY windows where incoming connection attempts failed. The GUI client also retries a busy pipe up to a 1 s deadline.
  • Fast broker detection after service start. When the service is installed from Advanced Settings, the broker source is checked every tick (a single cheap CreateFileW) rather than waiting on the 30 s retry backoff that covers local ETW sessions. Columns begin populating within two ticks of service start.

Processes & Telemetry

  • Disk active time is scaled to wall time. Previously computed as proc_service_time / total_service_time, meaning a single minor I/O request on an idle disk caused a process to report 100% disk activity under a 0% header. Rows are now scaled by the machine total, so rows sum to the header and noise collapses on idle disks.
  • No blanking after window restore. Restoring a minimized window or probing the disk source creates a brief sample window shorter than MIN_WINDOW_MS. Instead of blanking the entire column to "—", the previous valid measured reading is carried forward.

Tables & Scrolling

  • Scroll anchoring follows the majority of rows rather than a single survivor. Sorting Processes by CPU load previously dragged the viewport downwards as the tracked row traded places with its neighbours on each tick. Anchor offsets now compute the longest run of equal displacements across all remembered rows, following only true inserts/removals (>50% agreement) and ignoring live re-ranking.
  • Top-pinned viewports stay at the top. A viewport scrolled to the very top stays at rank 1, keeping the highest CPU consumer visible as processes trade positions.

Verifying a download

Each archive ships a .sha256 beside it:

sha256sum -c taskman-v0.1.8-windows-x86_64.zip.sha256

Full changelog: v0.1.7...v0.1.8