Commit Graph

582 Commits

Author SHA1 Message Date
Gleb Khmyznikov
a5b9cc77ec Squashed commit of the following:
commit 73e379238b
Author: leileizhang <leilzh@microsoft.com>
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 4710b816b4
Author: Dave Rayment <dave.rayment@gmail.com>
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 b8a0163419
Author: Sam Rueby <samrueby@gmail.com>
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 06fcbdac40
Author: Gordon Lam <73506701+yeelam-gordon@users.noreply.github.com>
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 d515c67def
Author: leileizhang <leilzh@microsoft.com>
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 9439b6df41
Author: Noraa Junker <noraa.junker@outlook.com>
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 a37add8f08
Author: 舰队的偶像-岛风酱! <frg2089@outlook.com>
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: 舰队的偶像-岛风酱! <frg2089@outlook.com>
    Co-authored-by: Yu Leng <yuleng@microsoft.com>

commit 60deec6815
Author: Gordon Lam <73506701+yeelam-gordon@users.noreply.github.com>
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 7e791f2815
Author: Dave Rayment <dave.rayment@gmail.com>
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 2b0ecc2979
Author: Noraa Junker <noraa.junker@outlook.com>
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 45cf3de15d
Author: Jiří Polášek <me@jiripolasek.com>
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 bf8c548501
Author: Jiří Polášek <me@jiripolasek.com>
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 121c6c0712
Author: Carlos Rafael Ramirez <crramirez@users.noreply.github.com>
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 <198982749+Copilot@users.noreply.github.com>
    Co-authored-by: crramirez <8397379+crramirez@users.noreply.github.com>
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

commit e68526b8d8
Author: Jiří Polášek <me@jiripolasek.com>
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 995a699de7
Author: ruslanlap <106077551+ruslanlap@users.noreply.github.com>
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 <niels.laute@live.nl>

commit 5f6df35d8d
Author: Copilot <198982749+Copilot@users.noreply.github.com>
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] <198982749+Copilot@users.noreply.github.com>
    Co-authored-by: niels9001 <9866362+niels9001@users.noreply.github.com>
    Co-authored-by: Niels Laute <niels.laute@live.nl>

commit cffdecbc1b
Author: Noraa Junker <aaron.junker@outlook.com>
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 a4d8405957
Author: Noraa Junker <aaron.junker@outlook.com>
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 cdf66a70e9
Author: Niels Laute <niels.laute@live.nl>
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 9dcddfd4b8
Author: Valentin Arthur Thomas <64769541+warquys@users.noreply.github.com>
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 503bcbdf2d
Author: Copilot <198982749+Copilot@users.noreply.github.com>
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
    f5797a065a. 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
    f5797a065a.
    > 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] <198982749+Copilot@users.noreply.github.com>
    Co-authored-by: davidegiacometti <25966642+davidegiacometti@users.noreply.github.com>

