Skip to content

Conversation

@khmyznikov
Copy link
Contributor

commit 32c13cead402b0e440383b2d1722a4c64dc7e7df
Author: Jiří Polášek <[email protected]>
Date:   Mon Dec 1 20:24:54 2025 +0100

    CmdPal: Remove fallbacks from the home page when there's no query (#44005)

    This PR stops fallback commands from showing on the homepage when
    there’s no query, with the reasons detailed in the linked issue.

    <!-- Please review the items on the PR checklist before submitting-->

    - [x] Closes: #44004
    <!-- - [ ] 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 -->

    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->

commit 33808fdb9cd3af285a479d1986c6cb34570b35a6
Author: Jiří Polášek <[email protected]>
Date:   Mon Dec 1 20:23:48 2025 +0100

    CmdPal: Hide RDC fallback item by default (#43994)

    This fixes few nits with RDC extension:
    - hides the RDC fallback item from the home page when there’s no query;
    - fixes MSTSC process working directory (must physically exists or be an
    empty string)

    <!-- Please review the items on the PR checklist before submitting-->

    - [ ] Closes: #xxx
    <!-- - [ ] 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 -->

    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->

commit f510be4c5384662fe0e15e6563d93e9ab7e420dc
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Dec 1 22:29:21 2025 +0800

    Build(deps): Bump actions/checkout from 3 to 6 (#43838)

    Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to
    6.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a
    href="https://github.com/actions/checkout/releases">actions/checkout's
    releases</a>.</em></p>
    <blockquote>
    <h2>v6.0.0</h2>
    <h2>What's Changed</h2>
    <ul>
    <li>Update README to include Node.js 24 support details and requirements
    by <a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
    in <a
    href="https://redirect.github.com/actions/checkout/pull/2248">actions/checkout#2248</a></li>
    <li>Persist creds to a separate file by <a
    href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/2286">actions/checkout#2286</a></li>
    <li>v6-beta by <a
    href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/2298">actions/checkout#2298</a></li>
    <li>update readme/changelog for v6 by <a
    href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/2311">actions/checkout#2311</a></li>
    </ul>
    <p><strong>Full Changelog</strong>: <a
    href="https://github.com/actions/checkout/compare/v5.0.0...v6.0.0">https://github.com/actions/checkout/compare/v5.0.0...v6.0.0</a></p>
    <h2>v6-beta</h2>
    <h2>What's Changed</h2>
    <p>Updated persist-credentials to store the credentials under
    <code>$RUNNER_TEMP</code> instead of directly in the local git
    config.</p>
    <p>This requires a minimum Actions Runner version of <a
    href="https://github.com/actions/runner/releases/tag/v2.329.0">v2.329.0</a>
    to access the persisted credentials for <a
    href="https://docs.github.com/en/actions/tutorials/use-containerized-services/create-a-docker-container-action">Docker
    container action</a> scenarios.</p>
    <h2>v5.0.1</h2>
    <h2>What's Changed</h2>
    <ul>
    <li>Port v6 cleanup to v5 by <a
    href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/2301">actions/checkout#2301</a></li>
    </ul>
    <p><strong>Full Changelog</strong>: <a
    href="https://github.com/actions/checkout/compare/v5...v5.0.1">https://github.com/actions/checkout/compare/v5...v5.0.1</a></p>
    <h2>v5.0.0</h2>
    <h2>What's Changed</h2>
    <ul>
    <li>Update actions checkout to use node 24 by <a
    href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/2226">actions/checkout#2226</a></li>
    <li>Prepare v5.0.0 release by <a
    href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/2238">actions/checkout#2238</a></li>
    </ul>
    <h2>⚠️ Minimum Compatible Runner Version</h2>
    <p><strong>v2.327.1</strong><br />
    <a
    href="https://github.com/actions/runner/releases/tag/v2.327.1">Release
    Notes</a></p>
    <p>Make sure your runner is updated to this version or newer to use this
    release.</p>
    <p><strong>Full Changelog</strong>: <a
    href="https://github.com/actions/checkout/compare/v4...v5.0.0">https://github.com/actions/checkout/compare/v4...v5.0.0</a></p>
    <h2>v4.3.1</h2>
    <h2>What's Changed</h2>
    <ul>
    <li>Port v6 cleanup to v4 by <a
    href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/2305">actions/checkout#2305</a></li>
    </ul>
    <p><strong>Full Changelog</strong>: <a
    href="https://github.com/actions/checkout/compare/v4...v4.3.1">https://github.com/actions/checkout/compare/v4...v4.3.1</a></p>
    <h2>v4.3.0</h2>
    <h2>What's Changed</h2>
    <ul>
    <li>docs: update README.md by <a
    href="https://github.com/motss"><code>@​motss</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li>
    <li>Add internal repos for checking out multiple repositories by <a
    href="https://github.com/mouismail"><code>@​mouismail</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li>
    <li>Documentation update - add recommended permissions to Readme by <a
    href="https://github.com/benwells"><code>@​benwells</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li>
    </ul>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a
    href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's
    changelog</a>.</em></p>
    <blockquote>
    <h1>Changelog</h1>
    <h2>V6.0.0</h2>
    <ul>
    <li>Persist creds to a separate file by <a
    href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/2286">actions/checkout#2286</a></li>
    <li>Update README to include Node.js 24 support details and requirements
    by <a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
    in <a
    href="https://redirect.github.com/actions/checkout/pull/2248">actions/checkout#2248</a></li>
    </ul>
    <h2>V5.0.1</h2>
    <ul>
    <li>Port v6 cleanup to v5 by <a
    href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/2301">actions/checkout#2301</a></li>
    </ul>
    <h2>V5.0.0</h2>
    <ul>
    <li>Update actions checkout to use node 24 by <a
    href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/2226">actions/checkout#2226</a></li>
    </ul>
    <h2>V4.3.1</h2>
    <ul>
    <li>Port v6 cleanup to v4 by <a
    href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/2305">actions/checkout#2305</a></li>
    </ul>
    <h2>V4.3.0</h2>
    <ul>
    <li>docs: update README.md by <a
    href="https://github.com/motss"><code>@​motss</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li>
    <li>Add internal repos for checking out multiple repositories by <a
    href="https://github.com/mouismail"><code>@​mouismail</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li>
    <li>Documentation update - add recommended permissions to Readme by <a
    href="https://github.com/benwells"><code>@​benwells</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li>
    <li>Adjust positioning of user email note and permissions heading by <a
    href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/2044">actions/checkout#2044</a></li>
    <li>Update README.md by <a
    href="https://github.com/nebuk89"><code>@​nebuk89</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/2194">actions/checkout#2194</a></li>
    <li>Update CODEOWNERS for actions by <a
    href="https://github.com/TingluoHuang"><code>@​TingluoHuang</code></a>
    in <a
    href="https://redirect.github.com/actions/checkout/pull/2224">actions/checkout#2224</a></li>
    <li>Update package dependencies by <a
    href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/2236">actions/checkout#2236</a></li>
    </ul>
    <h2>v4.2.2</h2>
    <ul>
    <li><code>url-helper.ts</code> now leverages well-known environment
    variables by <a href="https://github.com/jww3"><code>@​jww3</code></a>
    in <a
    href="https://redirect.github.com/actions/checkout/pull/1941">actions/checkout#1941</a></li>
    <li>Expand unit test coverage for <code>isGhes</code> by <a
    href="https://github.com/jww3"><code>@​jww3</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/1946">actions/checkout#1946</a></li>
    </ul>
    <h2>v4.2.1</h2>
    <ul>
    <li>Check out other refs/* by commit if provided, fall back to ref by <a
    href="https://github.com/orhantoy"><code>@​orhantoy</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/1924">actions/checkout#1924</a></li>
    </ul>
    <h2>v4.2.0</h2>
    <ul>
    <li>Add Ref and Commit outputs by <a
    href="https://github.com/lucacome"><code>@​lucacome</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/1180">actions/checkout#1180</a></li>
    <li>Dependency updates by <a
    href="https://github.com/dependabot"><code>@​dependabot</code></a>- <a
    href="https://redirect.github.com/actions/checkout/pull/1777">actions/checkout#1777</a>,
    <a
    href="https://redirect.github.com/actions/checkout/pull/1872">actions/checkout#1872</a></li>
    </ul>
    <h2>v4.1.7</h2>
    <ul>
    <li>Bump the minor-npm-dependencies group across 1 directory with 4
    updates by <a
    href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/1739">actions/checkout#1739</a></li>
    <li>Bump actions/checkout from 3 to 4 by <a
    href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/1697">actions/checkout#1697</a></li>
    <li>Check out other refs/* by commit by <a
    href="https://github.com/orhantoy"><code>@​orhantoy</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/1774">actions/checkout#1774</a></li>
    <li>Pin actions/checkout's own workflows to a known, good, stable
    version. by <a href="https://github.com/jww3"><code>@​jww3</code></a> in
    <a
    href="https://redirect.github.com/actions/checkout/pull/1776">actions/checkout#1776</a></li>
    </ul>
    <h2>v4.1.6</h2>
    <ul>
    <li>Check platform to set archive extension appropriately by <a
    href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
    <a
    href="https://redirect.github.com/actions/checkout/pull/1732">actions/checkout#1732</a></li>
    </ul>
    <h2>v4.1.5</h2>
    <ul>
    <li>Update NPM dependencies by <a
    href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
    <a
    href="https://redirect.github.com/actions/checkout/pull/1703">actions/checkout#1703</a></li>
    <li>Bump github/codeql-action from 2 to 3 by <a
    href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/1694">actions/checkout#1694</a></li>
    <li>Bump actions/setup-node from 1 to 4 by <a
    href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/1696">actions/checkout#1696</a></li>
    <li>Bump actions/upload-artifact from 2 to 4 by <a
    href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
    href="https://redirect.github.com/actions/checkout/pull/1695">actions/checkout#1695</a></li>
    </ul>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/actions/checkout/commit/1af3b93b6815bc44a9784bd300feb67ff0d1eeb3"><code>1af3b93</code></a>
    update readme/changelog for v6 (<a
    href="https://redirect.github.com/actions/checkout/issues/2311">#2311</a>)</li>
    <li><a
    href="https://github.com/actions/checkout/commit/71cf2267d89c5cb81562390fa70a37fa40b1305e"><code>71cf226</code></a>
    v6-beta (<a
    href="https://redirect.github.com/actions/checkout/issues/2298">#2298</a>)</li>
    <li><a
    href="https://github.com/actions/checkout/commit/069c6959146423d11cd0184e6accf28f9d45f06e"><code>069c695</code></a>
    Persist creds to a separate file (<a
    href="https://redirect.github.com/actions/checkout/issues/2286">#2286</a>)</li>
    <li><a
    href="https://github.com/actions/checkout/commit/ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493"><code>ff7abcd</code></a>
    Update README to include Node.js 24 support details and requirements (<a
    href="https://redirect.github.com/actions/checkout/issues/2248">#2248</a>)</li>
    <li><a
    href="https://github.com/actions/checkout/commit/08c6903cd8c0fde910a37f88322edcfb5dd907a8"><code>08c6903</code></a>
    Prepare v5.0.0 release (<a
    href="https://redirect.github.com/actions/checkout/issues/2238">#2238</a>)</li>
    <li><a
    href="https://github.com/actions/checkout/commit/9f265659d3bb64ab1440b03b12f4d47a24320917"><code>9f26565</code></a>
    Update actions checkout to use node 24 (<a
    href="https://redirect.github.com/actions/checkout/issues/2226">#2226</a>)</li>
    <li><a
    href="https://github.com/actions/checkout/commit/08eba0b27e820071cde6df949e0beb9ba4906955"><code>08eba0b</code></a>
    Prepare release v4.3.0 (<a
    href="https://redirect.github.com/actions/checkout/issues/2237">#2237</a>)</li>
    <li><a
    href="https://github.com/actions/checkout/commit/631c7dc4f80f88219c5ee78fee08c6b62fac8da1"><code>631c7dc</code></a>
    Update package dependencies (<a
    href="https://redirect.github.com/actions/checkout/issues/2236">#2236</a>)</li>
    <li><a
    href="https://github.com/actions/checkout/commit/8edcb1bdb4e267140fa742c62e395cd74f332709"><code>8edcb1b</code></a>
    Update CODEOWNERS for actions (<a
    href="https://redirect.github.com/actions/checkout/issues/2224">#2224</a>)</li>
    <li><a
    href="https://github.com/actions/checkout/commit/09d2acae674a48949e3602304ab46fd20ae0c42f"><code>09d2aca</code></a>
    Update README.md (<a
    href="https://redirect.github.com/actions/checkout/issues/2194">#2194</a>)</li>
    <li>Additional commits viewable in <a
    href="https://github.com/actions/checkout/compare/v3...v6">compare
    view</a></li>
    </ul>
    </details>
    <br />

    [![Dependabot compatibility
    score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&package-manager=github_actions&previous-version=3&new-version=6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

    Dependabot will resolve any conflicts with this PR as long as you don't
    alter it yourself. You can also trigger a rebase manually by commenting
    `@dependabot rebase`.

    [//]: # (dependabot-automerge-start)
    [//]: # (dependabot-automerge-end)

    ---

    <details>
    <summary>Dependabot commands and options</summary>
    <br />

    You can trigger Dependabot actions by commenting on this PR:
    - `@dependabot rebase` will rebase this PR
    - `@dependabot recreate` will recreate this PR, overwriting any edits
    that have been made to it
    - `@dependabot merge` will merge this PR after your CI passes on it
    - `@dependabot squash and merge` will squash and merge this PR after
    your CI passes on it
    - `@dependabot cancel merge` will cancel a previously requested merge
    and block automerging
    - `@dependabot reopen` will reopen this PR if it is closed
    - `@dependabot close` will close this PR and stop Dependabot recreating
    it. You can achieve the same result by closing it manually
    - `@dependabot show <dependency name> ignore conditions` will show all
    of the ignore conditions of the specified dependency
    - `@dependabot ignore this major version` will close this PR and stop
    Dependabot creating any more for this major version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this minor version` will close this PR and stop
    Dependabot creating any more for this minor version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this dependency` will close this PR and stop
    Dependabot creating any more for this dependency (unless you reopen the
    PR or upgrade to it yourself)

    </details>

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 4d3c223402bb037851b76f77dc143793eda88981
Author: Jiří Polášek <[email protected]>
Date:   Mon Dec 1 02:32:30 2025 +0100

    CmdPal: Fix grid views (#43991)

    This PR fixes the crash due to binding to a trimmed property. For this
    it converts runtime bindings on GridView to use `{x:Bind}` so this issue
    can't happen in the future.

    - Fixes a crash related to the `Visibility` property in gallery/grid
    views when trimmed during AOT builds.
    - Fixes ShowTitle and ShowSubtitle properties, they are now taken into
    account in a view.
    - Improves UI layout, removes some margins and maches the corner radius
    of the item contaienr with the item content in the gallery view.
    - Refactores gallery and grid views to move logic from the view to the
    view model so we can x:Bind to them.
    - Replaces `{Binding}` with `{x:Bind}` to improve performance and enable
    compile-time binding validation.
    - Properties related to grids are splatted on to the common
    `IGridPropertiesViewModel` interface. Subclassing would add extra
    overhead without substential benefit.
    - Adds new samples to showcase various grid view configurations.

    A) Gallery view (with title and subtitle)
    <img width="909" height="583" alt="image"
    src="https://github.com/user-attachments/assets/b807e7a8-412f-4817-8121-e3470c49e0c0"
    />

    B) Gallery view (only title)
    <img width="903" height="582" alt="image"
    src="https://github.com/user-attachments/assets/b619d63f-04d0-42f2-9207-de256dc5e481"
    />

    C) Gallery view (no title or subtitle)
    <img width="900" height="583" alt="image"
    src="https://github.com/user-attachments/assets/c48cd1fc-8f51-40c1-8bce-607916e9f742"
    />

    D) Small icons
    <img width="907" height="582" alt="image"
    src="https://github.com/user-attachments/assets/8327da0a-fa45-443f-b52c-f0f1edd7b861"
    />

    E) Medium icons (with labels)
    <img width="914" height="588" alt="image"
    src="https://github.com/user-attachments/assets/dee9fab1-54e8-45f8-96d7-502b121a6ac2"
    />

    F) Medium icons (no labels)
    <img width="915" height="588" alt="image"
    src="https://github.com/user-attachments/assets/a32e8af2-6cb1-4106-91db-ca396253c0a3"
    />

    <!-- Please review the items on the PR checklist before submitting-->

    - [x] Closes: #43973
    <!-- - [ ] 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 -->

    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->

commit 1ba5a258e93247a30a78519cceb5311cbf1e2441
Author: Jiří Polášek <[email protected]>
Date:   Sun Nov 30 01:59:58 2025 +0100

    CmdPal: Add custom search engine option to Web Search extension (#43941)

    This PR allows user to customize a search query in Command Palette's Web
    Search built-in extension. This will also solve a problem with some
    browser that doesn't handle argument in form "? <query>" as it will
    allow user to specify the complete URI.

    - Introduces a new text box in Web Search extension settings for
    specifying a custom search engine URI
    - If the text box is non-empty, the provided URI is used for queries
    - If left empty, the extension defaults to previous behavior, sending
    queries in the format "? query"

    <img width="825" height="566" alt="image"
    src="https://github.com/user-attachments/assets/fbf3d3a5-ebfe-4c16-a5f1-0d044b6f9047"
    />

    <!-- Please review the items on the PR checklist before submitting-->

    - [x] Closes: #43940
    - [x] Closes: #42867
    <!-- - [ ] 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 -->

    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->

commit 8aea589b0158e613f437359ef786f884124520bf
Author: Jiří Polášek <[email protected]>
Date:   Sun Nov 30 00:36:55 2025 +0100

    CmdPal: Align spellchecker and naming to .NET guidelines (#43974)

    - Add command-line parameter value (icf)
    - Unify file and class name casing to match .NET naming conventions (RDP
    -> Rdp as Url, Dns, Xml) -- fixes IRDP spellchecking error
    - Rename IRdpConnectionManager to IRdpConnectionsManager (*s) to match
    the class name

    <!-- Please review the items on the PR checklist before submitting-->

    - [ ] Closes: #xxx
    <!-- - [ ] 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 -->

    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->

commit afd9d4cc3c27aec7d6f1ec051b0547d20b4eacbc
Author: Clint Rutkas <[email protected]>
Date:   Sat Nov 29 15:11:17 2025 -0800

    Update PowerToys download links to version 0.96.1 (#43965)

    <!-- 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)?
    -->

    <!-- Please review the items on the PR checklist before submitting-->

    - [ ] Closes: #xxx
    <!-- - [ ] 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 -->

    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->

commit bc0a760aff6ecc9376bd1fc1f7ff8bfb22915638
Author: Jiří Polášek <[email protected]>
Date:   Sat Nov 29 23:23:24 2025 +0100

    CmdPal: Add mini dev center (#43939)

    This PR introduces a small ribbon to the CmdPal for app developers. The
    dev ribbon is dynamically added to the main window in local (non-CI)
    builds. It shows the number of logged errors and warnings, the current
    build configuration (Debug or Release), and whether it’s built with AOT.

    The flyout shows the latest errors and warnings and lets you quickly
    access the logs.

    <img width="985" height="589" alt="image"
    src="https://github.com/user-attachments/assets/6528b02b-b4b4-4968-91bf-e67a29f86415"
    />

    <!-- Please review the items on the PR checklist before submitting-->

    - [x] Closes: #43318
    <!-- - [ ] 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 -->

    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->

commit 06afe099734d3be7ed723666d829a3ce07354be0
Author: Michael Jolley <[email protected]>
Date:   Sat Nov 29 13:07:19 2025 -0600

    CmdPal: New Remote Desktop built-in extension (#43090)

    This PR introduces a new built-in extension for Remote Desktop users.

    It allows you to view past RDP connections, save predefined connections,
    and connect to any of them. Or start a new RDP connection.

    https://github.com/user-attachments/assets/6a5041a6-5741-4df0-a305-da7166f962e1

    Closes #38305

    ---------

    Co-authored-by: Niels Laute <[email protected]>
    Co-authored-by: Jiří Polášek <[email protected]>

commit 0de60445ea99aa97b4c640d192c5f55fdbda7629
Author: Jiří Polášek <[email protected]>
Date:   Thu Nov 27 16:31:10 2025 +0100

    CmdPal: Use Shell API to determine the default browser in WebSearch (#43339)

    This PR introduces a new method for determining the default browser
    using the Windows Shell API. The new provider selects the browser
    associated with the HTTPS protocol (falling back to HTTP if necessary).
    The original implementation is retained as a fallback for now, and the
    codebase is prepared for future extensions (e.g., manual default-browser
    selection).

    As a flyby, it also fixes an issue where commands continued showing the
    previous browser name if the user changed their default browser while
    the Command Palette was running.

    Fixed default browser selection in the Web Search built-in extension.

    <!-- Please review the items on the PR checklist before submitting-->

    - [x] Closes: #42343
    - [ ] **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
    - [ ] **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 -->

    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->

commit 47d4a65223c58f2e98f58ea3a51305c1206f8dd0
Author: Jiří Polášek <[email protected]>
Date:   Thu Nov 27 16:24:47 2025 +0100

    CmdPal: Add option to return to home automatically after a delay (#43551)

    This PR replaces the Go home when activated setting with a new
    Automatically return home option. This allows users to specify how long
    the Command Palette should wait after being dismissed before
    automatically returning to the home page. It also introduces migration
    logic to transition from the old setting to the new one.

    <img width="1337" height="762" alt="image"
    src="https://github.com/user-attachments/assets/c649ef03-b3ee-40ba-ac67-485bc40efa73"
    />

    <!-- Please review the items on the PR checklist before submitting-->

    - [x] Closes: #43355
    <!-- - [ ] 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 -->

    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->

commit 1b72c0b969935092022bc1dd066db7abcb51e534
Author: Kai Tao <[email protected]>
Date:   Thu Nov 27 17:22:59 2025 +0800

    Update check-spelling expect list (#43925)

    <!-- 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)?
    -->

    <!-- Please review the items on the PR checklist before submitting-->

    - [ ] Closes: #xxx
    <!-- - [ ] 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 -->

    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->

    Spell no complain

commit 9160c82fc2181d1a29525a9f22baecd278228b52
Author: Pratyush Nalam <[email protected]>
Date:   Thu Nov 27 05:15:06 2025 +0530

    Update Command Palette's Learn More string to be consistent with other utilities (#43898)

    <!-- 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)?
    -->

    In the PowerToys "What's new" window, every utility has the text "Learn
    more about <utility name>" next to the "Settings" button. Examples
    below:

    <img width="247" height="38" alt="learnmore-fancyzones"
    src="https://github.com/user-attachments/assets/fecdeb4b-e01c-438d-8d11-c056e613768e"
    />
    <img width="258" height="40" alt="learnmore-textextractor"
    src="https://github.com/user-attachments/assets/ffb0c801-5b89-46d1-b493-b57287303e65"
    />

    The only exception is the Command Palette utility which just says "Learn
    more".

    <img width="152" height="32" alt="learnmore-cmdpal"
    src="https://github.com/user-attachments/assets/232c11cd-b621-46eb-87f1-d3fc708d6286"
    />

    This is an inconsistency and this PR fixes that string.

    <!-- Please review the items on the PR checklist before submitting-->

    - [x] Closes: #43897
    <!-- - [ ] 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 -->

    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->

commit 452e0dcf513fd2d8c09c5115a56ed5327c5d4b38
Author: Mike Hall <[email protected]>
Date:   Wed Nov 26 14:08:34 2025 +0000

    Module Loader tool for rapid testing of modules (#43813)
    ModuleLoader tool, a stand-alone Win32 executable for testing of
    PowerToy modules without needing branch builds.

    sample output from running the tool is below:

    .\ModuleLoader.exe .\powertoys.cursorwrap.dll
    PowerToys Module Loader v1.0
    =============================

    Loading module: .\powertoys.cursorwrap.dll
    Detected module name: cursorwrap

    Loading settings...
    Trying settings path:
    C:\Users\mikehall\AppData\Local\Microsoft\PowerToys\cursorwrap\settings.json
    Settings file loaded (315 characters)
    Settings loaded successfully.

    Loading module DLL...
    Module instance created successfully
    Module DLL loaded successfully.
    Module key: CursorWrap
    Module name: CursorWrap

    Applying settings to module...
    Settings applied.

    Registering module hotkeys...
    Module reports 1 legacy hotkey(s)
      Registering hotkey 0: Win+Alt+U - OK
    Hotkeys registered: 1

    Enabling module...
    Module enabled.

    =============================
    Module is now running!
    =============================

    Module Status:
      - Name: CursorWrap
      - Key: CursorWrap
      - Enabled: Yes
      - Hotkeys: 1 registered

    Registered Hotkeys:
      Win+Alt+U

    Press Ctrl+C to exit.
    You can press the module's hotkey to toggle its functionality.

    Note that this doesn't integrate with Powertoys settings UI - this is
    purely to test Powertoys module functionality.

    - [ ] Closes: #xxx
    <!-- - [ ] 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
    See details above.
    ModuleLoader tested on Windows 11, Surface Laptop 7 Pro.

commit 2c9a9e9fcab59ad66be052f1378be26ce6649bde
Author: Jiří Polášek <[email protected]>
Date:   Mon Nov 24 23:57:10 2025 +0100

    CmdPal: Improve Command Palette behavior in "Last position" mode (#43543)

    This PR improves Command Palette behavior in “Last position” mode:
    - Correctly handles DPI changes between monitors.
    - Ensures the window is always visible — if it’s fully off-screen or has
    less than 100px visible on any axis, it is re-centered.

    <!-- Please review the items on the PR checklist before submitting-->

    - [x] Closes: #43398
    - [ ] **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 -->

    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->

commit 09c8c1d79a389483d12a3f4b535f2316ec31022a
Author: leileizhang <[email protected]>
Date:   Mon Nov 24 10:42:35 2025 +0800

    [Hot Fix] Fix Image Resizer not working on Win10 (#43763)

    <!-- 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)?
    -->
    Windows 10 can’t launch the app using the Sparse Package. Remove the app
    manifest so that Image Resizer can start properly on Windows 10.

    We will figure out how to support Sparse Packages on Windows 10 in the
    next release.
    <!-- Please review the items on the PR checklist before submitting-->

    - [x] Closes: #43747 #43734 #43722 #43759
    <!-- - [ ] 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 -->

    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->

commit 95c8a83f797dac6bdf82a71bf93a1e0c16fb0080
Author: leileizhang <[email protected]>
Date:   Mon Nov 24 10:08:12 2025 +0800

    [Hotfix] Remove the properties in Prompt Execution Settings for OpenAI (#43766)

    <!-- 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)?
    -->
    Remove the properties in Prompt Execution Settings for OpenAI, as the
    new models may not support them.

    Will try to expose them in the UI so users can add them on their own in
    the next release.

    <!-- Please review the items on the PR checklist before submitting-->
    - [ ] Closes: #xxx
    <!-- - [ ] 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 -->

    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->

commit 2830ea919c05d6e37221c8c200a818c17e80d100
Author: Kai Tao <[email protected]>
Date:   Mon Nov 24 09:51:27 2025 +0800

    Advanced Paste: Adjust model parameter to make the result longer (#43768)

    <!-- 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)?
    -->
    Adjust model parameter to make the result longer
    <!-- Please review the items on the PR checklist before submitting-->

    - [ ] Closes: #xxx
    <!-- - [ ] 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 -->

    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->

commit 725ad21952e08ab0fab7547cf88d1f766edfb7e4
Author: Dave Rayment <[email protected]>
Date:   Mon Nov 24 01:12:54 2025 +0000

    [Awake] Fix issue with timed mode not expiring correctly (#43785)

    <!-- 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)?
    -->
    Resolves an issue with the timed mode's expiry not completing correctly.

    <!-- Please review the items on the PR checklist before submitting-->

    - [x] Closes: #43775
    <!-- - [ ] 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 -->
    This was because of my recent change to the timed mode. The `Subscribe`
    method on the `Observable` interval accidentally wired the completion
    logic to the **Error** handler instead of the **Completion** handler
    because of the use of a discard `_` instead of an empty parameter list
    `()`. As a result of the incorrect overload being called, Awake stayed
    in the Timed state despite the timer reaching zero.

    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->
    Confirmed that the timed mode times out and exits upon expiry.

commit ebc3a139c5897191dad3357cc62d5b7dd1312bd5
Author: Erik Anderson <[email protected]>
Date:   Fri Nov 21 02:34:34 2025 -0800

    Fix typo in AI settings card description (#43757)
    The word "cloud" does not use a vowel sound, so the preceding word
    should be "A" instead of "An".

    - [X] Closes: #43756
    - [ ] **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
    - [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

    Co-authored-by: Erik Anderson <[email protected]>

commit 28dba2633e930156e9cf5a0ee6c78216f5171ec8
Author: Jaylyn Barbee <[email protected]>
Date:   Thu Nov 20 15:22:40 2025 -0800

    [Light Switch][Dev Docs] Clarify LightSwitchService and LightSwitchStateManager roles (#43748)

    Updated LightSwitch module documentation to clarify the role of
    LightSwitchService and LightSwitchStateManager.

    ---------

    Co-authored-by: Niels Laute <[email protected]>

commit 9fbd3de3a2ec3d64457823586246b8fd797d0959
Author: Jiří Polášek <[email protected]>
Date:   Thu Nov 20 16:23:42 2025 +0100

    CmdPal: Add native debugging launch profile to launchSettings.json (#43718)

    See title.

    I’m too lazy to open the dialog and then revert the change later.

    <!-- Please review the items on the PR checklist before submitting-->

    - [ ] Closes: #xxx
    <!-- - [ ] 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 -->

    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->

commit 4a0d9912aea92130ef55b23f67fce2d27ef886e2
Author: Kai Tao <[email protected]>
Date:   Thu Nov 20 09:57:29 2025 +0800

    Advanced Paste:  No cache for foundry local model list  (#43716)

    <!-- 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)?
    -->
    Cache of the downloaded model will make the newly added model only work
    after running of powertoys, this disable the cache, so just downloaded
    model will take effect immediately

    <!-- Please review the items on the PR checklist before submitting-->

    - [ ] Closes: #xxx
    <!-- - [ ] 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 -->

    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->
    Validated locally

commit 15c79a0176388f2707d51f90ec5880d334dfb94e
Author: Dave Rayment <[email protected]>
Date:   Wed Nov 19 08:50:25 2025 +0000

    [Settings] Fix inconsistent description text for the mouse tools (#43651)

    <!-- 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)?
    -->
    Change some of the mouse utilities' descriptions from declarative to
    imperative, to match best practice and to be consistent with the other
    descriptions.

    <!-- Please review the items on the PR checklist before submitting-->

    - [ ] Closes: #xxx
    <!-- - [ ] 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,
…
commit 73e379238bcefa2f10ab7da4791af830467fc3c2
Author: leileizhang <[email protected]>
Date:   Tue Dec 9 10:13:48 2025 +0800

    Add FancyZones CLI for command-line layout management (#44078)

    <!-- 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
    Adds a new command-line interface (CLI) tool for FancyZones, enabling
    users and automation scripts to manage window layouts without the GUI.

    **Commands:**
    | Command | Aliases | Description |
    |---------|---------|-------------|
    | `help` | | Displays general help information for all commands |
    | `open-editor` | `editor`, `e` | Launch FancyZones layout editor |
    | `get-monitors` | `monitors`, `m` | List all monitors and their
    properties |
    | `get-layouts` | `layouts`, `ls` | List all available layouts with
    ASCII art preview |
    | `get-active-layout` | `active`, `a` | Show currently active layout |
    | `set-layout <uuid>` | `set`, `s` | Apply layout by UUID or template
    name |
    | `open-settings` | `settings` | Open FancyZones settings page |
    | `get-hotkeys` | `hotkeys`, `hk` | List all layout hotkeys |
    | `set-hotkey <key> <uuid>` | `shk` | Assign hotkey (0-9) to custom
    layout |
    | `remove-hotkey <key>` | `rhk` | Remove hotkey assignment |

    **Key Capabilities:**
    - ASCII art visualization of layouts (grid, focus, priority-grid,
    canvas)
    - Support for both template layouts and custom layouts
    - Monitor-specific layout targeting (`--monitor N` or `--all`)
    - Real-time notification to FancyZones via Windows messages
    - Native AOT compilation support for fast startup

    ### Example Usage

    ```bash
    # List all layouts with visual previews
    FancyZonesCLI.exe ls

    # Apply "columns" template to all monitors
    FancyZonesCLI.exe s columns --all

    # Set custom layout on monitor 2
    FancyZonesCLI.exe s {uuid} --monitor 2

    # Assign hotkey Win+Ctrl+Alt+3 to a layout
    FancyZonesCLI.exe shk 3 {uuid}
    ```

    https://github.com/user-attachments/assets/2b141399-a4ca-4f64-8750-f123b7e0fea7

    <!-- Please review the items on the PR checklist before submitting-->
    ## PR Checklist

    - [ ] Closes: #xxx
    <!-- - [ ] 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

commit 4710b816b40b70216563e533de53a5db7a41337b
Author: Dave Rayment <[email protected]>
Date:   Mon Dec 8 21:01:56 2025 +0000

    [CmdPal] Optimise MainListPage's results display by merging already-sorted lists (#44126)

    ## Summary of the Pull Request
    This PR replaces the current LINQ-based results compilation query of
    combining, sorting and filtering the four result sources with a 3-way
    merge operation plus a final append. It provides a performance increase
    as well as a significant reduction in allocations.

    <!-- Please review the items on the PR checklist before submitting-->
    ## PR Checklist

    - [ ] Closes: #xxx
    <!-- - [ ] 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
    - [ ] **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
    The existing code:
    1. Limits the number of apps returned to a pre-defined maximum.
    2. Sorts the apps list.
    3. Appends filtered items, scored fallback items and the apps list
    together.
    4. Sorts the three lists based on their score.
    5. Appends the non-scored fallback items, with empty items excluded.
    6. Selects just the `Item` from each.
    7. Creates an array from the enumerable.

    ```csharp
        if (_filteredApps?.Count > 0)
        {
            limitedApps = _filteredApps.OrderByDescending(s => s.Score).Take(_appResultLimit).ToList();
        }

        var items = Enumerable.Empty<Scored<IListItem>>()
                              .Concat(_filteredItems is not null ? _filteredItems : [])
                              .Concat(_scoredFallbackItems is not null ? _scoredFallbackItems : [])
                              .Concat(limitedApps)
                              .OrderByDescending(o => o.Score)

                              // Add fallback items post-sort so they are always at the end of the list
                              // and eventually ordered based on user preference
                              .Concat(_fallbackItems is not null ? _fallbackItems.Where(w => !string.IsNullOrEmpty(w.Item.Title)) : [])
                              .Select(s => s.Item)
                              .ToArray();
    ```

    We can exploit the fact that each of the three 'scored' lists are
    pre-ordered, and replace the query with a 3-way merge and final append
    of the non-scored fallback items.

    By pre-sizing the results array we can avoid all the extra allocations
    of the LINQ-based solution.

    ### Proof of pre-ordering
    In `UpdateSearchText`, each of the lists is defined by calling
    `ListHelpers.FilterListWithScores`:

    ```csharp
        // Produce a list of everything that matches the current filter.
        _filteredItems = [.. ListHelpers.FilterListWithScores<IListItem>(newFilteredItems ?? [], SearchText, scoreItem)];
    ```

    ```csharp
        _scoredFallbackItems = ListHelpers.FilterListWithScores<IListItem>(newFallbacksForScoring ?? [], SearchText, scoreItem);
    ```

    ```csharp
        var scoredApps = ListHelpers.FilterListWithScores<IListItem>(newApps, SearchText, scoreItem);

    ...

        _filteredApps = [.. scoredApps];
    ```

    In `FilterListWithScores`, the results are ordered by score:

    ```csharp
       var scores = items
            .Select(li => new Scored<T>() { Item = li, Score = scoreFunction(query, li) })
            .Where(score => score.Score > 0)
            .OrderByDescending(score => score.Score);
    ```

    (This also makes the existing `OrderByDescending()` for `_filteredApps`
    before the LINQ query redundant.)

    ### K-way merge
    Since the results are pre-sorted, we can do a direct merge in linear
    time. This is what the new `MainListPageResultFactory`'s `Create`
    achieves. As the lists may be different sizes, the routine does a 3-way
    merge, followed by a 2-way merge and a single list drain to finish. Each
    element is only visited once.

    ### Benchmarks
    A separate benchmark project is
    [here](https://github.com/daverayment/MainListBench), written with
    Benchmark.net.

    The project compares the current LINQ-based solution against:
    1. An Array-based algorithm which pre-assigns a results array and still
    sorts the 3 scored sets of results. This shows a naive non-LINQ solution
    which is still _O(n log n)_ because of the sort.
    2. The k-way merge, which is described above. _O(n)_ for both time and
    space complexity.
    3. A heap merge algorithm, which uses a priority queue instead of
    tracking each of the lists separately. (This is _O(n log k)_ in terms of
    time complexity and _O(n + k)_ for space.)

    Care is taken to ensure stable sorting of items. When preparing the
    benchmark data, items with identical scores are assigned to confirm each
    algorithm performs identically to the LINQ `OrderBy` approach, which
    performs a stable sort.

    Results show that the merge performs best in terms of both runtime
    performance and allocations, sometimes by a significant margin. Compared
    to the LINQ approach, merge runs 400%+ faster and with at most ~20% of
    the allocations:

    <img width="1135" height="556" alt="image"
    src="https://github.com/user-attachments/assets/9f9d3932-1592-49d6-8a07-4ea3ba7a0cc5"
    />

    <img width="1149" height="553" alt="image"
    src="https://github.com/user-attachments/assets/ae9e9e0a-b255-4c1a-af4b-e791dea80fa4"
    />

    See here for all charts and raw stats from the run:
    https://docs.google.com/spreadsheets/d/1y2mmWe8dfpbLxF_eqPbEGvaItmqp6HLfSp-rw99hzWg/edit?usp=sharing

    ### Cons

    1. Existing performance is not currently an issue. This could be seen as
    a premature optimisation.
    2. The new code introduces an inherent contract between the results
    compilation routine and the lists, i.e. that they must be sorted.

    This PR was really for research and learning more about CmdPal (and a
    bit of algorithm practice because it's Advent of Code time), so please
    feel free to reject if you feel the cons outweigh the pros.

    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->
    ## Validation Steps Performed
    - Added unit tests to exercise the new code, which confirm that the
    specific ordering is preserved, and the filtering and pre-trimming of
    the apps list is performed as before.
    - Existing non-UI unit tests run. NB: I _could not_ run any UI Tests on
    my system and just got an early bail-out each time.
    - Manual testing in (non-AOT) Release mode.

commit b8a0163419f0800153e40a0e26ba77a4b453c74d
Author: Sam Rueby <[email protected]>
Date:   Mon Dec 8 13:13:33 2025 -0500

    CmdPal: Arrow keys move logical grid pages (#43870)

    <!-- 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

    <!-- Please review the items on the PR checklist before submitting-->
    ## PR Checklist

    - [X] Closes: #41939
    <!-- - [ ] Closes: #yyy (add separate lines for additional resolved
    issues) -->
    - [X] **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
    Before

    ![Before](https://github.com/user-attachments/assets/49853e8d-9113-425c-8230-e49fb9b8d640)

    After

    ![After](https://github.com/user-attachments/assets/a4597fe6-6503-4502-99cf-350425f5ef51)

    I noticed the double "active" line around the items when the ListPage is
    focused. I was unable to find where that is defined. Ideally, the
    black-border would go away.

    I tested with AOT turned on.

    The behavior accounts for suggestions. If the SearchBar is focused and
    there is a suggestion, right-arrow will [continue] to complete the
    suggestion.

commit 06fcbdac400d6856f9e771a98828505b83152571
Author: Gordon Lam <[email protected]>
Date:   Mon Dec 8 18:52:33 2025 +0800

    Update WinAppSDK to 1.8.3 (#44146)

    <!-- 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 pull request updates several dependencies to newer versions in the
    `Directory.Packages.props` file. The main focus is on upgrading the
    Microsoft Windows App SDK packages to ensure the project uses the latest
    features and bug fixes.

    Dependency version updates:

    * Upgraded `Microsoft.WindowsAppSDK`,
    `Microsoft.WindowsAppSDK.Foundation`, `Microsoft.WindowsAppSDK.AI`, and
    `Microsoft.WindowsAppSDK.Runtime` to their latest respective versions,
    replacing previous 1.8.25* releases with newer builds.
    <!-- Please review the items on the PR checklist before submitting-->

commit d515c67def98da77f9335f997bac7520538c2103
Author: leileizhang <[email protected]>
Date:   Mon Dec 8 13:34:33 2025 +0800

    Improve install scope detection to prevent mixed user/machine installations (#43931)

    <!-- 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
    The old implementation checked
    `HKLM\Software\Classes\powertoys\InstallScope` first. If this key
    existed (even as a remnant from incomplete uninstall), it would
    immediately return `PerMachine` without validating the actual
    installation.

    ### Fix
    - Uses Windows standard Uninstall registry (most reliable source of
    truth)
    - Identifies PowerToys Bundle by exact `BundleUpgradeCode` GUID match
    - MSI component entries (always in HKLM) are automatically ignored since
    they don't have `BundleUpgradeCode`
    - Checks HKCU first, then HKLM, properly handling the fact that Bundle
    location reflects true install scope

    <!-- Please review the items on the PR checklist before submitting-->
    ## PR Checklist

    - [x] Closes: #43696
    <!-- - [ ] 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

commit 9439b6df41a94c36b7a1152404afaa6cbb7deed0
Author: Noraa Junker <[email protected]>
Date:   Mon Dec 8 04:55:51 2025 +0100

    [Settings] Create a global static instance of SettingsUtils (#44064)

    <!-- 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

    SettingsUtils is initialized multiple times over the whole solution.
    This creates one singeltone instance (with the default settings), so it
    only has to be initialized once (and improve performance a bit with
    that)

    <!-- Please review the items on the PR checklist before submitting-->
    ## PR Checklist

    - [ ] Closes: #xxx
    <!-- - [ ] 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

commit a37add8f0865588f13ffe02cc9cebad5a84b71f9
Author: 舰队的偶像-岛风酱! <[email protected]>
Date:   Mon Dec 8 11:14:00 2025 +0800

    feat(cmdpal): add pinyin support for Chinese input method (#39354)

    <!-- 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

    - Add ToolGood.Words.Pinyin package to support pinyin conversion
    - Implement pinyin matching in StringMatcher class
    - Update project dependencies and Directory.Packages.props

    <!-- Please review the items on the PR checklist before submitting-->
    ## PR Checklist

    - [x] **Closes:** #38417 #39343
    - [ ] **Communication:** I've discussed this with core contributors
    already. If 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

    I've completed a rough implementation of pinyin support, but since I'm
    currently unsure where to add the toggle for pinyin support, this
    feature is enabled by default for now.

    https://github.com/user-attachments/assets/59df0180-05ad-4b4a-a858-29aa15e40fd2

    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->
    ## Validation Steps Performed

    ---------

    Signed-off-by: 舰队的偶像-岛风酱! <[email protected]>
    Co-authored-by: Yu Leng <[email protected]>

commit 60deec68150e2b5abf13ad29a0fa26d3f9473035
Author: Gordon Lam <[email protected]>
Date:   Mon Dec 8 09:52:55 2025 +0800

    Using centralized package management for vcxproj (#43920)

    ## Summary of the Pull Request
    This pull request updates the build system for several native and
    managed projects, modernizing NuGet package management and improving
    code analysis configuration. The main changes involve switching from
    legacy `packages.config` and manual `.props`/`.targets` imports to
    PackageReference style for native projects, updating package versions,
    and streamlining code analysis settings.

    **Build system modernization and package management:**

    * Migrated native projects (`PowerToys.MeasureToolCore.vcxproj`,
    `FindMyMouse.vcxproj`) from legacy `packages.config` and manual
    `.props`/`.targets` imports to NuGet PackageReference style, simplifying
    dependency management and build configuration. This includes removing
    the `packages.config` file and related import/error logic, and
    introducing `PackageReference` items for required packages.
    [[1]](diffhunk://#diff-76320b3a74a9241df46edb536ba0f817d7150ddf76bb0fe677e2b276f8bae95aL3-R18)
    [[2]](diffhunk://#diff-76320b3a74a9241df46edb536ba0f817d7150ddf76bb0fe677e2b276f8bae95aR41-L41)
    [[3]](diffhunk://#diff-76320b3a74a9241df46edb536ba0f817d7150ddf76bb0fe677e2b276f8bae95aL145-R153)
    [[4]](diffhunk://#diff-d3a7d80ebbca915b42727633451e769ed2306b418ef3d82b3b04fd5f79560f17L1-L17)
    [[5]](diffhunk://#diff-0f27869c4e90c8fd2c81f5688c58da99afcc9e5767e69ef7938265dbb6928e0fL3-R13)
    * Updated the centralized package versions in
    `Directory.Packages.props`, adding new entries for `boost`,
    `boost_regex-vc143`, `Microsoft.Windows.ImplementationLibrary`, and
    `Microsoft.WindowsAppSDK.Foundation` to support the new build system and
    dependencies.
    [[1]](diffhunk://#diff-5baf5f9e448ad54ab25a091adee0da05d4d228481c9200518fcb1b53a65d4156R10-R11)
    [[2]](diffhunk://#diff-5baf5f9e448ad54ab25a091adee0da05d4d228481c9200518fcb1b53a65d4156R74-R77)

    **Code analysis improvements:**

    * Added configuration to both native and managed projects
    (`PowerToys.MeasureToolCore.vcxproj`, `MeasureToolUI.csproj`) to
    suppress specific warnings (81010002) and exclude NuGet cache files from
    code analysis, reducing noise and improving build performance.
    [[1]](diffhunk://#diff-76320b3a74a9241df46edb536ba0f817d7150ddf76bb0fe677e2b276f8bae95aL3-R18)
    [[2]](diffhunk://#diff-4f2b49a1a5cc7da36ee6d5044792ef681fd0ea5bea12db9ebd4c3090680d4b07R6-R11)

    **Project reference and output handling:**

    * Updated the managed project (`MeasureToolUI.csproj`) to handle native
    project outputs more robustly, ensuring the WinMD and DLL files are
    available at runtime and configuring the project reference to avoid
    assembly reference issues.

    **Compiler configuration:**

    * Enhanced C++ compiler settings in `Cpp.Build.props` to treat
    angle-bracket includes as external, disable warnings and analysis for
    external headers, and optimize build performance.

commit 7e791f2815dbfc84319d14faf9bedf30f7bb9fde
Author: Dave Rayment <[email protected]>
Date:   Mon Dec 8 01:45:46 2025 +0000

    [ImageResizer] Fix Fill mode not cropping image when Shrink Only was engaged and scale was 1 (#43855)

    ## Summary of the Pull Request
    This PR fixes an Image Resizer issue where **Fill** mode operations were
    silently aborted when **Shrink Only** was enabled (the default) and
    scale was 1.0 on one dimension, resulting in files that were renamed
    according to the intended target size but which actually contained the
    original, unmodified image.

    This also fixes a latent bug regarding square images and the **Ignore
    Orientation** setting, and improves the readability of the core
    `Transform` method.

    <!-- Please review the items on the PR checklist before submitting-->
    ## PR Checklist

    - [x] Closes: #43772
    <!-- - [ ] 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
    ### Fix **Shrink Only** logic preventing the correct cropping of images
    **Issue:**
    When using **Fill** mode, the scaling factor is calculated based on the
    larger dimension to ensure the image fills the target box. In scenarios
    where one dimension matches the target and the other overflows (e.g.
    shrinking a 100x100 pixel image to 50x100), the calculated scale factor
    is `1.0`.

    The previous `ShrinkOnly` logic included this:

    ```csharp
    if (_settings.ShrinkOnly
            && _settings.SelectedSize.Unit != ResizeUnit.Percent
            && (scaleX >= 1 || scaleY >= 1))
        {
            return source;
        }
    ```

    This correctly prevents `ShrinkOnly` operations from returning upscaled
    result images, but it also exits too early for cases where the user is
    cropping the image across one dimension only, leaving the other at scale
    1. Effectively, the later cropping code is never run and instead of
    returning the cropped image, the original is returned. The _intended_
    target dimensions are correct, which results in the filename parts not
    matching the resulting image size.

    **Fix:**
    The logic has been split between upscaling and cropping, so:

    1. If the scale on either dimension is > `1.0`, return the source
    (explicitly preventing upscaling for **Shrink Only** mode).
    2. If the scale is <= `1.0` then check if the original dimensions exceed
    the target dimensions. If a crop is required, proceed with it even if
    the scale is exactly `1.0`.

    ### Fix for square images triggering orientation swap
    **Issue:**
    The "Ignore Orientation" check in the original code used a compound
    boolean check:

    ```csharp
    (originalWidth < originalHeight != width < height)
    ```

    This clever but less than readable statement detects orientation
    mismatches. The section also includes a logic issue. When the original
    image was square, `originalWidth < originalHeight` evaluated to `false`,
    treating it as Landscape. If the target dimensions were Portrait, the
    logic detected a mismatch and swapped the target dimensions incorrectly,
    which would crop the height instead of the width.

    'Fortunately' this bug was masked by the first bug, as the crop code
    would never be reached anyway.

    **Fix:**
    The orientation detection routine was refactored to explicitly check for
    Landscape vs. Portrait states. Square images are now naturally excluded,
    as they have neither Landscape nor Portrait orientations. This now
    prevents the dimensions from being swapped.

    ### Refactoring/readability
    The main `Transform` method has been cleaned up:

    - Replaced widespread use of `var` with `double` and `int` for dimension
    and scale calculations.
    - Replaced the non-obvious XOR orientation check (`a < b != c < d`) with
    named booleans (`isInputLandscape`, `isTargetPortrait` etc.) to make the
    intent more self-documenting.
    - New and expanded comments throughout.

    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->
    ## Validation Steps Performed
    Three new unit tests have been added to `ResizeOperationTests.cs` to
    cover the **Fill** mode edge cases:

    1. `TransformHonorsFillWithShrinkOnlyWhenCropRequired`: Verifies than an
    image requiring a crop but no scaling is processed correctly (tests that
    the original bug report is resolved).
    2. `TransformHonorsFillWithShrinkOnlyWhenUpscaleAttempted`: Confirms
    that when `ShrinkOnly` is set, any upscaling operations are still
    blocked.
    3. `TransformHonorsFillWithShrinkOnlyWhenNoChangeRequired`: Verifies
    that the system returns the source if neither scaling nor cropping is
    required.

    I also manually verified the bug fix with a test 4000 x 6000 pixel
    source file with 1920 x `Auto` **Fill** mode and **Shrink Only**
    settings, mirroring the original user's settings, and their source and
    target dimensions.

commit 2b0ecc2979b6bbe0c017045199ea10873caedd65
Author: Noraa Junker <[email protected]>
Date:   Sun Dec 7 19:36:05 2025 +0100

    Quick accent character set fixes (#43504)

    <!-- 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
    * Fix double uppercase theta character
    * Fix some redundant special symbols

    <!-- Please review the items on the PR checklist before submitting-->
    ## PR Checklist

    - [x] Closes: #43457 #43137 #41570
    - [ ] **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

commit 45cf3de15d8ea159fb2426eb2b186a6af2c5c082
Author: Jiří Polášek <[email protected]>
Date:   Sun Dec 7 10:18:02 2025 +0100

    CmdPal: Fix a line-break in RDC extension error toasts (#44129)

    <!-- 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 fixes a line break in the RDC extension toast message, replacing
    unescaped \r with a new line (\r in the XML is not recognized as a new
    line escape sequence).

    <!-- Please review the items on the PR checklist before submitting-->
    ## PR Checklist

    - [ ] Closes: #xxx
    <!-- - [ ] 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

commit bf8c5485017cdd62cba2c963f88ba67a55bc3beb
Author: Jiří Polášek <[email protected]>
Date:   Sun Dec 7 10:10:45 2025 +0100

    CmdPal: Make text of text Settings button on Command Bar localizable (#44128)

    ## Summary of the Pull Request

    See title

    <!-- Please review the items on the PR checklist before submitting-->
    ## PR Checklist

    - [x] Closes: #44108
    <!-- - [ ] 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

commit 121c6c07124d81903373a5f64fc1654042440d90
Author: Carlos Rafael Ramirez <[email protected]>
Date:   Sun Dec 7 02:54:10 2025 +0100

    Add RGB hex color preview to Advanced Paste clipboard history (#43990)

    <!-- 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 pull request adds support for recognizing and displaying clipboard
    items that are valid RGB hex color codes (such as `#FFBFAB` or `#abc`)
    in the Advanced Paste module. It introduces logic to detect hex color
    strings, converts them to color values, and updates the UI to show a
    color preview for these items. The changes also include comprehensive
    unit tests for the new functionality.

    <!-- Please review the items on the PR checklist before submitting-->
    ## PR Checklist

    - [x] Closes: #43538
    <!-- - [ ] Closes: #yyy (add separate lines for additional resolved
    issues) -->
    - [x] **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
    - [ ] **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

    **Clipboard color detection and conversion:**

    * Added `ClipboardItemHelper.IsRgbHexColor` method using a compiled
    regex to identify valid hex color strings in clipboard text.
    [[1]](diffhunk://#diff-7429196ad30cd0bce57b102669da4dc13d43a09579e99ceac7cc0f7dc101cd2bR62-R86)
    [[2]](diffhunk://#diff-7429196ad30cd0bce57b102669da4dc13d43a09579e99ceac7cc0f7dc101cd2bR112-R114)
    * Introduced `HexColorConverterHelper.ConvertHexColorToRgb` utility to
    convert hex color strings to `Windows.UI.Color`, handling both 3-digit
    and 6-digit formats.

    **UI enhancements for color previews:**

    * Updated `ClipboardHistoryItemPreviewControl` to include a color
    preview grid that displays an ellipse filled with the detected color and
    the color code as text, using the new `HexColorToBrushConverter`.
    [[1]](diffhunk://#diff-2ed6014d4c17037b9cd0ab397e40b9069b1e7fe47a700673f34e8217d78124d5R29-R48)
    [[2]](diffhunk://#diff-2ed6014d4c17037b9cd0ab397e40b9069b1e7fe47a700673f34e8217d78124d5R14)
    [[3]](diffhunk://#diff-0c26c92697f6bb38fa40160fc8b18f0876ddc8d828a510034411001aa2e05063R1-R28)
    * Modified logic in `ClipboardHistoryItemPreviewControl.xaml.cs` to
    ensure color previews are shown only for detected color items and to
    adjust visibility of text and glyph previews accordingly.

    **Unit tests for color detection and conversion:**

    * Added unit tests for hex color conversion
    (`HexColorToColorConverterTests.cs`) and color detection logic
    (`ClipboardItemHelperTests.cs`) to verify correct behavior for valid,
    invalid, and edge-case inputs.
    [[1]](diffhunk://#diff-d81d997d5fb414f1563c31c38681113aaa9c847ef05bb77662d30bd1310d6b8eR1-R61)
    [[2]](diffhunk://#diff-185e8954ca6f061bf5d60d0c61ac6cfd87bd1a48ebda11a8172e3496a050fe85R1-R36)

    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->
    ## Validation Steps Performed
    * Copied to the clipboard a color encoded text like: #FFBFAB
    * Opened Advanced Paste and noticed the color:

    <img width="467" height="309" alt="image"
    src="https://github.com/user-attachments/assets/6cedce89-9833-4efb-abf9-3cfe8e8f32f0"
    />

    ---------

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

commit e68526b8d8fce059a0ccd1026a6d6e9780efa808
Author: Jiří Polášek <[email protected]>
Date:   Fri Dec 5 23:32:24 2025 +0100

    CmdPal: Add configuration option for Escape key behavior (#43354)

    ## Summary of the Pull Request

    This PR adds a new option to the **General** page in **Settings**:

    Escape key behavior — a dropdown with the following choices:

    - Clear search first, then go back
      - Current behavior.
      - If the search box contains text, it is cleared; otherwise goes back.
      - On the home page, CmdPal is dismissed.

    - Go back
      - Leaves the search text intact.
    - If the page is not transient, the search text reappears when
    returning.
      - On the home page, CmdPal is dismissed.

    - Hide window and go home (Always dismiss)
      - Immediately dismisses CmdPal and navigates to the home page.
      - Ignores the **Go home when activated** setting.
      - Search text is cleared.

    - Hide window
      - Just hides the window.
      - Intended to be used with #43355.

    This implementation preserves existing behavior, except for **Always
    dismiss**, which always forces navigation to the home page.

    ## Pictures? Pictures!

    <img width="1305" height="892" alt="image"
    src="https://github.com/user-attachments/assets/562e5604-1da6-4fc6-8358-5053df9c573d"
    />

    <!-- Please review the items on the PR checklist before submitting-->
    ## PR Checklist

    - [x] Closes: #38311
    - [ ] **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

commit 995a699de77110570c9b1172792a5def3b82be36
Author: ruslanlap <[email protected]>
Date:   Fri Dec 5 18:21:01 2025 +0200

    [PowerToysRun][Docs] Add QuickAI plugin to third-party plugins list (#43238)

    Adds QuickAI plugin to the third-party plugins documentation.

    QuickAI is an AI-powered assistance plugin that provides instant, smart
    responses from multiple providers (Groq, Together, Fireworks,
    OpenRouter, Cohere) directly in PowerToys Run.

    Repository: https://github.com/ruslanlap/PowerToysRun-QuickAi

    ---------

    Co-authored-by: Niels Laute <[email protected]>

commit 5f6df35d8d741066734a0fe446c94dfc64890072
Author: Copilot <[email protected]>
Date:   Fri Dec 5 10:20:33 2025 -0600

    Add semantic headings to Dashboard page for accessibility (#42438)

    ## Summary

    Fixes #37668 by adding proper semantic heading structure to the
    Dashboard (Home) page, enabling screen reader users to navigate the page
    efficiently using heading shortcuts.

    ## Problem

    The Dashboard page lacked semantic heading elements, making it difficult
    for users of assistive technologies to understand the page structure and
    navigate between sections. When using screen readers with heading
    navigation (H key in scan mode), no headings were announced, violating
    WCAG 2.2 Success Criterion 1.3.1 (Info and Relationships).

    ## Solution

    Added `AutomationProperties.HeadingLevel` attributes to provide proper
    heading hierarchy:

    1. **Dashboard Title** - Marked as Level 1 (H1) heading
    - Added `AutomationProperties.HeadingLevel="1"` to the "Home" page title
       - Follows the same pattern as `SettingsPageControl.xaml`

    2. **Card Titles** - Marked as Level 2 (H2) headings
    - Added `AutomationProperties.HeadingLevel="Level2"` to the Card
    component
    - Applies to all card sections: "Quick Access", "Shortcuts Overview",
    and "Utilities"
       - Follows the same pattern as `SettingsGroup.xaml`

    ## Resulting Structure

    ```
    H1: Home (Dashboard Title)
    ├─ H2: Quick Access
    ├─ H2: Shortcuts Overview
    └─ H2: Utilities
    ```

    ## Impact

    - Screen reader users can now use heading navigation (H key) to jump
    between sections on the Dashboard page
    - Provides proper document structure that follows WCAG 2.2 Level A
    guidelines
    - No visual or functional changes - only accessibility metadata added
    - Consistent with existing accessibility patterns used throughout the
    Settings UI

    ## Testing

    - Changes follow existing patterns in `SettingsPageControl.xaml` (Level
    1) and `SettingsGroup.xaml` (Level 2)
    - Only XAML accessibility attributes added - no code logic changes
    - Minimal, surgical changes: 2 lines across 2 files

    ## References

    - Issue: #37668
    - WCAG 2.2: [Success Criterion 1.3.1 - Info and
    Relationships](https://www.w3.org/WAI/WCAG22/Understanding/info-and-relationships)

    <!-- START COPILOT CODING AGENT SUFFIX -->

    <details>

    <summary>Original prompt</summary>

    >
    > ----
    >
    > *This section details on the original issue you should resolve*
    >
    > <issue_title>No Heading Defined on the Home Page.</issue_title>
    > <issue_description>### Microsoft PowerToys version
    >
    > v0.94.2
    >
    > ### Installation method
    >
    > PowerToys auto-update
    >
    > ### Area(s) with issue?
    >
    > New+
    >
    > ### Steps to reproduce
    >
    > **Repro Steps:**
    >
    > 1. Open the Power Toys.
    > 2. Now Select Home from the left navigation pane.
    > 3. Now Turn on narrator and turn on scan mode.
    > 4. Now use Quick navigation H key for headings.
    > 5. Observe the issue.
    >
    > ### ✔️ Expected Behavior
    >
    > The home page should contain at least one semantic heading (typically
    an <h1>) that describes the main topic or purpose of the page.
    >
    > ### ❌ Actual Behavior
    >
    > The home page does not contain any semantic heading tags (e.g., <h1>,
    <h2>, etc.). While text may be visually styled to look like headings, no
    actual heading elements are present in the page’s HTML structure.
    >
    > ### Additional Information
    >
    > **User Impact:**
    > Users of screen readers and other assistive technologies rely on
    headings to understand the structure of the page and navigate
    efficiently.
    >
    > **WCAG Reference:**
    > https://www.w3.org/WAI/WCAG22/Understanding/info-and-relationships
    >
    > **Attachments:**
    >
    >
    https://github.com/user-attachments/assets/5140b50c-67fc-40d5-bf80-40e2a2bb7782
    >
    > ### Other Software
    >
    > _No response_</issue_description>
    >
    > ## Comments on the Issue (you are @copilot in this section)
    >
    > <comments>
    > </comments>
    >

    </details>

    Fixes microsoft/PowerToys#42421

    <!-- START COPILOT CODING AGENT TIPS -->
    ---

    💡 You can make Copilot smarter by setting up custom instructions,
    customizing its development environment and configuring Model Context
    Protocol (MCP) servers. Learn more [Copilot coding agent
    tips](https://gh.io/copilot-coding-agent-tips) in the docs.

    ---------

    Co-authored-by: copilot-swe-agent[bot] <[email protected]>
    Co-authored-by: niels9001 <[email protected]>
    Co-authored-by: Niels Laute <[email protected]>

commit cffdecbc1b6f614a2fc49a0c67db6d8f0c98bca4
Author: Noraa Junker <[email protected]>
Date:   Fri Dec 5 14:55:45 2025 +0100

    Add documentation of bot commands and fix some devdocs (#43399)

    <!-- 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

    * Fixes location of `style.md` file
    * Deletes duplicated `localization.md` file
    * Adds documentation about the bot commands.
    * Adds links to aka.ms link docs and the new document

    <!-- Please review the items on the PR checklist before submitting-->
    ## PR Checklist

    - [ ] Closes: #xxx
    - [ ] **Communication:** I've discussed this with core contributors
    already. If the work hasn't been agreed, this work might be rejected
    - [x] **Dev docs:** Added/updated

commit a4d8405957197c19fef0735978a52c49f4d3a5eb
Author: Noraa Junker <[email protected]>
Date:   Fri Dec 5 14:54:13 2025 +0100

    Fix dpi issues in Quick Accent (#43314)

    <!-- 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

    <!-- Please review the items on the PR checklist before submitting-->
    ## PR Checklist

    - [x] Closes: #40865
    - [x] **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

commit cdf66a70e9f0ccc53aa2ef016039dcc140a30a7a
Author: Niels Laute <[email protected]>
Date:   Fri Dec 5 14:33:59 2025 +0100

    [AdvancedPaste] Fix outdated string in Settings (#44099)

    Updating and removing outdated strings.

    Updated string:

    <img width="1565" height="323" alt="image"
    src="https://github.com/user-attachments/assets/3dcad3b9-7ba9-4d87-ab36-405a8e1705db"
    />

commit 9dcddfd4b811207b04ae274e1e12fbd0eeb8d29c
Author: Valentin Arthur Thomas <[email protected]>
Date:   Fri Dec 5 11:57:01 2025 +0100

    Quotation mark (#30481)

    <!-- 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)?
    -->
    ## Add Quotation mark
    Add local quotation based on ~~VK_OEM_7(0xDE)~~ VK_OEM_COMMA(0xBC) key.
    Not all quotes have been added, only `‟ „ ” « » ‚ , ‘ ’ › ‹ '「 」 《 》 『
    』〈 〉″ ‴ ⁗`
    Why not added :
    - ` ⹂ ⌜ ⌝ ❛ ❜ ❝ ❞ 🙶 🙷 🙸 ' 「 」 ` its redundant and would make too much
    and not readable.
    - ` ﹁ ﹂ ﹃ ﹄ `  I did not put them because there use for horizontal text

    <!-- Please review the items on the PR checklist before submitting-->
    ## PR Checklist

    - [x] Closes: https://github.com/microsoft/PowerToys/issues/29371
    https://github.com/microsoft/PowerToys/issues/24832
    - [ ] **Communication:** I've discussed this with core contributors
    already. If 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 (None)
    - [ ] [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 -->
    This PR is currently a draft, I still need to know if adding
    language-related keyboard management is a good idea or specifying the
    use of a gobal key to make it easier to manage all the keyboards in one.
    Some languages ​​can use different keyboards, I think this would become
    problematic if the keyboard does not match the key used by default.
    However, using a universal key can also pose an issue to finding the
    key. that remains to be discussed
    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->
    ## Validation Steps Performed

commit 503bcbdf2d44d2002293bc35c23846e7d572c58c
Author: Copilot <[email protected]>
Date:   Fri Dec 5 07:33:37 2025 +0100

    Restore missing "Quick access" menu item in tray icon context menu (#42676)

    ## Summary
    Restores the "Quick access" menu item that was accidentally removed from
    the PowerToys tray icon context menu.

    ## Issue
    Fixes #[issue_number]

    The "Quick access" menu item was missing from the tray icon's
    right-click context menu, preventing users from accessing this feature
    via the tray menu.

    **Expected menu:**

    ![Expected
    menu](https://github.com/user-attachments/assets/805b1436-5a08-42e7-a34d-b9848fd9a235)

    **Actual menu (before this fix):**

    ![Actual
    menu](https://github.com/user-attachments/assets/7584035d-e893-4f73-acc3-84d789e31e81)

    ## Changes
    - Added the missing `MENUITEM "Quick access\tLeft-click",
    ID_QUICK_ACCESS_MENU_COMMAND` entry as the first menu item in the
    `ID_TRAY_MENU` definition in `src/runner/runner.base.rc`

    ## Details
    The menu item was accidentally removed in commit
    f5797a065a5c2c448fd2b1780bd1353d712103c3. This PR restores it to its
    correct position as the first item in the tray menu.

    All supporting code was already in place:
    - The resource ID `ID_QUICK_ACCESS_MENU_COMMAND` (40006) is defined in
    `resource.base.h`
    - The resource string `QUICK_ACCESS_MENU_TEXT` is defined in
    `Resources.resx`
    - The menu command handler in `tray_icon.cpp` opens the Quick Access
    flyout window
    - The localization code updates the menu text at runtime

    ## Testing
    - ✅ Verified the menu item syntax is correct and matches existing
    patterns
    - ✅ Confirmed all supporting resource IDs and handler code exist
    - ✅ CI build verification pending

    After this fix, the tray menu will correctly display:
    1. Quick access (Left-click)
    2. Settings (Double-click)
    3. Documentation
    4. Report Bug
    5. Close

    <!-- START COPILOT CODING AGENT SUFFIX -->

    <details>

    <summary>Original prompt</summary>

    >
    > ----
    >
    > *This section details on the original issue you should resolve*
    >
    > <issue_title>Quick Access missing in tray menu</issue_title>
    > <issue_description>### Microsoft PowerToys version
    >
    > 0.95.0
    >
    > ### Installation method
    >
    > PowerToys auto-update
    >
    > ### Area(s) with issue?
    >
    > System tray interaction
    >
    > ### Steps to reproduce
    >
    > 1. Right click the tray icon
    > 2. Look at the list of items which can be selected
    > 3. Notice that the "Quick access" is missing
    >
    > Expected menu ("Exit" is now "Close" I took this image from initial
    implementation):
    >
    > <img width="234" height="127" alt="Image"
    src="https://github.com/user-attachments/assets/805b1436-5a08-42e7-a34d-b9848fd9a235"
    />
    >
    > Actual menu right now:
    >
    > <img width="239" height="105" alt="Image"
    src="https://github.com/user-attachments/assets/7584035d-e893-4f73-acc3-84d789e31e81"
    />
    >
    > ### ✔️ Expected Behavior
    >
    > The "Quick access" menu item should be there
    >
    > ### ❌ Actual Behavior
    >
    > The menu item is missing
    >
    > ### Additional Information
    >
    > Windows 10 Pro 22H2 19045.6332
    >
    > (Also it is the same on my other computers)
    >
    > ### Other Software
    >
    > _No response_</issue_description>
    >
    > <agent_instructions>restore
    >
    > MENUITEM "Quick access\tLeft-click", ID_QUICK_ACCESS_MENU_COMMAND
    >
    > as first menu item of ID_TRAY_MENU MENU in
    src/runner/runner.base.rc</agent_instructions>
    >
    > ## Comments on the Issue (you are @copilot in this section)
    >
    > <comments>
    > <comment_new><author>@niels9001</author><body>
    > @davidegiacometti is this a regression from the PR where we updated
    the string names?</body></comment_new>
    > <comment_new><author>@davidegiacometti</author><body>
    > Hi @niels9001
    > I just realized that the menu was missing in
    https://github.com/microsoft/PowerToys/pull/40714 screenshots, but the
    regression was caused by
    https://github.com/microsoft/PowerToys/commit/f5797a065a5c2c448fd2b1780bd1353d712103c3.
    > Unfortunately, many of the `.rc` files in the PT codebase have
    UTF16-LE encoding and GitHub doesn't show diff.</body></comment_new>
    > </comments>
    >

    </details>

    Fixes microsoft/PowerToys#42618

    <!-- START COPILOT CODING AGENT TIPS -->
    ---

    💬 Share your feedback on Copilot coding agent for the chance to win a
    $200 gift card! Click
    [here](https://survey3.medallia.com/?EAHeSx-AP01bZqG0Ld9QLQ) to start
    the survey.

    ---------

    Co-authored-by: copilot-swe-agent[bot] <[email protected]>
    Co-authored-by: davidegiacometti <[email protected]>

commit 52f25619373ccb9af0fa0fbc7da916297ecac897
Author: Jiří Polášek <[email protected]>
Date:   Wed Dec 3 17:16:25 2025 +0100

    CmdPal: Find app for WinGet package (#43943)

    <!-- 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 introduces a bit of dark magic to resolve the correct installed
    app for a given WinGet package:

    - Packaged apps: matched using their package family name.
    - Everything else: matched using the product code (GUID) and heuristic
    registry lookup.
    - The registry rarely stores the executable path directly, so the logic
    compares install locations with known apps.
      - It attempts to pick the best candidate while avoiding uninstallers.
      - It’s not science — let’s call it `#666666` magic.
    - MSI API support was removed because it's too slow for this scenario.
    - If no reliable match is found, the command is skipped for now. The
    future plan is to redirect the user to the list of installed apps and
    search by display name, but that needs some supporting infrastructure
    first.
    - The command order for WinGet list entries was updated: **Install /
    Uninstall** is now the primary action, ensuring a stable UI since this
    command is always available.

    <!-- Please review the items on the PR checklist before submitting-->
    ## PR Checklist

    - [x] Closes: #43671
    <!-- - [ ] 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…
@khmyznikov khmyznikov requested a review from a team as a code owner December 9, 2025 22:45
@khmyznikov khmyznikov linked an issue Dec 9, 2025 that may be closed by this pull request
@khmyznikov khmyznikov requested a review from lei9444 December 9, 2025 22:46
"PowerToys.FancyZonesEditorCommon.dll",
"PowerToys.FancyZonesModuleInterface.dll",
"PowerToys.FancyZones.exe",
"FancyZonesCLI.exe",
Copy link
Member

Choose a reason for hiding this comment

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

hmm.. is your PR branched off an earlier version of main, and does it need to be merged up again?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@DHowett I did that, it should be up to date with main. What it's about? How to resolve?

@khmyznikov khmyznikov added Area-Tests issues that relate to tests Product-FancyZones Refers to the FancyZones PowerToy labels Dec 10, 2025
@github-actions

This comment has been minimized.

@khmyznikov khmyznikov merged commit 995bbdc into main Dec 10, 2025
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area-Tests issues that relate to tests Product-FancyZones Refers to the FancyZones PowerToy

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Check and Fix Failed UI Tests - FancyZones

4 participants