CmdPal: Refine superseding value gate lifecycle #51380

Open
jiripolasek opened 6:15pm on October 17, 2026 wants to merge 1 commit into microsoft/powertoys main from
dev/jpolasek/f/51379-cmdpal-superseding-value-gate

Pull Request Overview

  • Opened on October 17, 2026
  • Status Open
  • Commit count 1 with first commit October 17, 2026

Total Delta

0 Total Diff Delta

Open Days

Open 17 weekdays

Test Delta

0 Diff Delta in Test Files
Breakdown by Phase

How long has this pull request spent in each phase of its lifecycle?

Data pending calculation for pull request

Author avatar

CmdPal: Refine superseding value gate lifecycle

Summary of the Pull Request

This PR tefines SupersedingAsyncValueGate<T> so requests arriving as the worker becomes idle complete reliably, and disposal prevents later results from being applied.


  • Preserves latest-request-wins behavior and keeps caller cancellation scoped to waiting.

  • Serializes request scheduling and keeps caller cancellation scoped to its wait.

  • Runs work cancellation callbacks asynchronously and drains them before reporting idle.

  • Adds asynchronous disposal while allowing committed application to finish.

  • Documents lifecycle guarantees and exposes gate and request state in the debugger.

PR Checklist


  • [x] Closes: #51379
    <!-- - [ ] Closes: #yyy (add separate lines for additional resolved issues) -->

  • [ ] 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

  • [ ] New binaries: Added on the required places



  • [ ] Documentation updated: If checked, please file a pull request on our docs repo and link it here: #xxx

Detailed Description of the Pull Request / Additional comments

Validation Steps Performed

No comments have been left on this PR.