commit 52f2561937
Author: Jiří Polášek <me@jiripolasek.com>
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 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 dc30f3fd8e
Author: Dustin L. Howett <duhowett@microsoft.com>
Date:   Wed Dec 3 03:59:46 2025 -0600

    build: move main and setup to SLNX (#43478)

    Closes #37100

    This does not migrate the rest of the solutions (why do we have so
    many?)

    Not migrated:

    - TemplateCmdPalExtension.sln
    - FancyZonesEditor.sln
    - BugReportTool.sln
    - CleanUp_tool.sln
    - FancyZones_DrawLayoutTest.sln
    - FancyZones_zonable_tester.sln
    - FancyZone_HitTest.sln
    - MonitorReportTool.sln
    - PowerToyTemplate.sln
    - StylesReportTool.sln

    ---------

    Co-authored-by: vanzue <vanzue@outlook.com>

commit 8f9a2c32cc
Author: Jessica Dene Earley-Cha <12740421+chatasweetie@users.noreply.github.com>
Date:   Tue Dec 2 09:59:57 2025 -0800

    add missing powertoys events (#44016)

    ## Summary of the Pull Request
    This added missing telemetry events from modules that were not listed in
    DATA_AND_PRIVACY

    ## PR Checklist

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

commit bcd1583bb7
Author: moooyo <42196638+moooyo@users.noreply.github.com>
Date:   Tue Dec 2 16:31:02 2025 +0800

    [AOT] Refactor SettingsLib/SettingsUI for Native AOT compatibility (#42644)

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

    Key Changes:

    1. Settings.UI.Library:
    - Added SettingsSerializationContext.cs with comprehensive
    JsonSerializable attributes for all settings types
    - Updated BasePTModuleSettings.ToJsonString() to use AOT-compatible
    serialization
    - Updated SettingsUtils.GetFile<T>() to use AOT-compatible
    deserialization
    - Modified all ToString() methods in Properties classes to use
    SettingsSerializationContext
    - Converted struct fields to properties in SunTimes and
    MouseWithoutBordersProperties for serialization compatibility

    2. Settings.UI:
    - Fixed namespace alias in SourceGenerationContextContext.cs to avoid
    conflicts

    For any future developers who discover incorrect settings resolution,
    please follow up my changes to add your setting type into
    JsonSerilizerContext.

    <!-- 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
    - [ ] **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

    Co-authored-by: Yu Leng <yuleng@microsoft.com>

commit b075a021df
Author: Carlos Zamora <carlos.zamora@microsoft.com>
Date:   Mon Dec 1 22:09:08 2025 -0800

    Bump our telemetry package version (#44015)

    Data collection is still hard.

    This just makes it so that the build pipeline uses the updated PowerToys
    telemetry NuGet package. The updated package switches us over to use a
    diagnostic data provider group for compliance with some new regulations
    (i.e. DMA and EU Data Act).

commit 9e43c23216
Author: Michael Clayton <mike@kingslandconsulting.co.uk>
Date:   Tue Dec 2 02:43:08 2025 +0000

    Ready for Review - [Mouse Without Borders] - refactoring "Common" classes (Part 6 of 7)  (#43208)

    ## Summary of the Pull Request

    **Part 6** of a [slow-running 7-part
    refactor](https://github.com/microsoft/PowerToys/issues/35155#issuecomment-2583334110)
    of the giant "Common" class in Mouse Without Borders into individual
    classes with tighter private scope.

    In this PR:

    * Extract the "Common" code from the following files:
      * ```Common.Encryption.cs```-> ```Core/Encryption.cs```
      * ```Common.Package.cs``` -> ```Core/<multiple files>.cs```
    * ```Common.ShutdownWithPowerToys.cs``` ->
    ```Core/ShutdownWithPowerToys.cs```
      * ```Common.VK.cs``` -> ```Core/VK.cs```, ```Core/WM.cs```
      * ```Common.WinAPI.cs``` -> ```Core/WinAPI.cs```
    * Update references to the types in the new locations
    * Update unit test to verify functionality has only changed in an
    expected way

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

    - [x]      Partially addresses #35155
    - [x] **Communication:** I've discussed this with core contributors
    already. If work hasn't been agreed, this work might be rejected
    - [x]     **Tests:** Added/updated and all pass
    - [x]     **Localization:** All end user facing strings can be localized
       - no changes in this PR
    - [x]     **Dev docs:** Added/updated
       - no changes in this PR
    - [x]     **New binaries:** Added on the required places
       - no changes in this PR
    - [ ] [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)
    - [x] **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
       - no changes in this PR

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

    ### Run manual tests from [Test Checklist
    Template](5bc7201ae2/doc/releases/tests-checklist-template.md (mouse-without-borders)):

    * Install PowerToys on two PCs in the same local network:
       - [x]     Verify that PowerToys is properly installed on both PCs.
       - [x]     Configure Windows Firewall Rules
    - ```netsh advfirewall firewall add rule
    name="PowerToys.MouseWithoutBorders - mc" dir=in action=allow
    program="C:\src\mc\PowerToys\x64\Debug\PowerToys.exe" enable=yes
    remoteip=any profile=any protocol=tcp```

     * Setup Connection:
    - [x] Open MWB's settings on the first PC and click the "New Key"
    button. Verify that a new security key is generated.
    - [x] Copy the generated security key and paste it in the corresponding
    input field in the settings of MWB on the second PC. Also enter the name
    of the first PC in the required field.
    - [x] Press "Connect" and verify that the machine layout now includes
    two PC tiles, each displaying their respective PC names.

     * Verify Connection Status:
    - [x] Ensure that the border of the remote PC turns green, indicating a
    successful connection.
    - [x] Enter an incorrect security key and verify that the border of the
    remote PC turns red, indicating a failed connection.

     * Test Remote Mouse/Keyboard Control:
    - [x] With the PCs connected, test the mouse/keyboard control from one
    PC to another. Verify that the mouse/keyboard inputs are correctly
    registered on the other PC.
    - [ ] Test remote mouse/keyboard control across all four PCs, if
    available. Verify that inputs are correctly registered on each connected
    PC when the mouse is active there.
         - unable to test - only 2 machines available

     * Test Remote Control with Elevated Apps:
    - note - the main PowerToys.exe must be running as a **non**-admin for
    these tests
    - [x] Open an elevated app on one of the PCs. Verify that without "Use
    Service" enabled, PowerToys does not control the elevated app.
    - [x] Enable "Use Service" in MWB's settings (need to run PowerToys.exe
    as admin to enable "Use Service", then restart PowerToys.exe as
    non-admin). Verify that PowerToys can now control the elevated app
    remotely. Verify that MWB processes are running as LocalSystem, while
    the MWB helper process is running non-elevated.
    - ```get-process -Name "PowerToys.MouseWithoutBorders*" -IncludeUserName
    | format-table Id, ProcessName, UserName```
    - [x] Process: ```PowerToys.MouseWithoutBorders.exe``` - running as
    ```SYSTEM```
    - [x] Process: ```PowerToys.MouseWithoutBorders.Helper.exe``` - running
    as current user
    - ```get-service -Name "PowerToys.*" | ft Status, Name, UserName;
    get-ciminstance -Class "Win32_Service" -Filter "Name like 'PowerToys%'"
    | ft ProcessId, Name```
    - [x] Service: ```PowerToys.MWB.Service``` - running as ```Local
    System```
    - [x] Toggle "Use Service" again, verify that each time you do that, the
    MWB processes are restarted.
    - [x] Run PowerToys elevated on one of the machines, verify that you can
    control elevated apps remotely now on that machine.

    * Test Module Enable Status:
    - [x] For all combinations of "Use Service"/"Run PowerToys as admin",
    try enabling/disabling MWB module and verify that it's indeed being
    toggled using task manager.

     * Test Disconnection/Reconnection:
    - [x] Disconnect one of the PCs from network. Verify that the machine
    layout updates to reflect the disconnection.
       - [x]     Do the same, but now by exiting PowerToys.
       - [ ]     Start PowerToys again, verify that the PCs are reconnected.

     * Test Various Local Network Conditions:
    - [ ] Test MWB performance under various network conditions (e.g., low
    bandwidth, high latency). Verify that the tool maintains a stable
    connection and functions correctly.

     * Clipboard Sharing:
    - [x] Copy some text on one PC and verify that the same text can be
    pasted on another PC.
    - [x] Use the screenshot key and Win+Shift+S to take a screenshot on one
    PC and verify that the screenshot can be pasted on another PC.
    - [x] Copy a file in Windows Explorer and verify that the file can be
    pasted on another PC. Make sure the file size is below 100MB.
    - [x] Try to copy multiple files and directories and verify that it's
    not possible (only the first selected file is being copied).

     * Drag and Drop:
    - [ ] Drag a file from Windows Explorer on one PC, cross the screen
    border onto another PC, and release it there. Verify that the file is
    copied to the other PC. Make sure the file size is below 100MB.
    - [ ] While dragging the file, verify that a corresponding icon is
    displayed under the mouse cursor.
    - [ ] Without moving the mouse from one PC to the target PC, press
    CTRL+ALT+F1/2/3/4 hotkey to switch to the target PC directly and verify
    that file sharing/dropping is not working.

     * Lock and Unlock with "Use Service" Enabled:
       - [x]     Enable "Use Service" in MWB's settings.
    - [x] Lock a remote PC using Win+L, move the mouse to it remotely, and
    try to unlock it. Verify that you can unlock the remote PC.
    - [x] Disable "Use Service" in MWB's settings, lock the remote PC, move
    the mouse to it remotely, and try to unlock it. Verify that you can't
    unlock the remote PC.

     * Test Settings:
    - [ ] Change the rest of available settings on MWB page and verify that
    each setting works as described.

    ### Group Policy Tests

    See https://learn.microsoft.com/en-us/windows/powertoys/grouppolicy

    - [ ] Install *.admx / *.adml and check settings behave as expected
      - [ ] I'll expand the list of settings here when I get this far :-)
    - [ ] HKEY_LOCAL_MACHINE\SOFTWARE\Policies\PowerToys
      - [x]     ConfigureEnabledUtilityMouseWithoutBorders
    - [x] ```[missing]``` - "Activation -> Enable Mouse Without Borders"
    enabled, with GPO warning hidden
    - ```reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Policies\PowerToys /v
    ConfigureEnabledUtilityMouseWithoutBorders /f```
    - [x] ```0``` - "Activation -> Enable Mouse Without Borders" set to
    "off" and disabled, with GPO warning visible
    - ```reg add HKEY_LOCAL_MACHINE\SOFTWARE\Policies\PowerToys /v
    ConfigureEnabledUtilityMouseWithoutBorders /t REG_DWORD /d 0 /f```
    - [x] ```1``` - "Activation -> Enable Mouse Without Borders" set to "on"
    and disabled, with GPO warning visible
    - ```reg add HKEY_LOCAL_MACHINE\SOFTWARE\Policies\PowerToys /v
    ConfigureEnabledUtilityMouseWithoutBorders /t REG_DWORD /d 1 /f```
      - [ ] MwbClipboardSharingEnabled
      - [ ] MwbFileTransferEnabled
      - [ ] MwbUseOriginalUserInterface
      - [ ] MwbDisallowBlockingScreensaver
      - [ ] MwbSameSubnetOnly
      - [ ] MwbValidateRemoteIp
      - [x]     MwbDisableUserDefinedIpMappingRules
    - [x] ```[missing]``` - "Advanced Settings -> IP address mapping"
    enabled, with GPO warning hidden
    - ```reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Policies\PowerToys /v
    MwbDisableUserDefinedIpMappingRules /f```
    - [x] ```0``` - "Advanced Settings -> IP address mapping" enabled, with
    GPO warning hidden
    - ```reg add HKEY_LOCAL_MACHINE\SOFTWARE\Policies\PowerToys /v
    MwbDisableUserDefinedIpMappingRules /t REG_DWORD /d 0 /f```
    - [x] ```1``` - "Advanced Settings -> IP address mapping" disabled, with
    GPO warning visible
    - ```reg add HKEY_LOCAL_MACHINE\SOFTWARE\Policies\PowerToys /v
    MwbDisableUserDefinedIpMappingRules /t REG_DWORD /d 1 /f```
      - [x]     MwbPolicyDefinedIpMappingRules
    - [x] ```[missing]``` - "Advanced Settings -> IP address mapping"
    enabled, with GPO warning and GPO values hidden
    - ```reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Policies\PowerToys /v
    MwbPolicyDefinedIpMappingRules /f```
    - [x] ```[empty value]``` - "Advanced Settings -> IP address mapping"
    enabled, with GPO warning hidden and GPO values hidden
    - ```reg add HKEY_LOCAL_MACHINE\SOFTWARE\Policies\PowerToys /v
    MwbPolicyDefinedIpMappingRules /t REG_MULTI_SZ /d "" /f```
    - [x] ```[non-empty value]``` - "Advanced Settings -> IP address
    mapping" enabled, with GPO warning visible and GPO values visible
    - ```reg add HKEY_LOCAL_MACHINE\SOFTWARE\Policies\PowerToys /v
    MwbPolicyDefinedIpMappingRules /t REG_MULTI_SZ /d "aaa 10.0.0.1\0bbb
    10.0.0.2" /f```

commit bece9c9217
Author: Jiří Polášek <me@jiripolasek.com>
Date:   Tue Dec 2 03:25:38 2025 +0100

    CmdPal: Adds a back button to Settings window (#44013)

    ## Summary of the Pull Request

    This PR introduces proper navigation support in the Settings window.
    - Enables the Go back button in the title bar.
    - Adds support for Alt + Left Arrow, mouse X1 button, and the Go back
    button.
    - Fixes breadcrumb updates and localization issues to prevent them from
    breaking during navigation.

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

    - [x] Closes: #44011
    <!-- - [ ] 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 32c13cead4
Author: Jiří Polášek <me@jiripolasek.com>
Date:   Mon Dec 1 20:24:54 2025 +0100

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

    ## Summary of the Pull Request

    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-->
    ## PR Checklist

    - [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 -->
    ## 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 33808fdb9c
Author: Jiří Polášek <me@jiripolasek.com>
Date:   Mon Dec 1 20:23:48 2025 +0100

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

    ## Summary of the Pull Request

    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-->
    ## 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 f510be4c53
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="1af3b93b68"><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="71cf2267d8"><code>71cf226</code></a>
    v6-beta (<a
    href="https://redirect.github.com/actions/checkout/issues/2298">#2298</a>)</li>
    <li><a
    href="069c695914"><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="ff7abcd0c3"><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="08c6903cd8"><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="9f265659d3"><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="08eba0b27e"><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="631c7dc4f8"><code>631c7dc</code></a>
    Update package dependencies (<a
    href="https://redirect.github.com/actions/checkout/issues/2236">#2236</a>)</li>
    <li><a
    href="8edcb1bdb4"><code>8edcb1b</code></a>
    Update CODEOWNERS for actions (<a
    href="https://redirect.github.com/actions/checkout/issues/2224">#2224</a>)</li>
    <li><a
    href="09d2acae67"><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] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 4d3c223402
Author: Jiří Polášek <me@jiripolasek.com>
Date:   Mon Dec 1 02:32:30 2025 +0100

    CmdPal: Fix grid views (#43991)

    ## Summary of the Pull Request

    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.

    ## Pictures? Pictures!

    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-->
    ## PR Checklist

    - [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 -->
    ## 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 1ba5a258e9
Author: Jiří Polášek <me@jiripolasek.com>
Date:   Sun Nov 30 01:59:58 2025 +0100

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

    ## Summary of the Pull Request

    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"

    ## Pictures? Pictures!

    <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-->
    ## PR Checklist

    - [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 -->
    ## 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 8aea589b01
Author: Jiří Polášek <me@jiripolasek.com>
Date:   Sun Nov 30 00:36:55 2025 +0100

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

    ## Summary of the Pull Request

    - 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-->
    ## 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 afd9d4cc3c
Author: Clint Rutkas <clint@rutkas.com>
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)?
    -->
    ## Summary of the Pull Request

    <!-- 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 bc0a760aff
Author: Jiří Polášek <me@jiripolasek.com>
Date:   Sat Nov 29 23:23:24 2025 +0100

    CmdPal: Add mini dev center (#43939)

    ## Summary of the Pull Request

    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.

    ## Pictures? Pictures!

    <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-->
    ## PR Checklist

    - [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 -->
    ## 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 06afe09973
Author: Michael Jolley <mike@baldbeardedbuilder.com>
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

    ### GitHub issue maintenance stuff

    Closes #38305

    ---------

    Co-authored-by: Niels Laute <niels.laute@live.nl>
    Co-authored-by: Jiří Polášek <me@jiripolasek.com>

commit 0de60445ea
Author: Jiří Polášek <me@jiripolasek.com>
Date:   Thu Nov 27 16:31:10 2025 +0100

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

    ## Summary of the Pull Request

    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.

    ## One-liner for change log

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

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

    - [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 -->
    ## 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 47d4a65223
Author: Jiří Polášek <me@jiripolasek.com>
Date:   Thu Nov 27 16:24:47 2025 +0100

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

    ## Summary of the Pull Request

    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.

    ## Pictures? Pictures!

    <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-->
    ## PR Checklist

    - [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 -->
    ## 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 1b72c0b969
Author: Kai Tao <69313318+vanzue@users.noreply.github.com>
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)?
    -->
    ## Summary of the Pull Request

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

    Spell no complain

commit 9160c82fc2
Author: Pratyush Nalam <github@code.pratyushnalam.com>
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)?
    -->
    ## Summary of the Pull Request

    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-->
    ## PR Checklist

    - [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 -->
    ## 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 452e0dcf51
Author: Mike Hall <mikehall@microsoft.com>
Date:   Wed Nov 26 14:08:34 2025 +0000

    Module Loader tool for rapid testing of modules (#43813)

    ## Summary of the Pull Request
    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.

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

    ## Detailed Description of the Pull Request / Additional comments
    See details above.

    ## Validation Steps Performed
    ModuleLoader tested on Windows 11, Surface Laptop 7 Pro.

commit 2c9a9e9fca
Author: Jiří Polášek <me@jiripolasek.com>
Date:   Mon Nov 24 23:57:10 2025 +0100

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

    ## Summary of the Pull Request

    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-->
    ## PR Checklist

    - [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 -->
    ## 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 09c8c1d79a
Author: leileizhang <leilzh@microsoft.com>
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)?
    -->
    ## Summary of the Pull Request
    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-->
    ## PR Checklist

    - [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 -->
    ## 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 95c8a83f79
Author: leileizhang <leilzh@microsoft.com>
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)?
    -->
    ## Summary of the Pull Request
    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-->
    ## 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 2830ea919c
Author: Kai Tao <69313318+vanzue@users.noreply.github.com>
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)?
    -->
    ## Summary of the Pull Request
    Adjust model parameter to make the result longer
    <!-- 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 725ad21952
Author: Dave Rayment <dave.rayment@gmail.com>
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)?
    -->
    ## Summary of the Pull Request
    Resolves an issue with the timed mode's expiry not completing correctly.

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

    - [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 -->
    ## Detailed Description of the Pull Request / Additional comments
    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 -->
    ## Validation Steps Performed
    Confirmed that the timed mode times out and exits upon expiry.

commit ebc3a139c5
Author: Erik Anderson <erik.anderson@microsoft.com>
Date:   Fri Nov 21 02:34:34 2025 -0800

    Fix typo in AI settings card description (#43757)

    ## Summary of the Pull Request
    The word "cloud" does not use a vowel sound, so the preceding word
    should be "A" instead of "An".

    ## PR Checklist

    - [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 <erikan@ntdev.microsoft.com>

commit 28dba2633e
Author: Jaylyn Barbee <51131738+Jaylyn-Barbee@users.noreply.github.com>
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 <niels.laute@live.nl>

commit 9fbd3de3a2
Author: Jiří Polášek <me@jiripolasek.com>
Date:   Thu Nov 20 16:23:42 2025 +0100

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

    ## Summary of the Pull Request

    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-->
    ## 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 4a0d9912ae
Author: Kai Tao <69313318+vanzue@users.noreply.github.com>
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)?
    -->
    ## Summary of the Pull Request
    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-->
    ## 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
    Validated locally

commit 15c79a0176
Author: Dave Rayment <dave.rayment@gmail.com>
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)?
    -->
    ## Summary of the Pull Request
    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-->
    ## 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
    - Confirmed the changed descriptions were updated in Settings.

commit 97d46efec2
Author: Dave Rayment <dave.rayment@gmail.com>
Date:   Wed Nov 19 08:49:40 2025 +0000

    [Settings] Fix Dashboard toggle glitches and sorting UI (#43626)

    ## Summary of the Pull Request
    Fixes two UI bugs in the Settings Dashboard: module list glitching when
    toggling modules, and incorrect sort menu checkmarks.

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

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

    ### User-Facing Fixes

    #### 1. Module list glitching when toggling enabled state
    When enabling or disabling a module from the "Utilities" list, the
    entire list would flicker and redraw, causing other toggles to glitch.
    This made it appear as if multiple modules were being affected by a
    single change.

    **Root cause**
    The `AllModules` ObservableCollection was being completely cleared and
    re-populated on every change, forcing the UI to destroy and recreate all
    list items.

    **Fix**
    Refactored collection updates to modify items in-place:
    - Introduced `_moduleItems` master list, built once during
    initialization.
    - `RefreshModuleList()` now updates properties without clearing
    collections
    - `SortModuleList()` uses `ObservableCollection.Move()` instead of
    `Clear()`/`Add()`

    #### 2. Incorrect sort menu checkmark behaviour
    The checkmark in the "Sort by" menu would not update correctly when
    changing sort order, sometimes showing the incorrect item checked, or
    even both at once.

    **Root cause**
    The `IsChecked` prop on the `ToggleMenuFlyoutItem` is bound to
    `DashboardSortOrder`, but the binding was not updating because the
    ViewModel didn't raise a property change notification when the sort
    order was changed.

    **Fix**
    Added `OnPropertyChanged(nameof(DashboardSortOrder))` in
    `SortModuleList()`.

    ### Code quality improvements

    1. Renamed `GetShortcutModules()` to `RefreshShortcutModules()`. The
    original name implied a getter, but the routine actually affects state
    by rebuilding the shortcut and action lists, violating the Command-Query
    Separation principle.
    2. Added an `_isUpdatingFromUI` flag as a defensive measure against
    circular updates when a UI toggle is changed.
    3. Separation of concerns for operations on the modules list. Building,
    sorting and refreshing it are separated.
    4. Added comments and XML doc headers for new methods. Included brief
    description of GPO locking behaviour.

    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->
    ## Validation Steps Performed
    - Verified that toggling modules in the list no longer causes the list
    to flicker or for other toggles to glitch.
    - Confirmed that the sort order checkmarks update correctly and reflect
    the current sort order.
    - Tested GPO policy settings are still queried as before.
    - Checked sort behaviour is unaffected.

    ## Videos

    *Sorting UI*

    https://github.com/user-attachments/assets/3484bf63-2946-4460-83a5-361fa7e41c82

    *Toggle behaviour*

    https://github.com/user-attachments/assets/1fae5429-6fa3-4431-80f3-0907dab4f326

    ---------

    Co-authored-by: Gordon Lam (SH) <yeelam@microsoft.com>

commit 46242b384e
Author: Kai Tao <69313318+vanzue@users.noreply.github.com>
Date:   Wed Nov 19 16:25:52 2025 +0800

    96 release change log (#43330)

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

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

    ---------

    Signed-off-by: Shawn Yuan (from Dev Box) <shuaiyuan@microsoft.com>
    Signed-off-by: Shawn Yuan <shuai.yuan.zju@gmail.com>
    Co-authored-by: Jiří Polášek <me@jiripolasek.com>
    Co-authored-by: Jaylyn Barbee <51131738+Jaylyn-Barbee@users.noreply.github.com>
    Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>
    Co-authored-by: leileizhang <leilzh@microsoft.com>
    Co-authored-by: Shawn Yuan <128874481+shuaiyuanxx@users.noreply.github.com>
    Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
    Co-authored-by: niels9001 <9866362+niels9001@users.noreply.github.com>
    Co-authored-by: Niels Laute <niels.laute@live.nl>
    Co-authored-by: Dave Rayment <dave.rayment@gmail.com>
    Co-authored-by: Gleb Khmyznikov <gleb.khmyznikov@gmail.com>
    Co-authored-by: Gordon Lam (SH) <yeelam@microsoft.com>
    Co-authored-by: Juju Anselum J <106316316+anselumjuju@users.noreply.github.com>
    Co-authored-by: Dustin L. Howett <duhowett@microsoft.com>
    Co-authored-by: Leon Zandman <leon@wirwar.com>
    Co-authored-by: Leon Zandman <lzandman@rdw.nl>
    Co-authored-by: moooyo <42196638+moooyo@users.noreply.github.com>
    Co-authored-by: Yu Leng <yuleng@microsoft.com>
    Co-authored-by: Mike Griese <migrie@microsoft.com>
    Co-authored-by: Michael Jolley <mike@baldbeardedbuilder.com>
    Co-authored-by: Mario Hewardt <marioh@microsoft.com>
    Co-authored-by: Alex Mihaiuc <69110671+foxmsft@users.noreply.github.com>
    Co-authored-by: Mike Hall <mikehall@microsoft.com>
    Co-authored-by: Trevor <ngo.trev.95@gmail.com>

commit 84be261581
Author: Niels Laute <niels.laute@live.nl>
Date:   Tue Nov 18 19:19:38 2025 -0800

    Logo change for Azure Inference (#43686)

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

    - [ ] 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 5a8095b704
Author: Niels Laute <niels.laute@live.nl>
Date:   Tue Nov 18 18:32:14 2025 -0800

    Loc bug (#43685)

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

    - [ ] 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 417c1a6b98
Author: Niels Laute <niels.laute@live.nl>
Date:   Tue Nov 18 16:21:14 2025 -0800

    Update FoundryLocal.svg (#43682)

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

    - [ ] 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 2593149d22
Author: leileizhang <leilzh@microsoft.com>
Date:   Tue Nov 18 14:22:03 2025 +0800

    Fix OOBE Mouse Utilities crash by correcting localization key (#43664)

    <!-- 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 OOBE Mouse Utilities page crashed when selected because the
    TextBlock with x:Uid="Oobe_MouseUtils_MousePointerCrosshairs" tried to
    bind a Description property that doesn’t exist.
    - Updated Resources.resw so the string entry is named
    Oobe_MouseUtils_MousePointerCrosshairs_Description.Text, matching the
    markdown description control instead of the TextBlock.
    - With the correct resource key, the XAML loader no longer resolves an
    invalid property and navigation succeeds.

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

    - [x] Closes:  #43663
    <!-- - [ ] 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 0b50c38fe1
Author: Kai Tao <69313318+vanzue@users.noreply.github.com>
Date:   Tue Nov 18 12:59:52 2025 +0800

    Advanced Paste: Refresh environment if foundry is not present (#43662)

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

    [12:55:29.6763496] [Info] FoundryClient.cs::CreateAsync::23
        [FoundryClient] First attempt failed, refreshing PATH and retrying
    [12:55:29.6766491] [Info] FoundryClient.cs::RefreshEnvironmentPath::225
        [FoundryClient] Refreshing PATH environment variable from system
    [12:55:29.6768710] [Info] FoundryClient.cs::RefreshEnvironmentPath::266
        [FoundryClient] Updating process PATH with latest system values
    [12:55:29.6769080] [Info] FoundryClient.cs::TryCreateClientAsync::33
        [FoundryClient] Creating Foundry Local client
    [12:55:29.6769312] [Info] FoundryClient.cs::TryCreateClientAsync::45
    [FoundryClient] Starting Foundry service using
    manager.StartServiceAsync()
    [12:55:29.9807668] [Info] FoundryClient.cs::TryCreateClientAsync::48
        [FoundryClient] Foundry service started successfully

    Verified, fist launch successfully

commit 840808b465
Author: Niels Laute <niels.laute@live.nl>
Date:   Tue Nov 18 03:28:40 2025 +0100

    [AP] Adding a single scrollviewer and fixing hidden tabstop (#43660)

    <!-- 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: #43655
    <!-- - [ ] 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 b50df36b70
Author: Jiří Polášek <me@jiripolasek.com>
Date:   Tue Nov 18 03:00:37 2025 +0100

    Setup: Hide apps in PowerToys.SpareApps package from Start Menu (#43650)

    <!-- 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 updates the Appx manifest for PowerToys.SpareApps to hide the
    apps from the Start Menu, as they lack proper visual elements like icons
    and text.

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

    - [x] Closes: #43647
    <!-- - [ ] 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 b94593ef73
Author: Jiří Polášek <me@jiripolasek.com>
Date:   Tue Nov 18 00:55:14 2025 +0100

    Settings: Add ScrollViewer to Command Palette page in PowerToys Settings (#43649)

commit 7a01d56179
Author: Mario Hewardt <marioh@microsoft.com>
Date:   Mon Nov 17 07:26:42 2025 -0800

    Updates version for standalone release (#43645)

    <!-- 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
    Updates the version for standalone release

    <!-- 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 130e9a0a68
Author: Kai Tao <69313318+vanzue@users.noreply.github.com>
Date:   Mon Nov 17 12:55:22 2025 +0800

    cmdpal: Fix launch by button in settings not work (#43634)

    <!-- 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
    Shell does not know it's a protocol, so add protocol to it.

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

commit 34c37f2d38
Author: Kai Tao <69313318+vanzue@users.noreply.github.com>
Date:   Mon Nov 17 09:48:32 2025 +0800

    Add not signed dll (#43631)

    <!-- 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 dll is not signed, will fail the pipeline

    <!-- 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 47aed03c03
Author: Niels Laute <niels.laute@live.nl>
Date:   Sun Nov 16 15:13:40 2025 +0100

    [AP] Loc fix (#43617)

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

    - [ ] 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 6423c7693d
Author: Niels Laute <niels.laute@live.nl>
Date:   Sun Nov 16 15:02:38 2025 +0100

    [CmdPal] Settings page refresh (#43487)

    - Refreshed the CmdPal page.
    - CmdPal can now also be activated from this page by clicking a button
    - Added a Preview InfoBar for FL in AP

    <img width="1384" height="1067" alt="image"
    src="https://github.com/user-attachments/assets/f670e13b-5b4a-4f6a-bcb0-e1dc357afb1e"
    />

    ## Summary of the Pull Request

    <!-- 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
    - [ ] **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

    ---------

    Co-authored-by: vanzue <vanzue@outlook.com>

commit 3e14d50f65
Author: Kai Tao <69313318+vanzue@users.noreply.github.com>
Date:   Sun Nov 16 15:26:05 2025 +0800

    Advanced paste: Add more error handle for foundry local (#43600)

    <!-- 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
    Foundry local sdk will not run models that is not in catalog, when
    catalog removes some, the old ones will fail executing,
    so add error hint for users to re-configure the models in settings.

    <!-- 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
    <img width="864" height="216" alt="image"
    src="https://github.com/user-attachments/assets/654207b3-ff50-4888-a638-82136216de7b"
    />

commit db7c9e180e
Author: Jaylyn Barbee <51131738+Jaylyn-Barbee@users.noreply.github.com>
Date:   Sat Nov 15 08:08:20 2025 -0500

    [Light Switch] Removed logs from every tick, only logging key events. (#43572)

    Title

commit bcc3ded280
Author: Michael Jolley <mike@baldbeardedbuilder.com>
Date:   Sat Nov 15 07:07:52 2025 -0600

    CmdPal: Adding page Id to OpenPage telemetry event (#43584)

    @niels9001 requested this.

    As the name says

commit 24a3cdd486
Author: Mario Hewardt <marioh@microsoft.com>
Date:   Fri Nov 14 17:36:31 2025 -0800

    Fixes regressions introduced with GIF support (#43589)

    <!-- 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)?
    -->
    ## Fixes regressions introduced with GIF support:
    - Switches default recording format back to MP4
    - Fixes framerate issues between the two formats
    - Fixes file path names

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

    - [ ] Closes: #xxx
    <!-- - [ ] 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
    - Switches default recording format back to MP4
    - Fixes framerate issues between the two formats
    - Fixes file path names
    -
    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->
    ## Validation Steps Performed
    Manual testing

commit 1884e6abc1
Author: Shawn Yuan <128874481+shuaiyuanxx@users.noreply.github.com>
Date:   Fri Nov 14 16:56:23 2025 +0800

    Remove unused properties in AP (#43564)

    <!-- 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 removes legacy provider configuration migration logic
    and associated data structures from the Advanced Paste AI provider
    settings. The changes simplify the codebase by eliminating support for
    legacy provider configuration snapshots and related migration methods,
    focusing configuration management on the current provider model.

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

    ---------

    Signed-off-by: Shawn Yuan (from Dev Box) <shuaiyuan@microsoft.com>

commit ad4b553bb1
Author: leileizhang <leilzh@microsoft.com>
Date:   Fri Nov 14 16:15:15 2025 +0800

    Remove all AdvancedPaste stored keys during uninstall (#43563)

    <!-- 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
    Remove all AdvancedPaste stored keys during uninstall
    <!-- 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 193d9aacbe
Author: Dustin L. Howett <duhowett@microsoft.com>
Date:   Thu Nov 13 17:59:21 2025 -0600

    BugReportTool: replace cziplib with tar.exe (#41127)

    BugReportTool is the last consumer in the PowerToys repo of cziplib, a
    library we use to produce ZIP files.

    This pull request replaces cziplib with a simple CreateProcess call that
    spawns `tar.exe`, which comes with Windows as of RS4 and can produce ZIP
    files!

    I've tested this by producing a bug report archive and attempting to
    open it with File Explorer. It works fine.

    We have taken every precaution to ensure that we do not allow any
    attacker-controlled input to tar's command line. We are *not* using
    `system()`, and we are not opening up a vector through which a nefarious
    caller can perform shell injection.

    We do not pass filenames to tar except that of the final archive. We do
    not pass directory names to tar; we rely on the current directory
    instead.
2025-12-08 18:41:48 -08:00
Gleb Khmyznikov
5e9dd15f14 Squashed commit of the following:
commit 32c13cead4
Author: Jiří Polášek <me@jiripolasek.com>
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 33808fdb9c
Author: Jiří Polášek <me@jiripolasek.com>
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 f510be4c53
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="1af3b93b68"><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="71cf2267d8"><code>71cf226</code></a>
    v6-beta (<a
    href="https://redirect.github.com/actions/checkout/issues/2298">#2298</a>)</li>
    <li><a
    href="069c695914"><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="ff7abcd0c3"><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="08c6903cd8"><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="9f265659d3"><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="08eba0b27e"><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="631c7dc4f8"><code>631c7dc</code></a>
    Update package dependencies (<a
    href="https://redirect.github.com/actions/checkout/issues/2236">#2236</a>)</li>
    <li><a
    href="8edcb1bdb4"><code>8edcb1b</code></a>
    Update CODEOWNERS for actions (<a
    href="https://redirect.github.com/actions/checkout/issues/2224">#2224</a>)</li>
    <li><a
    href="09d2acae67"><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] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 4d3c223402
Author: Jiří Polášek <me@jiripolasek.com>
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 1ba5a258e9
Author: Jiří Polášek <me@jiripolasek.com>
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 8aea589b01
Author: Jiří Polášek <me@jiripolasek.com>
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 afd9d4cc3c
Author: Clint Rutkas <clint@rutkas.com>
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 bc0a760aff
Author: Jiří Polášek <me@jiripolasek.com>
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 06afe09973
Author: Michael Jolley <mike@baldbeardedbuilder.com>
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 <niels.laute@live.nl>
    Co-authored-by: Jiří Polášek <me@jiripolasek.com>

commit 0de60445ea
Author: Jiří Polášek <me@jiripolasek.com>
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 47d4a65223
Author: Jiří Polášek <me@jiripolasek.com>
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 1b72c0b969
Author: Kai Tao <69313318+vanzue@users.noreply.github.com>
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 9160c82fc2
Author: Pratyush Nalam <github@code.pratyushnalam.com>
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 452e0dcf51
Author: Mike Hall <mikehall@microsoft.com>
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 2c9a9e9fca
Author: Jiří Polášek <me@jiripolasek.com>
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 09c8c1d79a
Author: leileizhang <leilzh@microsoft.com>
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 95c8a83f79
Author: leileizhang <leilzh@microsoft.com>
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 2830ea919c
Author: Kai Tao <69313318+vanzue@users.noreply.github.com>
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 725ad21952
Author: Dave Rayment <dave.rayment@gmail.com>
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 ebc3a139c5
Author: Erik Anderson <erik.anderson@microsoft.com>
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 <erikan@ntdev.microsoft.com>

commit 28dba2633e
Author: Jaylyn Barbee <51131738+Jaylyn-Barbee@users.noreply.github.com>
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 <niels.laute@live.nl>

commit 9fbd3de3a2
Author: Jiří Polášek <me@jiripolasek.com>
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 4a0d9912ae
Author: Kai Tao <69313318+vanzue@users.noreply.github.com>
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 15c79a0176
Author: Dave Rayment <dave.rayment@gmail.com>
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,
    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 -->
    - Confirmed the changed descriptions were updated in Settings.

commit 97d46efec2
Author: Dave Rayment <dave.rayment@gmail.com>
Date:   Wed Nov 19 08:49:40 2025 +0000

    [Settings] Fix Dashboard toggle glitches and sorting UI (#43626)
    Fixes two UI bugs in the Settings Dashboard: module list glitching when
    toggling modules, and incorrect sort menu checkmarks.

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

    - [x] Closes: #43624
    - [x] Closes: #43625
    - [ ] **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 -->
    When enabling or disabling a module from the "Utilities" list, the
    entire list would flicker and redraw, causing other toggles to glitch.
    This made it appear as if multiple modules were being affected by a
    single change.

    **Root cause**
    The `AllModules` ObservableCollection was being completely cleared and
    re-populated on every change, forcing the UI to destroy and recreate all
    list items.

    **Fix**
    Refactored collection updates to modify items in-place:
    - Introduced `_moduleItems` master list, built once during
    initialization.
    - `RefreshModuleList()` now updates properties without clearing
    collections
    - `SortModuleList()` uses `ObservableCollection.Move()` instead of
    `Clear()`/`Add()`
    The checkmark in the "Sort by" menu would not update correctly when
    changing sort order, sometimes showing the incorrect item checked, or
    even both at once.

    **Root cause**
    The `IsChecked` prop on the `ToggleMenuFlyoutItem` is bound to
    `DashboardSortOrder`, but the binding was not updating because the
    ViewModel didn't raise a property change notification when the sort
    order was changed.

    **Fix**
    Added `OnPropertyChanged(nameof(DashboardSortOrder))` in
    `SortModuleList()`.

    1. Renamed `GetShortcutModules()` to `RefreshShortcutModules()`. The
    original name implied a getter, but the routine actually affects state
    by rebuilding the shortcut and action lists, violating the Command-Query
    Separation principle.
    2. Added an `_isUpdatingFromUI` flag as a defensive measure against
    circular updates when a UI toggle is changed.
    3. Separation of concerns for operations on the modules list. Building,
    sorting and refreshing it are separated.
    4. Added comments and XML doc headers for new methods. Included brief
    description of GPO locking behaviour.

    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->
    - Verified that toggling modules in the list no longer causes the list
    to flicker or for other toggles to glitch.
    - Confirmed that the sort order checkmarks update correctly and reflect
    the current sort order.
    - Tested GPO policy settings are still queried as before.
    - Checked sort behaviour is unaffected.

    *Sorting UI*

    https://github.com/user-attachments/assets/3484bf63-2946-4460-83a5-361fa7e41c82

    *Toggle behaviour*

    https://github.com/user-attachments/assets/1fae5429-6fa3-4431-80f3-0907dab4f326

    ---------

    Co-authored-by: Gordon Lam (SH) <yeelam@microsoft.com>

commit 46242b384e
Author: Kai Tao <69313318+vanzue@users.noreply.github.com>
Date:   Wed Nov 19 16:25:52 2025 +0800

    96 release change log (#43330)

    <!-- 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
    - [ ] **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 -->

    ---------

    Signed-off-by: Shawn Yuan (from Dev Box) <shuaiyuan@microsoft.com>
    Signed-off-by: Shawn Yuan <shuai.yuan.zju@gmail.com>
    Co-authored-by: Jiří Polášek <me@jiripolasek.com>
    Co-authored-by: Jaylyn Barbee <51131738+Jaylyn-Barbee@users.noreply.github.com>
    Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>
    Co-authored-by: leileizhang <leilzh@microsoft.com>
    Co-authored-by: Shawn Yuan <128874481+shuaiyuanxx@users.noreply.github.com>
    Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
    Co-authored-by: niels9001 <9866362+niels9001@users.noreply.github.com>
    Co-authored-by: Niels Laute <niels.laute@live.nl>
    Co-authored-by: Dave Rayment <dave.rayment@gmail.com>
    Co-authored-by: Gleb Khmyznikov <gleb.khmyznikov@gmail.com>
    Co-authored-by: Gordon Lam (SH) <yeelam@microsoft.com>
    Co-authored-by: Juju Anselum J <106316316+anselumjuju@users.noreply.github.com>
    Co-authored-by: Dustin L. Howett <duhowett@microsoft.com>
    Co-authored-by: Leon Zandman <leon@wirwar.com>
    Co-authored-by: Leon Zandman <lzandman@rdw.nl>
    Co-authored-by: moooyo <42196638+moooyo@users.noreply.github.com>
    Co-authored-by: Yu Leng <yuleng@microsoft.com>
    Co-authored-by: Mike Griese <migrie@microsoft.com>
    Co-authored-by: Michael Jolley <mike@baldbeardedbuilder.com>
    Co-authored-by: Mario Hewardt <marioh@microsoft.com>
    Co-authored-by: Alex Mihaiuc <69110671+foxmsft@users.noreply.github.com>
    Co-authored-by: Mike Hall <mikehall@microsoft.com>
    Co-authored-by: Trevor <ngo.trev.95@gmail.com>

commit 84be261581
Author: Niels Laute <niels.laute@live.nl>
Date:   Tue Nov 18 19:19:38 2025 -0800

    Logo change for Azure Inference (#43686)

    <!-- 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 5a8095b704
Author: Niels Laute <niels.laute@live.nl>
Date:   Tue Nov 18 18:32:14 2025 -0800

    Loc bug (#43685)

    <!-- 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 417c1a6b98
Author: Niels Laute <niels.laute@live.nl>
Date:   Tue Nov 18 16:21:14 2025 -0800

    Update FoundryLocal.svg (#43682)

    <!-- 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 2593149d22
Author: leileizhang <leilzh@microsoft.com>
Date:   Tue Nov 18 14:22:03 2025 +0800

    Fix OOBE Mouse Utilities crash by correcting localization key (#43664)

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

    - The OOBE Mouse Utilities page crashed when selected because the
    TextBlock with x:Uid="Oobe_MouseUtils_MousePointerCrosshairs" tried to
    bind a Description property that doesn’t exist.
    - Updated Resources.resw so the string entry is named
    Oobe_MouseUtils_MousePointerCrosshairs_Description.Text, matching the
    markdown description control instead of the TextBlock.
    - With the correct resource key, the XAML loader no longer resolves an
    invalid property and navigation succeeds.

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

    - [x] Closes:  #43663
    <!-- - [ ] 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 0b50c38fe1
Author: Kai Tao <69313318+vanzue@users.noreply.github.com>
Date:   Tue Nov 18 12:59:52 2025 +0800

    Advanced Paste: Refresh environment if foundry is not present (#43662)

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

    [12:55:29.6763496] [Info] FoundryClient.cs::CreateAsync::23
        [FoundryClient] First attempt failed, refreshing PATH and retrying
    [12:55:29.6766491] [Info] FoundryClient.cs::RefreshEnvironmentPath::225
        [FoundryClient] Refreshing PATH environment variable from system
    [12:55:29.6768710] [Info] FoundryClient.cs::RefreshEnvironmentPath::266
        [FoundryClient] Updating process PATH with latest system values
    [12:55:29.6769080] [Info] FoundryClient.cs::TryCreateClientAsync::33
        [FoundryClient] Creating Foundry Local client
    [12:55:29.6769312] [Info] FoundryClient.cs::TryCreateClientAsync::45
    [FoundryClient] Starting Foundry service using
    manager.StartServiceAsync()
    [12:55:29.9807668] [Info] FoundryClient.cs::TryCreateClientAsync::48
        [FoundryClient] Foundry service started successfully

    Verified, fist launch successfully

commit 840808b465
Author: Niels Laute <niels.laute@live.nl>
Date:   Tue Nov 18 03:28:40 2025 +0100

    [AP] Adding a single scrollviewer and fixing hidden tabstop (#43660)

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

    - [x] Closes: #43655
    <!-- - [ ] 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 b50df36b70
Author: Jiří Polášek <me@jiripolasek.com>
Date:   Tue Nov 18 03:00:37 2025 +0100

    Setup: Hide apps in PowerToys.SpareApps package from Start Menu (#43650)

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

    This PR updates the Appx manifest for PowerToys.SpareApps to hide the
    apps from the Start Menu, as they lack proper visual elements like icons
    and text.

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

    - [x] Closes: #43647
    <!-- - [ ] 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 b94593ef73
Author: Jiří Polášek <me@jiripolasek.com>
Date:   Tue Nov 18 00:55:14 2025 +0100

    Settings: Add ScrollViewer to Command Palette page in PowerToys Settings (#43649)

commit 7a01d56179
Author: Mario Hewardt <marioh@microsoft.com>
Date:   Mon Nov 17 07:26:42 2025 -0800

    Updates version for standalone release (#43645)

    <!-- 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)?
    -->
    Updates the version for standalone 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 130e9a0a68
Author: Kai Tao <69313318+vanzue@users.noreply.github.com>
Date:   Mon Nov 17 12:55:22 2025 +0800

    cmdpal: Fix launch by button in settings not work (#43634)

    <!-- 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)?
    -->
    Shell does not know it's a protocol, so add protocol to it.

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

commit 34c37f2d38
Author: Kai Tao <69313318+vanzue@users.noreply.github.com>
Date:   Mon Nov 17 09:48:32 2025 +0800

    Add not signed dll (#43631)

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

    This dll is not signed, will fail the pipeline

    <!-- 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 47aed03c03
Author: Niels Laute <niels.laute@live.nl>
Date:   Sun Nov 16 15:13:40 2025 +0100

    [AP] Loc fix (#43617)

    <!-- 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 6423c7693d
Author: Niels Laute <niels.laute@live.nl>
Date:   Sun Nov 16 15:02:38 2025 +0100

    [CmdPal] Settings page refresh (#43487)

    - Refreshed the CmdPal page.
    - CmdPal can now also be activated from this page by clicking a button
    - Added a Preview InfoBar for FL in AP

    <img width="1384" height="1067" alt="image"
    src="https://github.com/user-attachments/assets/f670e13b-5b4a-4f6a-bcb0-e1dc357afb1e"
    />

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

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

    ---------

    Co-authored-by: vanzue <vanzue@outlook.com>

commit 3e14d50f65
Author: Kai Tao <69313318+vanzue@users.noreply.github.com>
Date:   Sun Nov 16 15:26:05 2025 +0800

    Advanced paste: Add more error handle for foundry local (#43600)

    <!-- 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)?
    -->
    Foundry local sdk will not run models that is not in catalog, when
    catalog removes some, the old ones will fail executing,
    so add error hint for users to re-configure the models in settings.

    <!-- 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 -->
    <img width="864" height="216" alt="image"
    src="https://github.com/user-attachments/assets/654207b3-ff50-4888-a638-82136216de7b"
    />

commit db7c9e180e
Author: Jaylyn Barbee <51131738+Jaylyn-Barbee@users.noreply.github.com>
Date:   Sat Nov 15 08:08:20 2025 -0500

    [Light Switch] Removed logs from every tick, only logging key events. (#43572)

    Title

commit bcc3ded280
Author: Michael Jolley <mike@baldbeardedbuilder.com>
Date:   Sat Nov 15 07:07:52 2025 -0600

    CmdPal: Adding page Id to OpenPage telemetry event (#43584)

    @niels9001 requested this.

    As the name says

commit 24a3cdd486
Author: Mario Hewardt <marioh@microsoft.com>
Date:   Fri Nov 14 17:36:31 2025 -0800

    Fixes regressions introduced with GIF support (#43589)

    <!-- 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)?
    -->
    - Switches default recording format back to MP4
    - Fixes framerate issues between the two formats
    - Fixes file path names

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

    - [ ] Closes: #xxx
    <!-- - [ ] 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 -->
    - Switches default recording format back to MP4
    - Fixes framerate issues between the two formats
    - Fixes file path names
    -
    <!-- Describe how you validated the behavior. Add automated tests
    wherever possible, but list manual validation steps taken as well -->
    Manual testing

commit 1884e6abc1
Author: Shawn Yuan <128874481+shuaiyuanxx@users.noreply.github.com>
Date:   Fri Nov 14 16:56:23 2025 +0800

    Remove unused properties in AP (#43564)

    <!-- 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)?
    -->
    This pull request removes legacy provider configuration migration logic
    and associated data structures from the Advanced Paste AI provider
    settings. The changes simplify the codebase by eliminating support for
    legacy provider configuration snapshots and related migration methods,
    focusing configuration management on the current provider model.

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

    ---------

    Signed-off-by: Shawn Yuan (from Dev Box) <shuaiyuan@microsoft.com>

commit ad4b553bb1
Author: leileizhang <leilzh@microsoft.com>
Date:   Fri Nov 14 16:15:15 2025 +0800

    Remove all AdvancedPaste stored keys during uninstall (#43563)

    <!-- 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 all AdvancedPaste stored keys during uninstall
    <!-- 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 193d9aacbe
Author: Dustin L. Howett <duhowett@microsoft.com>
Date:   Thu Nov 13 17:59:21 2025 -0600

    BugReportTool: replace cziplib with tar.exe (#41127)

    BugReportTool is the last consumer in the PowerToys repo of cziplib, a
    library we use to produce ZIP files.

    This pull request replaces cziplib with a simple CreateProcess call that
    spawns `tar.exe`, which comes with Windows as of RS4 and can produce ZIP
    files!

    I've tested this by producing a bug report archive and attempting to
    open it with File Explorer. It works fine.

    We have taken every precaution to ensure that we do not allow any
    attacker-controlled input to tar's command line. We are *not* using
    `system()`, and we are not opening up a vector through which a nefarious
    caller can perform shell injection.

    We do not pass filenames to tar except that of the final archive. We do
    not pass directory names to tar; we rely on the current directory
    instead.
2025-12-01 15:44:53 -08:00
Kai Tao
5e3e0660e7 Revert hybrid crt to make powertoys quit safely (#43484)
<!-- 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
After enabling Hybrid CRT, the PowerToys process failed to properly
unload some module interface DLLs when quit application. The root cause
is still unclear, but this change reverts the behavior to ensure safe
unloading.

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

- [ ] Closes: #43413
- [ ] **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
Can unload dll safely when quit powertoys
2025-11-12 10:39:21 +08:00
leileizhang
e1edcc13b7 Fix the issue where the InstallLocation is missing after upgrading (#43462)
<!-- 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
**Root Cause**

The issue occurs because the Installed property in MSI indicates whether
the current product code has been installed on the machine.
During a Major Upgrade (where the old and new versions have different
ProductCode values), the installation sequence is:
1. Burn schedules uninstall of the old MSI (the old version might not
have this custom action).
2. Then installs the new MSI.
> - At this point, the current product has not yet been installed, so
the Installed property is empty.
> - The condition NOT Installed evaluates to true, and
SetBundleInstallLocationData / SetBundleInstallLocation executes
normally, writing the InstallLocation registry key.

This means upgrading from an older version without this function to a
newer version with it works correctly.
However, issues appear in subsequent upgrades (from “newer” → “newer”)
because both versions include the same custom action.
The previous condition restricted the action to run only on first
install, preventing it from running during upgrades.

**Fix**

Added `OR WIX_UPGRADE_DETECTED` to the condition of
SetBundleInstallLocationData / SetBundleInstallLocation custom actions,
so they also execute during upgrade scenarios, ensuring the
InstallLocation registry value is correctly updated after version
upgrades.

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

- [x] Closes: #43451
- [ ] **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
2025-11-11 20:07:58 +08:00
leileizhang
fabf60d18f Add DSC v3 resource discovery support in PowerToys with subfolder structure and PATH configuration (#43253)
<!-- 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

- Use DSCModules subfolder for JSON manifest files
- Use relative path "..\PowerToys.DSC.exe" in JSON manifests
- Configure PATH environment variable to point to DSCModules subfolder

<!-- 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
- [ ] **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
2025-11-06 12:08:41 +08:00
leileizhang
7fb1cdd1ea Remove PowerToys installer path from PATH to prevent some other apps crashe (#43157)
<!-- 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
To support DSCv3, we previously added the PowerToys installer path to
the environment PATH. However, this change may cause some other
applications to crash.

This PR removes the installer path temporarily until we find a better
way to support DSCv3.

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

- [x] Closes: #42919
- [ ] **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
2025-11-06 10:14:23 +08:00
Shawn Yuan
a3b8dc6cb8 Advanced Paste: AI pasting enhancement (#42374)
<!-- 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 multiple endpoint support for paste with AI
* Add Local AI support for paste AI
* Advanced AI implementation

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

- [x] Closes: #32960
- [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
- [x] **Localization:** All end-user-facing strings can be localized
- [x] **Dev docs:** Added/updated
- [x] **New binaries:** Added on the required places
- [x] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [x] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [x] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [x] [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

### GPO
- [x] Paste with AI should not be available if the original GPO for
paste AI is set to false
   - [x] Paste with AI should be controlled within endpoint granularity
- [x] Advanced Paste UI should disable AI ability if GPO is set to
disable for any llm
### Paste AI
   - [x] Every AI endpoint should work as expected
   - [x] Default prompt should be able to give a reasonable result
   - [x] Local AI should work as expected
### Advanced AI
- [x] Open AI and Azure OPENAI should be able to configure as advanced
AI endpoint
- [x] Advanced AI should be able to pick up functions correctly to do
the transformation and give reasonable result

---------

Signed-off-by: Shawn Yuan <shuaiyuan@microsoft.com>
Signed-off-by: Shuai Yuan <shuai.yuan.zju@gmail.com>
Signed-off-by: Shawn Yuan (from Dev Box) <shuaiyuan@microsoft.com>
Co-authored-by: Leilei Zhang <leilzh@microsoft.com>
Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Kai Tao <kaitao@microsoft.com>
Co-authored-by: Kai Tao <69313318+vanzue@users.noreply.github.com>
Co-authored-by: vanzue <vanzue@outlook.com>
Co-authored-by: Gordon Lam (SH) <yeelam@microsoft.com>
2025-11-05 16:13:55 +08:00
Kai Tao
c364aa7c70 Cmdpal: Bring vcruntime in cmdpal (#43255)
<!-- 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
Cmdpal has dependency on vcruntime appx package due to adaptive card,
bring that dependency in

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

- [x] Closes: #42497
- [ ] **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
<img width="1873" height="1183" alt="image"
src="https://github.com/user-attachments/assets/d416d09f-f4d6-456c-a625-ca724a69b5ee"
/>

---------

Co-authored-by: Jiří Polášek <me@jiripolasek.com>
2025-11-05 09:51:25 +08:00
Dustin L. Howett
0b0ad68b60 build: build the Machine and User installers at the same time (#42888) 2025-10-31 00:28:12 -05:00
Kai Tao
c71fdca277 Hybrid CRT for powertys (#42073)
<!-- 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-->
Hybrid CRT across powertoys for better bundle size

## 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
- [ ] **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
Bundle Size comparasion:

| bundle        | Before Hybrid CRT | After Hybrid CRT | diff |
|---------------|-------------------|------------------|------|
| x64-user      | 317M              | 310M             | 7M   |
| x64-machine   | 317M              |310M             | 7M   |
| arm64-user    | 305M              | 299M             | 6M   |
| arm64-machine | 305M              | 299M             | 6M   |


Did verification on a sandbox machine, every module launches as
expected, no dependency issue
2025-10-24 10:24:39 +08:00
leileizhang
b1985bc8d1 Introduce shared sparse package identity for PowerToys (#42352)
<!-- 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 building, installing, and managing a
shared sparse MSIX package to grant package identity to select Win32
components in PowerToys. It introduces a new `PackageIdentity` project,
updates the installer to handle the new MSIX package during
install/uninstall, and provides developer documentation for working with
the sparse package. Additionally, new dependencies and signing rules are
included to support these changes.

**Sparse Package Identity Support**

* Added new `PackageIdentity` project to the solution for building the
sparse MSIX package, and included it in solution/project build
configurations (`PowerToys.sln`).
[[1]](diffhunk://#diff-ca837ce490070b91656ffffe31cbad8865ba9174e0f020231f77baf35ff3f811R29)
[[2]](diffhunk://#diff-ca837ce490070b91656ffffe31cbad8865ba9174e0f020231f77baf35ff3f811R54-R55)
[[3]](diffhunk://#diff-ca837ce490070b91656ffffe31cbad8865ba9174e0f020231f77baf35ff3f811R873-R880)
* Added developer documentation (`sparse-package.md`) and updated
documentation indexes to describe how to build, register, and consume
the sparse MSIX package.
[[1]](diffhunk://#diff-b4e39fb55a49c6de336d5847d75a55dd1d14840578da0ed9130f0130b61b34aaR1-R87)
[[2]](diffhunk://#diff-d0f204e503506a26ef2aa3605a8d64ac353393526fb5dcf48d4287c821f3edbcR31)
[[3]](diffhunk://#diff-430296c8d28f70d8a0164b44d7dfc30ffb1fb32466dad181947f35885b7f28d1R13)

**Installer Enhancements**

* Implemented new custom actions in the installer to install and
uninstall the `PowerToysSparse.msix` package, supporting both per-user
and machine-level scenarios (`CustomAction.cpp`, `CustomAction.def`,
`Product.wxs`).
[[1]](diffhunk://#diff-a7680a20bf0315cff463a95588a100c99d2afc53030f6e947f1f1dcaca5eefd7R597-R806)
[[2]](diffhunk://#diff-79daec0ccfcea63a2f3acb7d811b8b508529921123c754111bbccbea98b2bd74R36-R37)
[[3]](diffhunk://#diff-c12203517db7cde9ad34df9e6611457d1d3c7bc8eb7d58e06739887d3c1034afR115)
[[4]](diffhunk://#diff-c12203517db7cde9ad34df9e6611457d1d3c7bc8eb7d58e06739887d3c1034afR127)
[[5]](diffhunk://#diff-c12203517db7cde9ad34df9e6611457d1d3c7bc8eb7d58e06739887d3c1034afR149)
[[6]](diffhunk://#diff-c12203517db7cde9ad34df9e6611457d1d3c7bc8eb7d58e06739887d3c1034afR205-R210)

**Build and Dependency Updates**

* Added new NuGet package dependencies for Windows App SDK AI and
Runtime to support MSIX and sparse package features
(`Directory.Packages.props`).
* Updated signing pipeline to include the new `PowerToysSparse.msix`
artifact (`.pipelines/ESRPSigning_core.json`).
<!-- 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
- [ ] **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

---------

Co-authored-by: Gordon Lam (SH) <yeelam@microsoft.com>
2025-10-20 08:52:49 +08:00
Copilot
63da56fae0 Remove WiX v3 infrastructure and migrate exclusively to WiX v5 (#41975)
## Summary:

This pull request refactors the installer build pipeline to simplify and
modernize the process, focusing exclusively on the WiX 5 (VNext)
installer and removing legacy WiX 3 support. It eliminates the use of
the `installerSuffix` parameter and related logic, removes the legacy
installer build steps and scripts, and updates documentation to reflect
the new architecture. The changes streamline the pipeline, reduce
complexity, and ensure only the latest installer is built and signed.

Pipeline and build system simplification:

* Removed the `installerSuffix` parameter and all related logic from
pipeline templates and YAML files, including file naming, build steps,
and hash calculation scripts.
* Removed legacy WiX 3 installer build steps and the associated script
`installWiX.ps1`, focusing exclusively on WiX 5 (VNext) installer
builds.

Installer signing and build process updates:

* Updated `.pipelines/ESRPSigning_installer.json` to remove signing
configuration for the legacy `PowerToysSetupCustomActions.dll`, ensuring
only the VNext DLL is signed.

Documentation updates:

* Updated `doc/devdocs/core/installer.md` to remove references to WiX 3,
clarify the installer architecture as WiX 5 only, and describe the new
build process.

## CheckList:
- [ ] Should Build successfully and produce installer for both per user
and per machine
- [ ] Should install without problem

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: vanzue <69313318+vanzue@users.noreply.github.com>
Co-authored-by: Kai Tao (from Dev Box) <kaitao@microsoft.com>
2025-10-16 16:39:50 -07:00
Jaylyn Barbee
0d5220561d [New Module] Light Switch (#41987)
<!-- 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 introduces a new module called "Light Switch" which
allows users to automatically switch between light and dark mode on a
timer.

![Light
Switch](https://github.com/user-attachments/assets/d24d7364-445f-4f23-ab5e-4b8c6a4147ab)

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

- [x] Closes: #1331
- [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
- [x] **Localization:** All end-user-facing strings can be localized
- [x] **Dev docs:** Added/updated
- [x] **New binaries:** Added on the required places
- [x] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [x] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [x] **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:
[#5867](https://github.com/MicrosoftDocs/windows-dev-docs-pr/pull/5867)

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

### Known bugs:
- Default settings not saving correctly when switching modes
- Issue: Sometimes when you switch from one mode to another, they are
supposed to update with new defaults but sometimes this fails for the
second variable. Potentially has to do with accessing the settings file
while another chunk of code is still updating.
- Sometimes the system looks "glitched" when switching themes

### To do:
- [x] OOBE page and assets
- [x] Logic to disable the chart when no location has been selected
- [x] Localization

### How to and what to test
Grab the latest installer from the pipeline below for your architecture
and install PowerToys from there.
- Toggle theme shortcutSystem only, Apps only, Both system and apps
selected
- Does changing the values on the settings page update the settings
file? %LOCALAPPDATA%/Microsoft/PowerToys/LightSwitch/settings.json
- Manual mode: System only, Apps only, Both system and apps selected
- Sunrise modes:  Are the times accurate?
- If you manage to let this run through sunset/rise does the theme
change?
- Set your theme to change within the next minute using manual mode and
set your device to sleepOpen your device and login once the time you set
has passed. --> Do your settings resync once the next minute ticks after
logging back into your device?
- Disable the service and ensure the tasks actually ends.
- While the module is disabled:
     - Make sure the shortcut no longer works
     - Make sure the last time you set doesn't trigger a theme change
- Bonus: Toggle GPO Configuration and make sure you are unable to enable
the module

---------

Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Gordon Lam (SH) <yeelam@microsoft.com>
2025-10-06 13:44:07 -07:00
AmirMS
f1367bfa17 Initial DSC v3 support for PowerToys (#41132)
<!-- 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

Tasks checklist
- [X] Implement DSC infra in PowerToys
- [X] Implement Settings DSC resource
  - [X] Implement Get, Set, Test, Export, Schema
  - [X] Generate manifest (DSC resource JSON)
- [X] Added Unit Tests
- [x] Add `NJsonSchema` v11.4.0 to the stream
- [x] Package the manifest files so dsc.exe can discover them
- [x] Add `PowerToys.DSC.exe` to the PATH (maybe?)
- [x] Add `InstallLocation` in the registry key so `winget configue
export` can export the PowerToys DSC resources
<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [X] Closes: #37276
- [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
- [X] **Localization:** All end-user-facing strings can be localized
- [x] **Dev docs:** Added/updated
- [x] **New binaries:** Added on the required places
- [x] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [x] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [x] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [x] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [x] **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

---------

Co-authored-by: vanzue <vanzue@outlook.com>
Co-authored-by: Kai Tao (from Dev Box) <kaitao@microsoft.com>
Co-authored-by: Leilei Zhang <leilzh@microsoft.com>
2025-09-28 15:12:51 +08:00
Gordon Lam
d0a67823e1 Add additional build and sign step for SilentFilesInUseBAFunction (#41853)
This pull request adds a new build and signing step for the
`SilentFilesInUseBAFunction` DLL in the installer pipeline and makes a
minor project configuration update. The main goal is to ensure that this
DLL is built and signed as part of the CI process, and that its output
is preserved during subsequent build steps.

**Pipeline changes:**

* Added a new build step in
`.pipelines/v2/templates/steps-build-installer-vnext.yml` to compile the
`SilentFilesInUseBAFunction` target from the `PowerToysSetup.sln`
solution, with appropriate MSBuild arguments and logging.
* Introduced a conditional code-signing step for the
`SilentFilesInUseBAFunction` DLL, using the existing ESRP signing
template and policies.
* Updated the comment for the main installer build step to clarify that
it now preserves both the MSI and `SilentFilesInUseBAFunction` outputs.

**Project configuration:**

* Set the `ProjectName` property to `PowerToysSetupCustomActionsVNext`
in `SilentFilesInUseBAFunction.vcxproj` for clearer project
identification.
2025-09-25 20:49:58 +08:00
Shawn Yuan
0cb7cc6df2 Upgrade WinAppSDK to 1.8 official release (#41723)
<!-- 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 primarily updates project dependencies to newer
versions, especially for the Windows App SDK and related packages, and
improves the build pipeline's logic for selecting MSIX packages. These
changes ensure compatibility with the latest SDK features and provide
more robust package selection during builds.



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

- [ ] Closes: #xxx
- [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
Dependency and SDK upgrades:

* Upgraded `Microsoft.WindowsAppSDK` and related packages (Base,
Foundation, WinUI, Runtime, DWrite, InteractiveExperiences, Widgets, AI)
to version 1.8.x in all relevant project files, including
`Directory.Packages.props`, `.vcxproj`, `.csproj`, and `packages.config`
files. This also involved updating import paths and error checks for the
new package structure.
[[1]](diffhunk://#diff-5baf5f9e448ad54ab25a091adee0da05d4d228481c9200518fcb1b53a65d4156L60-R61)
[[2]](diffhunk://#diff-76320b3a74a9241df46edb536ba0f817d7150ddf76bb0fe677e2b276f8bae95aL3-R9)
[[3]](diffhunk://#diff-76320b3a74a9241df46edb536ba0f817d7150ddf76bb0fe677e2b276f8bae95aL144-R156)
[[4]](diffhunk://#diff-76320b3a74a9241df46edb536ba0f817d7150ddf76bb0fe677e2b276f8bae95aL156-R181)
[[5]](diffhunk://#diff-d3a7d80ebbca915b42727633451e769ed2306b418ef3d82b3b04fd5f79560f17L7-R16)
[[6]](diffhunk://#diff-1a988d33c4d4db67a9c3316796dce4c068ccfbc40472b8c91a52e4b3208d98c3L12-R12)
[[7]](diffhunk://#diff-c287aa619c009edee184eefb9ecdb4e36dde33ae322725536c31f4a0566b382fL6-R14)
[[8]](diffhunk://#diff-c287aa619c009edee184eefb9ecdb4e36dde33ae322725536c31f4a0566b382fR209-R214)
* Updated `Microsoft.Web.WebView2` to version 1.0.3179.45 and
`Microsoft.Windows.SDK.BuildTools` to 10.0.26100.4948 in
`Directory.Packages.props`.
[[1]](diffhunk://#diff-5baf5f9e448ad54ab25a091adee0da05d4d228481c9200518fcb1b53a65d4156L48-R48)
[[2]](diffhunk://#diff-5baf5f9e448ad54ab25a091adee0da05d4d228481c9200518fcb1b53a65d4156L60-R61)

Build and packaging improvements:

* Enhanced the MSIX package selection logic in the build pipeline
(`job-build-project.yml`) to prioritize platform-specific packages
(x64/arm64) and provide clearer logging and error handling when no
packages are found.
* Modified `Microsoft.CmdPal.UI.csproj` to disable Appx bundling and set
a specific test directory for Appx packages during CI builds, improving
build output organization.

These updates help ensure the project stays current with the latest SDKs
and improves reliability and transparency in the build process.

<!-- 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: Shawn Yuan <shuaiyuan@microsoft.com>
Co-authored-by: Leilei Zhang <leilzh@microsoft.com>
2025-09-19 15:45:48 +08:00
Peiyao Zhao
64dc8e0f27 [Installer] Upgrade the installer from WiX3 to WiX5 (#40877)
<!-- 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
Background: The current PowerToys installer is built using Wix3, which
has now been deprecated. To improve security, service quality, and
community support, we’re upgrading the installer to Wix5.

Implementation:
Created Wix5-based projects(PowerToysSetupVext and
PowerToysSetupCustomActionsVNext) within the installer while retaining
the existing Wix3 project. Both versions are built to generate separate
installation packages. The Wix3-related code will be removed after
successful release testing confirms no issues.

Special case:
Wix5 has removed the property for 'ShowFilesInUse'. Now, whenever a file
is in use during installation, a FilesInUse pop-upwill automatically
appear asking for the next step. To ensure this doesn't interfere with
scenarios that require silent installation (e.g. Winget method), we’ve
handled it using the bafunction approach.



<!-- 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
- [ ] **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

---------

Co-authored-by: Jerry Xu <n.xu@outlook.com>
Co-authored-by: Kai Tao <69313318+vanzue@users.noreply.github.com>
Co-authored-by: leileizhang <leilzh@microsoft.com>
Co-authored-by: Kai Tao (from Dev Box) <kaitao@microsoft.com>
Co-authored-by: vanzue <vanzue@outlook.com>
2025-08-25 18:39:11 +08:00
leileizhang
8cb2e4eaf7 refactor: Replace WiX-based registration with conditional runtime registration for Win10 context menu modules (#41275)
<!-- 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
## Root Cause
WiX-based registration creates persistent Shell Extension entries that:
1. Load DLLs even when the module is disabled
2. Cause cross-OS version conflicts (Win11 loading Win10 extensions)

## Changes Made
1. Removed static Shell Extension registration from PowerToys installer
2. Modified modules to register Shell Extensions during Runner startup

### Modified Modules:
- **PowerRename** (`src/modules/powerrename/dll/dllmain.cpp`)
- **NewPlus**
(`src/modules/NewPlus/NewShellExtensionContextMenu/powertoys_module.cpp`)
- **ImageResizer** (`src/modules/imageresizer/dll/dllmain.cpp`)
- **FileLocksmith**
(`src/modules/FileLocksmith/FileLocksmithExt/PowerToysModule.cpp`)

## Known Migration Issue
**Machine-level installer registry residue**: win10 with machine-level
installers may have residual Shell Extension registry entries that
persist with this change.

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

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

## AI Summary
This pull request refactors how shell extension registry keys are
managed during installation and uninstallation for several PowerToys
modules. The main change is moving registry key cleanup logic for
context menu shell extensions (ImageResizer, FileLocksmith, PowerRename,
NewPlus) from static installer definitions to new custom uninstall
actions, ensuring more reliable removal and future extensibility.

**Installer and Uninstall Refactoring**

* Added new custom actions (`CleanImageResizerRuntimeRegistryCA`,
`CleanFileLocksmithRuntimeRegistryCA`,
`CleanPowerRenameRuntimeRegistryCA`, `CleanNewPlusRuntimeRegistryCA`) to
programmatically clean up registry keys for each shell extension during
uninstall, implemented in `CustomAction.cpp` and exported in
`CustomAction.def`.
[[1]](diffhunk://#diff-c502a81cdf8afa7a38f0f462709abcdbdfcc44beaa6227a1e64a26566c7e8876R1156-R1262)
[[2]](diffhunk://#diff-f941d599be5fe41667eda00338af694c0f2e65709d497a66487402f13e408200R31-R34)
* Registered these custom actions in `Product.wxs` and ensured they run
before file removal during uninstall.
[[1]](diffhunk://#diff-668b4388b55bb934d7ceccbfdd172f69257c9c607ca19cb9752d4a4940b69886R179-R190)
[[2]](diffhunk://#diff-668b4388b55bb934d7ceccbfdd172f69257c9c607ca19cb9752d4a4940b69886R454-R482)

**Removal of Static Registry Key Definitions**

* Removed static registry key and component definitions for context menu
shell extensions from their respective installer `.wxs` files
(`FileLocksmith.wxs`, `ImageResizer.wxs`, `PowerRename.wxs`,
`NewPlus.wxs`), relying on custom actions for cleanup instead.
[[1]](diffhunk://#diff-7cf9797f8cb6609049763b3b830f6c4a7a02ba5705eb090f7e06fb9c270ca74fL17-L31)
[[2]](diffhunk://#diff-7cf9797f8cb6609049763b3b830f6c4a7a02ba5705eb090f7e06fb9c270ca74fL41)
[[3]](diffhunk://#diff-c6d00805ce9de0eb3f4d42874dccac17be62f36c35d57e8f863b928b5f955d3aL19-L83)
[[4]](diffhunk://#diff-c6d00805ce9de0eb3f4d42874dccac17be62f36c35d57e8f863b928b5f955d3aL93)
[[5]](diffhunk://#diff-d0d69eff3f2d7982679465972b7d3c46dd8006314fb28f0e3a2371e2d5ccedb0L21-L33)
[[6]](diffhunk://#diff-d0d69eff3f2d7982679465972b7d3c46dd8006314fb28f0e3a2371e2d5ccedb0L43)
[[7]](diffhunk://#diff-4fd109f66b896577cad2860a829617ca902b33551afaaa8840372035ade2d3f3L17-L32)
[[8]](diffhunk://#diff-4fd109f66b896577cad2860a829617ca902b33551afaaa8840372035ade2d3f3L42)

**Project File Update**

* Added `shell_ext_registration.h` to the solution file, possibly for
future shell extension registration logic.

These changes improve uninstall reliability and centralize registry
cleanup logic, making future maintenance and extension of shell
extension registration much simpler.

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-21 18:10:30 +08:00
leileizhang
e8754e4cd6 Fix: Move ImageResizer satellite resource dlls under WinUI3Apps<culture> (#41152)
<!-- 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
### Root cause:
Problem Previously the installer installed ImageResizer satellite
assemblies into [INSTALLFOLDER]<culture>*.dll. The runtime probes
WinUI3Apps<culture>\ for WinUI3 app resource assemblies, so localization
failed.

### Fix:
Updated Resources.wxs: ImageResizer_$(var.IdSafeLanguage)_Component now
targets
Directory="Resource$(var.IdSafeLanguage)WinUI3AppsInstallFolder".

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

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

## AI Summary
This pull request updates the installer configuration in `Resources.wxs`
to support resource management for WinUI 3 apps. The main changes ensure
that resource directories and uninstall logic properly handle the new
`WinUI3AppsInstallFolder`, and update the component registration for
localized resources.

**Installer resource management updates:**

* Added `WinUI3AppsInstallFolder` to the list of parent directories for
resource file generation, ensuring resources for WinUI 3 apps are
included during installer builds.

**Component and uninstall logic updates:**

* Updated the `ImageResizer` component to register its resources under
`Resource$(var.IdSafeLanguage)WinUI3AppsInstallFolder` instead of the
default install folder, aligning with the new directory structure for
WinUI 3 apps.
* Added uninstall logic to remove the localized resource folder for
`WinUI3AppsInstallFolder`, ensuring cleanup of WinUI 3 app resources
during uninstall.
2025-08-18 10:18:47 +08:00
leileizhang
9a65c36859 Fix WiX component GUID conflict between BgcodePreviewHandler and GcodePreviewHandler (#40553)
<!-- 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 WiX installer build failure caused by GUID conflict between
`BgcodePreviewHandler` and `GcodePreviewHandler` components in the
Resources.wxs file.

### Root cause
Both `BgcodePreviewHandler` and `GcodePreviewHandler` components were
using the same GUID suffix `07`, causing WiX build errors due to
duplicate component GUIDs across all language variations.

### Fix
Changed `BgcodePreviewHandler` component GUID suffix from `07` to `22`
to ensure unique component identification.

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

- [x] **Closes:** #40552
- [ ] **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
2025-07-11 14:43:56 +08:00
Pedro Lamas
071f5d7bcc Adds BgcodeThumbnailProvider and BgcodePreviewHandler (#38667)
<!-- 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:** #30352
- [X] **Communication:** I've discussed this with core contributors
already. If work hasn't been agreed, this work might be rejected
- [X] **Tests:** Added/updated and all pass
- [X] **Localization:** All end user facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [X] **New binaries:** Added on the required places
- [X] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [X] [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


![image](https://github.com/user-attachments/assets/62c0cbbb-fbca-4bb3-82fe-696ba40da83d)


![image](https://github.com/user-attachments/assets/3f2f1346-91fb-4f49-85b9-8cd6e19e68e9)

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

- Close PowerToys if installed in your machine
- Full build the solution: PowerToys.sln
- Start PowerToys from PowerToys\x64\Debug\PowerToys.exe or
PowerToys\x64\Release\PowerToys.exe
- Toggle the "Binary G-code thumbnail previewer" setting to enable
- Open HelperFiles folder on the tests and check if the icon changes to
an image
- Check explorer preview to see if image is also shown there

---------

Co-authored-by: leileizhang <leilzh@microsoft.com>
2025-07-10 17:20:30 +08:00
leileizhang
7772bfb777 Fix: File explorer preview didn't work with per-user installation (#40314)
<!-- 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 Bug started when the Win11 context menu integration was first
introduced by Image Resizer in version v0.60.0.

Move Image Resizer to the WinUI3Apps folder to fix file preview issue
when PowerToys is installed on a non-C:\Program Files.
This aligns with the current structure used by File Locksmith and
PowerRename, which are not WinUI 3 apps either, but are already located
there.

### Root Cause:
When registering an MSIX package, the Windows API adds certain user
permissions to the installation folders. Since Image Resizer was
previously placed under the main PowerToys directory, these permission
changes could prevent Explorer from loading its preview handler properly
in per-user scenarios.


![image](https://github.com/user-attachments/assets/a8626314-19ce-4e25-87d6-d5e74a015e68)

Interestingly, this issue only affects per-user installs, not
machine-wide installs (e.g., to Program Files), even though both
locations receive additional permissions. The exact reason is still
unclear and requires further investigation.

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

- [x] **Closes:** #24384 #29644 #32113 #34139 #37866 #40345
- [ ] **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
2025-07-07 09:41:19 +08:00
Alexandre Zollinger Chohfi
4737ec987e Added basic support for Windows App Actions. (#39927)
## Summary of the Pull Request
Adds basic support for finding, listing, and executing Windows App
Actions on files found by the Microsoft.CmdPal.Ext.Indexer extension.

## PR Checklist

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

## Detailed Description of the Pull Request / Additional comments
We also update cswin32 to stable version.

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
Validated that it doesn't show on older versions of Windows (<26100
insiders) and that it does work on newer version that have the App
Actions runtime.

---------

Co-authored-by: Gordon Lam (SH) <yeelam@microsoft.com>
Co-authored-by: Mike Griese <migrie@microsoft.com>
Co-authored-by: Leilei Zhang <leilzh@microsoft.com>
2025-06-18 16:34:26 +08:00
Dustin L. Howett
a71cc282d3 cmdpal: use the unified Windows Terminal Versioning scheme (#39320)
This pull request adopts the unified versioning scheme used by Windows Terminal, Notepad, and hundreds of other internal and public projects that relied on "XES" or "PackageES".

It only does so for the command palette.

All command palette assets will be versioned according to the Major and Minor number in `src/modules/cmdpal/custom.props`. This includes DLLs, EXEs, NuGet packages and MSIX bundles.

This will ensure that all artifacts that we produce are versioned
properly:

| thing   | version (ex.)   |
|---------|-----------------|
| dll/exe | 0.2.2505.08001  |
| nupkg   | 0.2.250508001   |
| appx    | 0.2.3269.0      |

For reference, here's the version format:

### EXE, DLL, .NET Assembly

    0.2.2505.08001
    ^ ^  ^ ^  ^  ^
    | |  | |  |  `-Build # on that date
    | |  | |  `-Day
    | |  | `-Month
    | |  `-Year
    | `-Minor
    `-Major

### NuGet Package

    0.2.250508001
    ^ ^  ^ ^ ^  ^
    | |  | | |  `-Build # on that date
    | |  | | `-Day
    | |  | `-Month
    | |  `-Year
    | `-Minor
    `-Major

### AppX Package

    0.2.01281.0 (the leading 0 will be removed)
    ^ ^ ^  ^^ ^
    | | |  || `-Contractually always zero (a waste)
    | | |  |`-Build # on that date
    | | |  `-Number of days in [base year]
    | | `-Number of years since [base year]
    | `-Minor
    `-Major
    
    [base year] = $(XesBaseYearForStoreVersion)

It is expected that the base year is changed every time the version
number is changed.
2025-05-14 14:15:19 -05:00
Kai Tao
fc804a8156 [Tool] Script to build an installer locally (#39017)
* add script to build a installer

* minor fix

* fix search path for msix file

* fix sign

* fix sign

* fix spelling

* Fix powershell5 can't recognize emoji

* ensure-wix

* bring cmdpal available during local build

* remove early quit

* fix marco

* add logger

* doc

* add a note

* self review

* fix macro def

* add functionality to export cert so that other machine can install it.

* spelling
2025-04-25 09:57:42 +08:00
Kai Tao
6f43aac26a [CmdPal] [Install] do not install dependency if already satisfied. (#38531)
* do not install dependency if already satisfied.
* self contain winappsdk
2025-04-09 07:16:08 +08:00
Jaime Bernardo
048b07c1ce [Installer]Properly update CmdPal on upgrade (#38070)
* [Installer]Properly update CmdPal on upgrade

* Update installer/PowerToysSetupCustomActions/CustomAction.cpp
2025-03-21 10:39:27 +00:00
Mike Griese
f68f408be3 Add the Command Palette module (#37908)
Windows Command Palette ("CmdPal") is the next iteration of PowerToys Run. With extensibility at its core, the Command Palette is your one-stop launcher to start _anything_.

By default, CmdPal is bound to <kbd>Win+Alt+Space</kbd>.

![cmdpal-pr-002](https://github.com/user-attachments/assets/5077ec04-1009-478a-92d6-0a30989d44ac)
![cmdpal-pr-003](https://github.com/user-attachments/assets/63b4762a-9c19-48eb-9242-18ea48240ba0)

----

This brings the current preview version of CmdPal into the upstream PowerToys repo. There are still lots of bugs to work out, but it's reached the state we're ready to start sharing it with the world. From here, we can further collaborate with the community on the features that are important, and ensuring that we've got a most robust API to enable developers to build whatever extensions they want. 

Most of the built-in PT Run modules have already been ported to CmdPal's extension API. Those include:
* Installed apps
* Shell commands
* File search (powered by the indexer)
* Windows Registry search
* Web search
* Windows Terminal Profiles
* Windows Services
* Windows settings


There are a couple new extensions built-in
* You can now search for packages on `winget` and install them right from the palette. This also powers searching for extensions for the palette
* The calculator has an entirely new implementation. This is currently less feature complete than the original PT Run one - we're looking forward to updating it to be more complete for future ingestion in Windows
* "Bookmarks" allow you to save shortcuts to files, folders, and webpages as top-level commands in the palette. 

We've got a bunch of other samples too, in this repo and elsewhere

### PowerToys specific notes

CmdPal will eventually graduate out of PowerToys to live as its own application, which is why it's implemented just a little differently than most other modules. Enabling CmdPal will install its `msix` package. 

The CI was minorly changed to support CmdPal version numbers independent of PowerToys itself. It doesn't make sense for us to start CmdPal at v0.90, and in the future, we want to be able to rev CmdPal independently of PT itself. 


Closes #3200, closes #3600, closes #7770, closes #34273, closes #36471, closes #20976, closes #14495
  
  
-----

TODOs et al


**Blocking:**
- [ ] Images and descriptions in Settings and OOBE need to be properly defined, as mentioned before
  - [ ] Niels is on it
- [x] Doesn't start properly from PowerToys unless the fix PR is merged.
  - https://github.com/zadjii-msft/PowerToys/pull/556 merged
- [x] I seem to lose focus a lot when I press on some limits, like between the search bar and the results.
  - This is https://github.com/zadjii-msft/PowerToys/issues/427
- [x] Turned off an extension like Calculator and it was still working.
  - Need to get rid of that toggle, it doesn't do anything currently
- [x] `ListViewModel.<FetchItems>` crash
  - Pretty confident that was fixed in https://github.com/zadjii-msft/PowerToys/pull/553

**Not blocking / improvements:**
- Show the shortcut through settings, as mentioned before, or create a button that would open CmdPalette settings.
- When PowerToys starts, CmdPalette is always shown if enabled. That's weird when just starting PowerToys/ logging in to the computer with PowerToys auto-start activated. I think this should at least be a setting.
- Needing to double press a result for it to do the default action seems quirky. If one is already selected, I think just pressing should be enough for it to do the action.
  - This is currently a setting, though we're thinking of changing the setting even more: https://github.com/zadjii-msft/PowerToys/issues/392
- There's no URI extension. Was surprised when typing a URL that it only proposed a web search.
- [x] There's no System commands extension. Was expecting to be able to quickly restart the computer by typing restart but it wasn't there.
  - This is in PR https://github.com/zadjii-msft/PowerToys/pull/452  
  
---------

Co-authored-by: joadoumie <98557455+joadoumie@users.noreply.github.com>
Co-authored-by: Jordi Adoumie <jordiadoumie@microsoft.com>
Co-authored-by: Mike Griese <zadjii@gmail.com>
Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Michael Hawker <24302614+michael-hawker@users.noreply.github.com>
Co-authored-by: Stefan Markovic <57057282+stefansjfw@users.noreply.github.com>
Co-authored-by: Seraphima <zykovas91@gmail.com>
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
Co-authored-by: Kristen Schau <47155823+krschau@users.noreply.github.com>
Co-authored-by: Eric Johnson <ericjohnson327@gmail.com>
Co-authored-by: Ethan Fang <ethanfang@microsoft.com>
Co-authored-by: Yu Leng (from Dev Box) <yuleng@microsoft.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>
2025-03-19 01:39:57 -07:00
Jaime Bernardo
21fd5092b3 [New utility]Sysinternals ZoomIt (#35880)
* ZoomIt initial code dump

* Change vcxproj to normalize dependency versions

* Fix code quality to build

* Add to PowerToys solution

* Clean out C-style casts

* Fix some more analyzer errors

* Constexpr a function

* Disable some warnings locally that it seemed better not to touch

* Add ZoomIt module interface

* Add GPO

* Add Settings page with Enable button

* Output as PowerToys.ZoomIt.exe

* Extract ZoomIt Settings definition to its own header

* Make ZoomItModuleInterface build with ZoomItSettings too

* WinRT C++ interop for ZoomItSettings

* From Registry To PowerToys Json

* Properly fix const_cast analyzer error

* Initial Settings page loading from registry

* Zoom mode settings

* Save settings

* Add file picker and DemoType file support

* Remaining DemoType settings

* Have ZoomIt properly reloading Settings and exiting

* Remove context menu entries for Options and Exit

* ZoomIt simple Break Options

* Break advanced options

* Simple Record settings

* Record Microphone setting

* Fix break background file picker title

* Font setting

* Fix build issues after merge

* Add ZoomIt conflict warning to Settings

* Exclude Eula from spell checking

* Fix spellcheck errors

* Fix spell check for accelerated menu items

* Remove cursor files from spellcheck. They're binary

* Fix forbidden patterns

* Fix XAML style

* Fix C# analyzers

* Fix signing

* Also sign module interface dll

* Use actual ZoomIt icon

* Add OOBE page for ZoomIt

* ZoomIt image for Settings

* Flyout and Dashboard entries

* Fix type speed slider labels

* Correctly load default Font

* Correctly register shortcuts on ZoomIt startup first run

* Fix modifier keys not changing until restart

* Show MsgBox on taken shortcut

* Start PowerToys Settings

* Normalize ZoomIt file properties with rest of PowerToys

* Add attribution

* Add ZoomIt team to Community.md

* More copyright adjustments

* Fix spellcheck

* Fix MsgBox simultaneous instance to the front

* Add mention of capturevideosample code use

* Add ZoomIt to process lists

* Add telemetry

* Add logging

* React to gpo

* Normalize code to space identation

* Fix installer build

* Localize percent setting

* Fix XAML styling

* Update src/settings-ui/Settings.UI/Strings/en-us/Resources.resw

Co-authored-by: Stefan Markovic <57057282+stefansjfw@users.noreply.github.com>

* Fix spellcheck

* One more spellcheck fix

* Integrate LiveDraw feature changes from upstream

* Fix name reuse in same scope

* Fix c-style casts

* Also register LIVEDRAW_HOTKEY

* Fix newLiveZoomToggleKey

* Update LiveZoom description in Settings to take LiveDraw into account

* Fix spellcheck

* Fix more spellcheck

* Fix Sysinternals capitalization

* Fix ARM64 Debug build

* Support Sysinternals build (#36873)

* Remove unneeded files

* Make build compatible with Sysinternals

* Separate PowerToys ZoomIt product name (#36887)

* Separate PowerToys ZoomIt product name

To help maintain the Sysinternals branding in the standalone version.

* Clarify branding-related includes

* Remove ZoomIt.sln

* Add foxmsft to spell-check names

* Add ZoomIt to README

* Add ZoomIt to GH templates

* Add ZoomIt events to DATA_AND_PRIVACY.md

* Remove publish_config.json

* Remove publish_config.json from vcxproj too

---------

Co-authored-by: Mark Russinovich <markruss@microsoft.com>
Co-authored-by: Alex Mihaiuc <69110671+foxmsft@users.noreply.github.com>
Co-authored-by: John Stephens <johnstep@microsoft.com>
Co-authored-by: Stefan Markovic <57057282+stefansjfw@users.noreply.github.com>
2025-01-16 20:52:24 +00:00
Jaime Bernardo
12bb5c2131 [VCM]Deprecate the Video Conference Mute utility (#36772)
* Remove all VideoConferenceMute related code and files

* Clean up vcm driver registry keys

* Also remove the Webcam report tool

* Also clean out video conference on the installer

* Fix spellcheck

* Remove comment about video conf

* Update gpo files revision

* Revert removing the VCM policies

* Deprecate VCM GPO policy

* Change deprecation message to show first supported version

* Tweak supported strings in the adml
2025-01-16 15:17:34 +00:00
PesBandi
35b9bcacdb [Monaco] Use syntax highlighting for .srt (#35651)
* [FilePreview] Use syntax highlighting for .srt

* Change customTokenColors to customTokenThemeRules

* Ignore text on the same line as a timestamp

* Update tokenization rules
2024-12-03 17:25:35 +00:00
Christian Gaarden Gaardmark
084402a2bd [New+]Windows 10 support (#35832) 2024-11-27 14:22:05 +00:00
Stefan Markovic
133aa85f2b [General]Add an option for telemetry opt-in and visualization(#34078)
* Data diagnostics opt-in

* [c++] Drop DROP_PII flag

* Bump telemtry package to 2.0.2

* Drop DropPii from custom actions

* Cleanup

* Do not start manually C# EtwTrace. FZ engine exit event.

* ImageResizer, PowerRename, FileLocksmith prev handlers

* Revert C# handlers exe logging

* Revert "Revert C# handlers exe logging"

This reverts commit 4c75a3953b.

* Do not recreate EtwTrace

* consume package

* xaml formatting

* Fix deps.json audit

* Update telem package paths

* Address PR comments

* Fix AdvancedPaste close on PT close

* Override etl file name for explorer loaded dlls
Start/stop tracer when needed for explorer loaded dlls to prevent explorer overload

* Fix setting desc

* Fix missing events

* Add infobar to restart when enable data viewing

* Flush on timer every 30s

* [Settings] Update View Data diagnostic description text
[New+] Add tracer

* Show Restart info bar for both enable/disable data viewer

* Fix newplus

* Fix stuck on restart and terminate AdvPaste exe on destroy()

* [Installer] Add tracer

* Address PR comment

* Add missing tracers

* Exclude etw dir from BugReport

* Fix bad merge

* [Hosts] Proper exit on initial dialog

* [OOBE] Make Data diagnostic setting visible without scroll

* [OOBE] Add hiperlynk to open general settings

* Disable data view on disabling data diagnostics

* Don't disable View data button

* Fix disabling data viewing

* Add missing dot

* Revert formatting
2024-10-24 21:04:32 +01:00
Davide Giacometti
f9127b63a5 [RegistryPreview] Adopt Monaco Editor (#35122) 2024-10-24 21:55:51 +02:00
Laszlo Nemeth
ccdfbb0f68 [Workspaces]Fix Workspace icon when installed, move to assets (#35163)
* [Workspaces] fix defaulticon.ico, move it to the Assets directory

* Move assets to single source of truth. Installer logic

---------

Co-authored-by: Stefan Markovic <stefan@janeasystems.com>
2024-10-01 11:52:49 +01:00
Dustin L. Howett
ad1f20408c Rewrite the entire Azure DevOps build system (#34984)
This pull request rewrites the entire Azure DevOps build system.

The guiding principles behind this rewrite are:

- No pipeline definitions should contain steps (or tasks) directly.
- All jobs should be in template files.
- Any set of steps that is reused across multiple jobs must be in
  template files.
- All artifact names can be customized (via a property called
  `artifactStem` on all templates that produce or consume artifacts).
- No compilation happens outside of the "Build" phase, to consolidate
  the production and indexing of PDBs.
- All step and job templates are named with `step` or `job` _first_,
  which disambiguates them in the templates directory.
- Most jobs can be run on different `pool`s, so that we can put
  expensive jobs on expensive build agents and cheap jobs on cheap
  build agents. Some jobs handle pool selection on their own, however.

Our original build pipelines used the `VSBuild` task _all over the
place._ This resulted in PowerToys being built in myriad ways, different
for every pipeline. There was an attempt at standardization early on,
where `ci.yml` consumed jobs and steps templates... but when
`release.yml` was added, all of that went out the window.

It's the same story as Terminal (https://github.com/microsoft/terminal/pull/15808).

The new pipelines are consistent and focus on a small, well-defined set
of jobs:

- `job-build-project`
    - This is the big one!
    - Takes a list of build configurations and platforms.
    - Produces an artifact named `build-PLATFORM-CONFIG` for the entire
      matrix of possibilities.
    - Builds all of the installers.
    - Optionally signs the output (all of the output).
    - Admittedly has a lot going on.
- `job-test-project`
    - Takes **one** build config and **one** platform.
    - Consumes `build-PLATFORM-CONFIG`
    - Selects its own pools (hardcoded) because it knows about
      architectures and must choose the right agent arch.
    - Runs tests (directly on the build agent).
- `job-publish-symbols-using-symbolrequestprod-api`
    - Consumes `**/*.pdb` from all prior build phases.
    - Uploads all PDBs in one artifact to Azure DevOps
    - Uses Microsoft's internal symbol publication REST API to submit
      stripped symbols to MSDL for public consumption.

Finally, this pull request has some additional benefits:

- Symbols are published to the private and public feeds at the same
  time, in the same step. They should be available in the public symbol
  server for public folks to debug against!
- We have all the underpinnings necessary to run tests on ARM64 build
  agents.
    - Right now, `ScreenResolutionUtility` is broken
    - I had to introduce a custom version of `UseDotNet` which would
      install the right architecture (🤦); see https://github.com/microsoft/azure-pipelines-tasks/issues/20300.
- All dotnet and nuget versioning is consolidated into a small set of
  step templates.
- This will provide a great place for us to handle versioning changes
  later, since all versioning happens in one place.
2024-09-25 09:23:58 -07:00
Seraphima Zykova
1e18e83af6 [Workspaces] Handle admin windows repositioning. (#34965) 2024-09-25 11:13:38 +02:00
Dustin L. Howett
6415afc27d Significantly rework GenerateAllFileComponents (#34985)
There is no reason to use Invoke-Expression to execute a string
containing a path to another powershell script. You can just run the
powershell script directly.

But then if you're going to do that, why not make it all part of the
same script and use functions?
2024-09-23 14:34:56 -07:00
Christian Gaarden Gaardmark
3f44ad186d New Utility: New+ (#33136)
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
Co-authored-by: Stefan Markovic <stefan@janeasystems.com>
2024-09-19 17:12:24 +01:00
Seraphima Zykova
579619952d [New Module] Workspaces (#34324)
* spell checker

* Adding OOBE Projects page

* changed the default hotkey

* module interface

* rename projects editor

* bug report tool

* installer

* gpo

* exit event constant

* extend search for projects by search over the containing apps' names

* [Projects] fix grammatical issue #43 (1 app - many apps)

* [Projects] Editor: Main page: fix layout if there are many apps, launch button not disappearing on the right side

* dsc

* github

* pipeline

* guid prefix

* [Projects] fixing general settings gpo handling in runner + minor changes

* arm build fix

* Do not allow saving project if name or applist is empty. Also minor UI changes

* version

* editor version

* spellcheck

* editor dll signing

* update projects names to filter them out

* shortcut saving fix

* [Projects] Editor: brining the highlighted app's icon into the foreground. + minor UI fixes

* spell checker

* spellcheck

* [Projects] re-implementing icon size calculation to have similar sized icons for every app.

* [projects] Adding info message for cases: there are no projects or no results for the search

* [Projects] Adding Edit button to the popup. + minor changes

* [Projects] Making popup having rounded corners

* changed "no projects" text color and position

* remove opening the first proj

* fix placing windows of the same app in the project

* [Projects] bringing back the breadcrumb on the editor page. Make it clickable.

* [Projects] optimizing click handlers

* [Projects] Removing not selected apps on save

* moved on thread executor to common

* moved display utils

* added convert rect

* unsigned monitor number

* set awareness

* app placement

* [Projects] Re-implementing preview drawing - one common image

* [Projects] fix boundary calculation, use DPI aware values

* fix launching with command line args

* Fix ARM64 CI build

* launch packaged apps using names when possible

* spell-check

* update packaged apps path

* projects editor single instance

* [Projects] Add Select all checkbox, Delete selected button

* Add Checkbox for per monitor selection

* modifying highlight in preview

* spell checker

* logs

* exclude help windows

https://github.com/JaneaSystems/PowerToys-DevProjects/issues/49

* Add intermediate step to project creation

* minor bugfix

* mutex fix

* modifying highlight for minimized apps

* Fixing bug: re-draw the preview on app deletion in the editor

* Adding helper class for getting the right bounds for screens

* spell checker

* spell checker

* Minor fixes in the capture dialog

* get dpi unaware screen bounds

* refactoring: added utils

* changed window filter

https://github.com/JaneaSystems/PowerToys-DevProjects/issues/2

* clean up

* refactoring

* projects common lib

* localizable default project prefix

* launcher resources

* clean up

* change snapshot project saving

https://github.com/JaneaSystems/PowerToys-DevProjects/issues/14

* changed project data

https://github.com/JaneaSystems/PowerToys-DevProjects/issues/14

* changed project creation save-cancel handles

https://github.com/JaneaSystems/PowerToys-DevProjects/issues/14

* spell-check

* Remove checkboxes, delete feature

* remove unused from the project

* get command line args in the snapshot

* minimized settings snap fix

* set window property after launching

* FZ: ignore projects launched windows

* Implementing major new features: remove button, position manipulation, arguments, admin, minimized, maximized

* modifying colors

* launcher project filters

* clean up

* Hide Admin checkbox

* hide WIP

* spell-check

* Revert "Hide Admin checkbox"

This reverts commit 3036df9d7f.

* get app elevated property

* Implementing Launch and Edit feature

* fixing: update of listed projects on the main page after hitting save in editor

* Fix for packaged app's icons

* fixing scroll speed issue

* change scroll speed to 15

* launch elevated apps

* minor fixes

* minor fix

* enhancing shortcut handling

* can-launch-elevated check

* projects module interface telemetry

* Implementing store of setting "order by".

* minor string correction

* moved projects data parsing

* telemetry

* add move apps checkbox

* notification about elevated apps

* restart unelevated

* move existing windows

* keep opened windows at the same positions

* handle powertoys settings

* use common theme

* fix corrupted data: project id and monitor id

* project launch on "launch and edit"

* clean up

* show screen numbers instead of monitor names

* launcher error messages

* fix default shortcut

* Adding launch button to projects settings, dashboard and flyout

* Adding new app which is launched when launching a project. It shows the status of the launch process

* spell checker

* Renaming Projects to App Layouts. Replacing only string values, not the variable names

* Re-ordering modules after Renaming Projects + spell checker

* setting window size according to the screen (making it bigger)

* commenting out feature "move apps if exist"

* spell checker

* Add ProjectsLauncherUI to signing

* opening apps in minimized state which are placed on a monitor, which is not found at the moment of launching

* consistent file name

* removed unused sln

* telemetry: create event

* WindowPosition comparison

* telemetry: edit event

* fix muted Launch as admin checkbox

* telemetry: delete event

* updated Edit telemetry event

* added invoke point to launcher args

* added utils

* parse invoke point

* replaced tuple with struct

* telemetry: launch event

* MonitorRect comparison

* resources

* rename: folders

* remove outdated

* rename: window property

* rename: files and folders

* rename: common data structures

* rename: telemetry namespace

* rename: workspaces data

* rename ProjectsLib -> WorkspacesLib

* rename: gpo

* rename: settings

* rename: launcher UI

* rename: other

* rename: pt run

* rename: fz

* rename: module interface

* rename: icon

* rename: snapshot tool

* rename: editor

* rename: common files

* rename: launcher

* rename: editor resources

* fix empty file crash

* rename: json

* rename: module interface

* fix custom actions build

* added launch editor event constant

* xaml formatting

* Add missing method defition to interop::Constants idl
Remove Any CPU config

* more .sln cleanup

* [Run][PowerToys] Fix Workspaces utility (#34336)

polished workspaces utility

* build fix - align CppWinRT version

* address PR comment: fix isdigit

* indentation

* address PR comment: rename function

* address PR comment: changed version for workspaces and revision

* added supported version definition

* addressPR comment: use BringToForeground

* address PR comments: updated projects

* address PR comment: uncomment gpo in settings

* address PR comment: rename oobe view

* update OOBE image with current module name

* moved AppUtils

* launching with AppUserModel.ID

* fixed module order in settings

* fix xaml formatting

* [Workspaces] Close launcher if there are failed launches. Plus adding new spinner gif

* fix topmost LauncherUI

* clean up

* UI closing

* BugReportTool - omit cmd arg data

* Delete icon on workspace removal

* Adding cancellation to launcher UI.

* reordered launching

* fix terminating UI

* Removing old shortcut on workspace renaming

* Sentence case labels

* get process path without waiting

* comment out unused

* remove unused argument

* logs

* New icon

* fix launch and edit for the new project

* fix launch and edit: save new project

* Update exe icons

---------

Co-authored-by: donlaci <laszlo@janeasystems.com>
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
Co-authored-by: Stefan Markovic <stefan@janeasystems.com>
Co-authored-by: Davide Giacometti <davide.giacometti@outlook.it>
Co-authored-by: Niels Laute <niels.laute@live.nl>
2024-08-23 09:28:13 +02:00
Jaime Bernardo
fb5ed13386 [Refactor]Port C++/CX to C++/WinRT (#34198)
## Summary of the Pull Request
Removes all C++/CX code, replacing it with C++/WinRT.

## Detailed Description of the Pull Request / Additional comments
Removes all C++/CX code.
Renames interop namespaces to be better consumed by CsWinRT.
Standardizes all projects on net8.0-windows10.0.20348.0, which is a
requirement for C++/WinRT usage.
FileLocksmithLibInterop brought to stdcpplatest and static analysis
errors were corrected.
Removed now unneeded string conversion code from
FileLocksmithLibInterop.
Changed interop KeyboardHook to use a single hook across all instances.
Required because on C++/WinRT we don't have the .NET runtime to bind a
object instance to a delegate and be able to pass it to a C function
pointer argument (still no idea why this worked correctly on C++/CX to
be honest). This change actually makes us create less low level keyboard
hooks.
Changed some code that depended on arrays since WinRT/C++ returns null
instead of an empty array through the interface.

## Validation Steps Performed
Built and tested runtime.
2024-08-08 15:26:43 +01:00
Clint Rutkas
12098cb17f Moving Version to Directory.Build.props (#34055)
<!-- 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

In prep for WinAppSdk, trying to consolidate items. Version.prop is one
of the first items.

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

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

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

---------

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
2024-08-05 06:32:05 -07:00
Davide Giacometti
0a9e889b1b [Build][Installer]Fix NU1503 build warnings (#33938)
## Summary of the Pull Request

This PR aims for fix some CI build warnings.
## Detailed Description of the Pull Request / Additional comments

### Warning NU1503
Fix warning NU1503 for wix toolset projects marking them as restorable
and adding an empty restore target.
### No test result files matching '[ '**/*.trx' ]' were found.
Skip publishing of test results for ARM64 since pipeline isn't running
ARM64 tests

![image](https://github.com/user-attachments/assets/10a64ca2-2bff-42a8-ade9-07bd5ad88e3c)
2024-07-24 16:49:08 +01:00
Jaime Bernardo
57b06fa431 [Installer]Create DSC module in right path for user installs (#33782) 2024-07-11 13:49:52 +01:00
PesBandi
cdf5677eb9 [Monaco]Improve .gitignore definition (#33263)
* Update gitignore.js

* Update gitignore.js

* Add custom color for negations

* Add custom color for negations

* Regex refactoring

* Regex refactoring again

* Move customTokenColors to a separate file

* Move customTokenColors to a separate file

* Update devdocs

* Use kebab case for token names

* Update negation color

* Update index.html formatting
2024-06-14 16:09:52 +01:00
Stefan Markovic
fb7a85ec81 [ARM][Installer]Fix UninstallCommandNotFoundModule not finding pwsh(#33143)
* [ARM][Installer] Fix UninstallCommandNotFoundModule

On ARM, processes does not inherit the user env variables. So, pwsh.exe could not be found from installer process.
Logic is changed to use powershell.exe to first set process' PATH env var and then trigger pwsh.exe

* address PR comments
2024-06-05 11:10:08 +01:00
Ani
1fb632d4a6 [Installer]Use custom action to copy DSC files on user install (#32799)
* Better fix for installation issues when My Documents on network drive

* Fix spellcheck

* Improved wxs comment

* Created DSCModule folder in install folder; removed DSC modules from resources

* Added back newline
2024-05-31 09:47:31 +01:00
Craig Loewen
483f7aa464 [NewUtility]Advanced Paste (#23)
Advanced Paste V1 implementation

---------

Co-authored-by: Stefan Markovic <stefan@janeasystems.com>
Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Jordi Adoumie <98557455+joadoumie@users.noreply.github.com>
Co-authored-by: Stefan Markovic <57057282+stefansjfw@users.noreply.github.com>
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
2024-05-17 23:43:59 +01:00
Carlos Zamora
e1832a0a4a [CommandNotFound]Upgrade to use PSGallery release and support arm64 (#32766)
* [CommandNotFound] Add support for upgrading the module

* upgrade module as a part of upgrade installation; actually set content in EnableModule.ps1

* Fix XAML style to pass CI

* Remove CmdNotFound project from sln as well

* Remove CmdNotFound psd1 file from installer

* More installer fixes

* UpgradeCommandNotFound runs after InstallFiles

* Fix NOTICE.md

* Fix custom action condition

* Pass install folder to the custom action

* Upgrade-Module --> Update-Module

* actually install the module

* spell

* verify updated scripts work; make necessary changes

---------

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
2024-05-16 13:45:06 +01:00
Ani
b0e59d66b5 [Installer]Fix My Documents on network drive install issue on machine installer (#32691)
* Defined PersonalFolder Directory only for User installations to avoid issues with My Documents on network drives

* Fixed spacing
2024-05-08 12:28:57 +01:00