Jiří Polášek
90d · built 2026-09-30
Performance
What Jiří Polášek shipped in the selected window, measured in ETV, and how it compares with the 90 days before it.
Effective capacity
+12.2engineers
delivers like 13.2 (13.2x pre-AI)
Output (ETV)
71.6ETV
+5282.0% vs 1.3 prior
Features share
50.8%
−22.1 pp vs prior window
Fixes share
9.0%
+4.5 pp vs prior window
Work mix
50.8% Features7.2% Maintenance31.5% Tests1.6% Docs9% Fixes
92 commits over 90 days, ending 2026-09-30.
Where this dev ranks
Percentile against the global top-100 leaderboard (all-time totals).
- By commits
- Top 79 %
- By Features share
- Top 7 %
Daily performance
Daily ETV, stacked by Features, Maintenance, Tests, Docs and Fixes.
Repository spread
Where this developer's commits land. Concentrated work (top1 > 80%) vs polymath spread (top1 < 30%).
Most impactful commits
Top 10 by ETV in the last 90 days.
- 5.6ETVCmdPal: Icons (12/n) - Share Shell icons by identity and display file-type previews (#50192) <!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request Part 12 of 12 in the CmdPal icon-loading series. Depends on #50191. This PR resolves Shell identity before materialization so different item paths can share one cached icon, and adds a quick file-type preview before exact refinement. - Routes explicit Shell requests and eligible legacy paths through shared location aliases and canonical cache/in-flight entries. - Adds generation-safe invalidation, bounded retries, safe fallbacks, and direct HICON conversion without a PNG round trip. - Keeps resolution/extraction and cold arbitration off the STA, coalesces preview updates, and skips misleading shortcut previews. - Integrates Indexer, Bookmarks, and Shell requests and adds diagnostics plus separate System32 semantic/legacy samples. Motivation: thousands of files often share a small set of icons. Avoid repeating extraction/materialization, while giving the user a useful preview during per-item resolution. Note: A dear reviewer will observe that both System32 samples are still slow as a drunk crippled squirrel and icons are loading slowly anyway. The reason for that is that the list items are initialized in order, and before it is initialized, list item view model doesn't know anything about its icon at all. The follow-up PR #50469 tackles this issue. ### Examples Using `Microsoft.CommandPalette.Extensions.Toolkit`: ```csharp new IconInfo(ShellItemIconProtocol.Create(@"C:\Docs\a.txt")); new IconInfo(ShellItemIconProtocol.CreateJumbo(@"C:\Docs\a.txt")); new IconInfo(ShellItemIconProtocol.Create(@"C:\Windows\System32\shell32.dll")); ``` The first two serialize as: ```text |ShellItemIcon|v1;13:C:\Docs\a.txt |JumboShellItemIcon|v1;13:C:\Docs\a.txt ``` The last example requests the DLL file's Shell icon. It does not mean “extract icon resource 1,” which remains a different request: ```csharp new IconInfo(@"C:\Windows\System32\shell32.dll,1"); ``` ### Evidence These are Shell-specific characterizations, not an accepted comparison with the preceding PR. - Historical System32 cold runs: 8565, 8564, and 8564 Shell requests; exactly 174 extractions and 4769 location resolutions in each run. Many requests share materialized icons, but per-path resolution still costs work. - The three warm passes performed 0, 0, and 171 extractions; location resolutions were 0, 0, and 4769. A zero median must not be presented as guaranteed warm reuse. - A later two-phase smoke run recorded 171 extractions for 8565 requests. Its workload gate passed, but there was only one run per side. - The earlier legacy-page versus semantic-page comparison failed its cross-page workload gate. Its headline latency percentages are not accepted comparative evidence. - Provider/resolver tests cover canonical joins, invalidation races, fallback poisoning, progressive replacement, and off-caller-thread cold arbitration. The counts demonstrate sharing, not instantaneous visible icons. Repeat a matched-page cold/warm comparison on the final build and explain the warm re-extraction run before claiming a reliable latency improvement. All apps/Home scenarios do not substitute for a Shell workload. ### Technical notes - Path aliases remain case-sensitive; canonical Shell identity is where different paths converge. Index generations participate in the key. After bounded invalidation retries, resolution falls back to a path-specific identity instead of relabeling a possibly stale image-list index. - `SHGFI_USEFILEATTRIBUTES` supplies only the provisional type icon, not proof of the exact item's identity. Exact lookup still corrects custom icons. Extensionless items and shortcuts skip this phase; a dotted directory can briefly receive a file-type preview rather than forcing a filesystem check on the STA. - Requests joining a canonical load keep their original request binding. The shared load is conservatively held demanded rather than reattaching an already-bound requester. Actual worker release is measured separately from the later shared-task completion. - Null extraction results/shared generic fallbacks must not poison a canonical type-wide cache entry. Fallback and real extraction success are distinct outcomes. - Thread-local Shell error-mode suppression prevents modal error boxes; it does not impose a timeout on Shell handlers. Direct image paths retain their image behavior, and explicit Shell-file requests remain distinct from embedded binary-icon references. - Canonical caching reduces extraction/materialization, not every per-path Shell query or earlier view-model initialization. Realized-item initializer priority is outside these 12 PRs. Implementation: `src/modules/cmdpal/Microsoft.CmdPal.UI/Helpers/Icons/ShellIconLocationResolver.cs`. <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #50131 <!-- - [ ] 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 - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed Rebase validation (2026-09-08): - Rebased onto `dev/jpolasek/f/49944-cmdpal-svg-icons` at `89973610cbd28b77317a007dec554d236818b380`. - `git range-diff` confirmed both Shell-icon commits are unchanged. The item-initialization change is reviewed independently against `main` in #50469. - Release x64 build of `Microsoft.CmdPal.UI` passed using `tools/build/build.ps1` with serial MSBuild execution and package generation disabled. - All 351 UI unit tests passed through `vstest.console.exe`. - `git diff --check` passed. - Live UI behavior was not exercised in this validation run.github.com-microsoft-PowerToys · aa8058d8 · 2026-09-29
- 4.7ETVCmdPal: Add support for multiple clocks and refactor the Time and Date module (#49288) <!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request This PR refactors Time and date extension and adds support for multiple clocks with different time zone and/or display format. - Adds a new page for viewing and managing custom clocks, each with its own time zone, title, and subtitle display format. - Adds per-clock settings. - Adds a relative date format based on the current date, for cases where a time zone difference changes the displayed date. - Makes custom clocks pinnable. - Dynamically adapts "Copy time" and "Copy date" context menu items names to actual format being copied. - Adds a new optional "Copy XXX" context menu item, to allow copy a user-selected format that doesn't match the displayed one. - Removes the fallback switch from the options (we now have a toggle for that built-in to fallback command managment). - Replaces the dock-wide seconds setting with per-clock customization. - Introduces a centralized service that updates all clocks. - Dynamically enables or disables updates for pages and bands based on whether they are currently in use. - Adds new option to select now dock band action (Open notification center or show All clock page). ## Pictures? Pictures! <img width="1298" height="530" alt="image" src="https://github.com/user-attachments/assets/0b07fc91-7823-4252-b7d9-07a95e4a2578" /> <img width="1434" height="1354" alt="image" src="https://github.com/user-attachments/assets/63e4b340-520f-404f-8252-3318b0dce0de" /> <img width="1294" height="702" alt="image" src="https://github.com/user-attachments/assets/3794d948-0eab-46ec-a1bd-baef503940ed" /> <img width="1288" height="1096" alt="image" src="https://github.com/user-attachments/assets/1e7f7299-31e7-4d06-bc07-fb1211fc799c" /> <img width="610" height="300" alt="image" src="https://github.com/user-attachments/assets/44d70270-5d0b-4534-9a6b-b94474c4d36b" /> <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #49284 - [x] Closes: #48940 <!-- - [ ] 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 - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performedgithub.com-microsoft-PowerToys · f6b37b97 · 2026-09-04
- 4.5ETVCmdPal: Add command deep links (#49793) <!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request This PR builds the foundation for deep linking everything in Command Palette. Some mandatory reading: [👀 src/modules/cmdpal/doc/command-links.md](https://github.com/microsoft/PowerToys/blob/dev/jpolasek/f/49775-cmdpal-deeplink-everything/src/modules/cmdpal/doc/command-links.md) - Extends x-cmdpal:// with command routes and list-page options. - Adds dialog for explicit user consent. - Adds copy-link actions to top-level commands. - Adds permission management UI. - Adds tech-design document draft. - As a flyby fixes Pin to Dock dialog being clipped by a small compact window. ## Pictures? Pictures! We also have moving pictures, see... https://github.com/user-attachments/assets/3399e064-f64a-441b-9e9c-0410e5124eb8 Hello user <img width="722" height="420" alt="image" src="https://github.com/user-attachments/assets/f79ed015-a087-4839-a7c5-23aced7a0a55" /> I love toggles and buttons <img width="1330" height="754" alt="image" src="https://github.com/user-attachments/assets/136c7261-3444-4400-b8b2-331897df13fe" /> Because what everyone really wanted was more context menu items... <img width="723" height="455" alt="image" src="https://github.com/user-attachments/assets/904d8648-80e5-490b-92b5-45b1226b7bb9" /> <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #49775 - [x] Closes: #49283 <!-- - [ ] 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 - [x] **Tests:** Added/updated and all pass - [x] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performedgithub.com-microsoft-PowerToys · e9c22847 · 2026-09-19
- 3.7ETVCmdPal: Icons (4/n) - Prioritize live icon requests and load glyphs directly (#50184) <!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request Part 4 of 12 in the CmdPal icon-loading series. Depends on #50183. Next: #50185. This PR gives live requests precedence and removes unnecessary queueing for glyph cache misses. - Keeps caching/in-flight sharing, but constructs eligible glyph sources directly on the UI thread. - Sends demand changes through a lock-free command queue to a dedicated coordinator. - Keeps the extraction-worker count unchanged and reserves capacity from speculative work. Motivation: inexpensive list/context-menu glyphs should not wait behind image work, and off-screen work should not occupy every slot. ### Evidence Historical adjacent-stage comparison (2026-08-18); shared method and limitations: the diagnostics foundation PR #50181. - B cold-ish applied average: 19.951 → 4.978 ms (−14.973 ms, −75.0%); all three pairs improved. - B cold-ish new-load glyph latency: 30.575 → 0.402 ms; p99 bound ≤500 → ≤1 ms. - A cold-ish queued dispatcher callbacks: 3504 → 673 (2831 fewer); all three pairs decreased. - A cold-ish demanded queue-wait average: 2.285 → 13.544 ms. Cheap glyphs have left this population, so the aggregate is no longer like-for-like; remaining image delays still need their own assessment. - Queue tests cover demand transitions, capacity limits, and scheduler faults. The evidence supports removing glyph queueing and reducing dispatcher traffic, rather than a universal improvement for every remaining icon type. ### Technical notes - Direct glyph loading still uses the cache. “Cheap to construct” does not mean “free to construct repeatedly,” and XAML objects still require the correct STA. - The coordinator is a control thread, not an additional extraction worker. The STA publishes notifications without acquiring the scheduler's state lock. - Losing demand does not cancel a shared load. Speculative work may still populate the cache, but is allowed to starve while live demand continues. - Queue order follows the current continuous demand period. Losing every requester relinquishes that position; returning demand does not keep an old place indefinitely. Implementation: `src/modules/cmdpal/Microsoft.CmdPal.UI/Helpers/Icons/IconLoadQueue.cs`. <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #49936 <!-- - [ ] 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 - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performedgithub.com-microsoft-PowerToys · 57237978 · 2026-09-27
- 3.6ETVCmdPal: Icons (1/n) - Add opt-in icon loading diagnostics (#50181) <!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request Part 1 of 12 in the CmdPal icon-loading series. Targets `main`. Next: #50182. This PR makes icon loading and overall UI responsiveness measurable, with collection disabled during normal use. - Records request outcomes, cache/in-flight resolution, loading phases, and static request-origin labels. - Measures process CPU time, managed allocations, GC, working set, and dispatcher responsiveness. - Keeps session reports with copy controls and normal-log output, without recording icon strings, paths, or item data. Motivation: distinguish costly icon work from queueing and unrelated UI pressure before optimizing the pipeline. ### Evidence This is instrumentation, not a claimed speedup. - Tests cover aggregate reporting, session/report lifetime, and enqueue/completion races. - Disabled-collection overhead has not been isolated against uninstrumented main; it must not be described as zero. ### Shared measurement method for this PR series Later PRs refer here instead of repeating these definitions. - Historical A/B/C results are from 2026-08-18: Release Native AOT, three alternating iterations per side, two passes per process, text diagnostics active, ETW disabled. Values are medians of per-run metrics. They describe earlier implementations, not fresh measurements of the rewritten commits or their new main base. - A is complete keyboard traversal of All apps and Segoe icons. B is sparse/skipping viewport traversal, testing requests that jump ahead of linear loading. C is character-by-character Home search for Word, Excel, PowerPoint, and Visual Studio. - Cold-ish means a fresh CmdPal process; OS caches and extension state were not forcibly cleared. Warm means the second pass in the same process, not a guarantee that every icon remains cached. - Before → after compares adjacent historical stages unless stated otherwise. This diagnostics foundation is the instrumented main-equivalent reference, not unmodified main. The following materialization-diagnostics PR (#50182) adds the detailed observer carried through later stages. - Applied latency starts at the `IconBox` request and ends when the result is applied. It excludes earlier view-model initialization and is not scroll-to-first-paint time. An average alone cannot establish perceived responsiveness. - p95/p99 values are histogram upper bounds, written `≤`. Crossing a bucket boundary is not an exact percentage change in the percentile. Read averages alongside sample counts; “no samples” is not zero. - Dispatcher wait measures queueing, not execution. Callback wall time can include an asynchronous transfer. Measured STA slices and icon-UI totals cover instrumented wall time, not all UI CPU, rendering, or layout work. - “Update average” is the instrumented icon-element update duration, not the complete item update or request latency. CPU is whole-process CPU time; allocations are bytes allocated, not retained memory. - Three runs show descriptive repeatability, not statistical significance. Report absolute deltas and tails alongside percentages; a small average can still hide a noticeable slow request. Population changes, thermal variation, and workload differences must remain visible. - Reduced cumulative work is useful, but is not the same as a proportional improvement in responsiveness. Small, inconsistent changes are not established wins or regressions. ### Technical notes - Probes stay compiled in and are guarded at runtime. This avoids conditional-compilation plumbing, but an inactive probe still has a small checking cost; enabled collection necessarily adds work. - Text summaries and ETW serve different purposes: repeatable aggregate comparisons versus timestamped event correlation. ETW-enabled runs must be identified separately, not mixed into the text-only baseline. - Request origins use static developer labels and process-local control IDs, not paths, user content, or persistent identifiers. Implementation: `src/modules/cmdpal/Microsoft.CmdPal.UI/Helpers/Icons/IconLoadDiagnostics.cs`. <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #49934 <!-- - [ ] 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 - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performedgithub.com-microsoft-PowerToys · 91271223 · 2026-09-26
- 3.6ETVCmdPal: Add file and list settings controls (#49623) ## Summary of the Pull Request This PR adds reusable Command Palette extension settings controls for selecting files and folders and managing lists. The new controls include: - `FilePathSetting` for selecting a single file or folder. - `FilePathListSetting` for managing multiple file and/or folder paths. - `StringListSetting` for managing plain string values. - `KeyValueListSetting` for managing key-value pairs. - Optional regex validation for strings, keys, and values. - Optional duplicate prevention for strings and key-value keys. - Configurable file picker filters. - Custom persisted-string conversion. - Fallback content when the Command Palette host does not support a control. But this has no direct impact now, because there's a bug in WinUI3 AC renderer that throws it away (sad panda). ## Pictures? Picture! <img width="856" height="974" alt="image" src="https://github.com/user-attachments/assets/2e5d9ee1-9eca-48a7-803a-76a96859722e" /> <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #49622 <!-- - [ ] 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 - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments This PR extends `Microsoft.CommandPalette.Extensions.Toolkit` with file-path, file-path-list, string-list, and key-value-list settings. The Command Palette host registers custom Adaptive Card input elements during application startup. The controls use native file and folder pickers parented to the window containing the form, so they work correctly in both the Settings window and palette-hosted forms. List controls render as constrained, scrollable lists with add and remove actions. They support developer-configurable validation, duplicate handling, picker modes, and error messages. List values crossing the extension/host boundary use a structured codec that preserves unknown properties and remains compatible with the previously accepted bare-string representation. Persisted values can use the default newline representation or developer-provided conversion callbacks. The SDK emits Adaptive Card `requires` and fallback information so extensions built with the new controls can provide actionable content when loaded by an older Command Palette host. A Sample Pages extension page demonstrates all new setting types and their validation options. <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performedgithub.com-microsoft-PowerToys · 14a966f3 · 2026-08-12
- 3.4ETVCmdPal: Unify context-menu behavior and shortcut handling (#50843) ## Summary of the Pull Request This PR fixes context item shortcuts being invoked twice, which could navigate to the same page twice and require two Back or Escape presses. It also unifies context menu behavior across the palette and dock. - Adds Ctrl+Enter, Ctrl+K, and extension shortcuts to focused dock items while preserving normal button activation and invocation context. - Moves item shortcuts and menu orchestration out of `CommandBar`, allowing the bar to be replaced or hidden without losing keyboard shortcuts. - Keeps keyboard actions tied to the live selection while preserving the command bar's 50ms debounce to avoid visual churn when browsing. - Opens menus with an explicit context, prepares their state on demand, refreshes open submenus when commands change, and releases subscriptions after closing. - Reserves Enter and Ctrl+Enter for host actions and displays shortcut hints according to each command's role. Nested menus no longer inherit misleading root action hints. - Handles deferred keyboard opens, cancellation, rapid close/reopen requests, focus restoration, and Narrator announcements. - Adds a new menu flyout with menu style animations (slide up/down) that follow actual placement, including screen edge reversals. May seem like quite a stretch for this PR, but this fixes menu behavior and avoid a workaround for WinUI that would make this code more complicated. ## Pictures? Pictures! Primary and secondary command shows either default shortcuts... <img width="820" height="282" alt="image" src="https://github.com/user-attachments/assets/e74ae480-5b41-4e64-80d8-7142c571eb65" /> ... but a custom requested shortcut takes precedence in the menu: <img width="492" height="208" alt="image" src="https://github.com/user-attachments/assets/21008fb3-1f29-459c-9dcb-61f28fcce95d" /> <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #50807 - [x] Closes: #48725 - [x] Closes: #49341 <!-- - [ ] 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 - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performedgithub.com-microsoft-PowerToys · 5ca3b331 · 2026-09-28
- 3.3ETVCmdPal: Prioritize initialization of visible and selected list items (#50469) ## Summary of the Pull Request This PR prioritizes initialization of visible and selected CmdPal list items. When users scroll or change selection, newly needed items move ahead of pending off-screen work, helping their content and icons appear sooner. - Initializes visible and selected items first, while allowing work already in progress to finish. - Uses lock-free demand signaling and the existing background initializer, without adding workers or UI-thread locks. - Preserves demand as item containers are recycled and initialization coordinators are replaced. - Recovers interrupted work when navigating Back, without refetching unchanged pages whose contents were already published. - Adds regression coverage for cancellation, recycling, coordinator replacement, and navigation races. _Note: if you see this and think, didn't we already approved and merged this? Well, sort of... this is the same patch as #50203, just rebased on top of main._ <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #50179 <!-- - [ ] 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 - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performedgithub.com-microsoft-PowerToys · 65d79b27 · 2026-09-10
- 2.3ETVCmdPal: Deep links for CmdPal settings (#50753) ## Summary of the Pull Request This PR implements deep links for CmdPal settings. Extra useful to point users to a specific option. - Links to settings every card, section title, squirrel. - Extension-specific links - Opens an extension's settings page or targets specitic section (enabled toggle, commands, settings card). - Copy-link menus - Adds context-menu actions to navigation items, section headers, settings cards, and extension cards, with an accessibility announcement after copying. - Target focusing and highlighting - Expands collapsed sections, scrolls the destination into view, focuses its control, and briefly highlights it. Highlighting respects animation preferences and high-contrast mode. - Fallback-order shortcut - Supports opening the extension fallback-order dialog directly. - Unavailable destinations - Shows explanatory notices for unknown links, missing providers, and unavailable targets. Navigation waits for providers that are loading and cancels pending positioning when another navigation begins. - Stable link identities - Separates public destination IDs from XAML names and current page locations. Examples: - x-cmdpal://settings/about - x-cmdpal://settings/appearance - x-cmdpal://settings/language - x-cmdpal://settings/fallback-order - x-cmdpal://settings/extension/{provider-id}/settings ## Pictures? Pictures! Highlight <img width="1266" height="713" alt="image" src="https://github.com/user-attachments/assets/4299ca64-f152-44f9-847d-52baf6c5b54b" /> Copy a deep link actions <img width="1266" height="713" alt="image" src="https://github.com/user-attachments/assets/b59b4a64-4576-4c64-b9c1-45e76c640387" /> Bumpy navigation info bar (missing, moved targets) <img width="1266" height="713" alt="image" src="https://github.com/user-attachments/assets/1bfe3098-621d-4362-bf27-2816c988e4d0" /> <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #49986 <!-- - [ ] 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 - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performedgithub.com-microsoft-PowerToys · 12eaff03 · 2026-09-28
- 2.3ETVCmdPal: Virtualize grid views and polish it (#50233) ## Summary of the Pull Request This PR replaces that implementation with a grouped `GridView` backed by the native `ItemsWrapGrid`, allowing WinUI to realize and recycle only the containers needed for the current viewport. CmdPal grid and gallery pages used a custom `WrapPanel` that measured and arranged every item. This prevented container virtualization and made large result sets increasingly expensive. And because I'm lazy splitting and retesting everything, this PR is packing some other fixes on a way toward making the grid view usable, like keyboard navigation. - Projects the existing flat item collection into native grid groups while preserving headers, separators, ordering, and repeated header occurrences. - Reuses existing group and item wrappers during updates to avoid resetting the view or unnecessarily recreating containers. - Coalesces collection changes and safely handles reentrant updates and late header metadata. - Releases the grouped source and its subscriptions together when the view unloads or its data context changes. This prevents updates from reaching torn-down native group state, which caused the back-navigation crash. - Implements grid-aware Left/Right, Up/Down, and PageUp/PageDown navigation without depending on containers being realized. - Preserves the intended column across partial rows and section headers, scrolls off-screen targets into view, and wraps arrow navigation at list boundaries. - Adds Native AOT type preservation for `ItemsWrapGrid`. - Adds an issue-specific large-grid sample and packages the gallery image assets needed by Sample Pages. - Removes the obsolete custom wrap panel and grid template selectors. ## Pictures? Pictures! https://github.com/user-attachments/assets/90ea82b2-c96d-4e73-b51b-8cb887e4f6f1 https://github.com/user-attachments/assets/0fc46be7-07d2-4f10-9e3d-245a8d0b0c4b <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #44408 - [x] Closes: #50227 <!-- - [ ] 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 - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performedgithub.com-microsoft-PowerToys · c0d72e73 · 2026-09-03