Skip to content

Redesign the CmdPal Dock performance monitor - #49513

Closed
Clint Rutkas (crutkas) wants to merge 5 commits into
mainfrom
crutkas-resource-monitor-redesign
Closed

Redesign the CmdPal Dock performance monitor#49513
Clint Rutkas (crutkas) wants to merge 5 commits into
mainfrom
crutkas-resource-monitor-redesign

Conversation

@crutkas

Copy link
Copy Markdown
Member

Summary of the Pull Request

CmdPal's Dock performance monitor was underutilized and its Adaptive Card refresh path visibly pulsed while updating. This PR replaces that surface with a persistent native WinUI overview, strengthens its refresh lifecycle, restores reliable GPU/network adapter selection, and presents disk and network throughput as meaningful directional pairs.

PR Checklist

  • Closes: N/A
  • Communication: I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected
  • Tests: Added/updated and all pass
  • Localization: All end-user-facing strings can be localized
  • Dev docs: Added/updated - N/A; no developer workflow or API documentation changed
  • New binaries: Added on the required places - N/A; no new binaries or test projects
  • Documentation updated: N/A; no public documentation changes are required

Detailed Description of the Pull Request / Additional comments

  • Adds a native performance-overview content type, view model, and WinUI control so the dashboard visual tree remains alive while bound values update in place. Existing Adaptive Card content remains unchanged.
  • Shows CPU, GPU, RAM, Disk, and Network in the compact Cal-inspired layout, preserving the thin track and thicker colored fill treatment.
  • Hardens Dock page ownership, subscription cleanup, view-model reuse, and refresh coalescing to prevent retained pages and unbounded queued updates.
  • Selects the active connected network interface automatically, preserves manual adapter choices, recovers after disconnects, and exposes compact GPU/network adapter controls.
  • Displays Disk Read/Write and Network Send/Receive as paired bars. Each pair shares a 60-second rolling peak with 20% headroom and a minimum throughput scale, while aggregate values remain available for hero display and schema-v1 compatibility.
  • Keeps the paired tracks aligned beneath their directional values rather than spanning under the metric-label column.

Validation Steps Performed

  • Built the affected CmdPal UI and both focused test projects for x64 Release.
  • Ran the Performance Monitor and CmdPal UI ViewModel suites together: 253 passed, 0 failed, 0 skipped.
  • Verified loose-package restart behavior, Dock/main icons, live metric refresh, active-network selection, adapter cycling, disconnect recovery, and independent Send/Receive and Read/Write updates.
  • Confirmed the native dashboard updates without the Adaptive Card refresh pulse.
  • Completed a 10-minute resource soak after the lifecycle fix and a final 30-second sample; memory remained stable and handle/thread counts did not grow.
  • Completed final Opus 5 max reviews of the lifecycle, adapter, paired-meter, accessibility, mapping, and layout changes with no remaining high-confidence findings.

Clint Rutkas (crutkas) and others added 5 commits July 24, 2026 22:55
Co-authored-by: Copilot App <[email protected]>
Copilot-Session: 35cfd22f-d944-46df-95d4-163a302e885d
Co-authored-by: Copilot App <[email protected]>

Copilot-Session: 35cfd22f-d944-46df-95d4-163a302e885d
Auto-select active network interfaces, preserve stable manual cycling, and expose compact GPU/network adapter controls without promoting them to page-level commands.

Co-authored-by: Copilot App <[email protected]>

Copilot-Session: 35cfd22f-d944-46df-95d4-163a302e885d
Co-authored-by: Copilot App <[email protected]>

Copilot-Session: 35cfd22f-d944-46df-95d4-163a302e885d
Co-authored-by: Copilot App <[email protected]>

Copilot-Session: 35cfd22f-d944-46df-95d4-163a302e885d
@github-actions github-actions Bot added Product-Command Palette Refers to the Command Palette utility Product-Settings The standalone PowerToys Settings application labels Jul 27, 2026
@crutkas
Clint Rutkas (crutkas) marked this pull request as draft July 27, 2026 19:30

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Eh. Can I vote no to adding controls for specific extensions? This seems like a really bad precedent to start.

@zadjii-msft

Copy link
Copy Markdown
Member

Yeah, I'm closing this one. I understand that we don't love that the cards flicker every time that they update, but we're definitely not going to author custom controls for our in-proc extensions. I much preferred the version of this that the robots had come up with earlier, with just a nicer adapted card JSON layout.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Product-Command Palette Refers to the Command Palette utility Product-Settings The standalone PowerToys Settings application

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants