Skip to content

Bump picomatch in /src/winapp-VSC - #456

Merged
Nikola Metulev (nmetulev) merged 1 commit into
mainfrom
dependabot/npm_and_yarn/src/winapp-VSC/multi-bf05dc1ecf
Apr 17, 2026
Merged

Nikola Metulev (nmetulev) merged 1 commit into
mainfrom
dependabot/npm_and_yarn/src/winapp-VSC/multi-bf05dc1ecf

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Apr 17, 2026 •

Copy link
Copy Markdown
Contributor

Bumps and picomatch. These dependencies needed to be updated together.
Updates picomatch from 2.3.1 to 2.3.2

Release notes

Sourced from picomatch's releases.

2.3.2

This is a security release fixing several security relevant issues.

What's Changed

Full Changelog: micromatch/picomatch@2.3.1...2.3.2

Changelog

Sourced from picomatch's changelog.

Release history

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

  • Changelogs are for humans, not machines.
  • There should be an entry for every single version.
  • The same types of changes should be grouped.
  • Versions and sections should be linkable.
  • The latest version comes first.
  • The release date of each versions is displayed.
  • Mention whether you follow Semantic Versioning.

Changelog entries are classified using the following labels (from keep-a-changelog):

  • Added for new features.
  • Changed for changes in existing functionality.
  • Deprecated for soon-to-be removed features.
  • Removed for now removed features.
  • Fixed for any bug fixes.
  • Security in case of vulnerabilities.

4.0.0 (2024-02-07)

Fixes

Changed

3.0.1

Fixes

... (truncated)

Commits

Updates picomatch from 4.0.3 to 4.0.4

Release notes

Sourced from picomatch's releases.

2.3.2

This is a security release fixing several security relevant issues.

What's Changed

Full Changelog: micromatch/picomatch@2.3.1...2.3.2

Changelog

Sourced from picomatch's changelog.

Release history

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

  • Changelogs are for humans, not machines.
  • There should be an entry for every single version.
  • The same types of changes should be grouped.
  • Versions and sections should be linkable.
  • The latest version comes first.
  • The release date of each versions is displayed.
  • Mention whether you follow Semantic Versioning.

Changelog entries are classified using the following labels (from keep-a-changelog):

  • Added for new features.
  • Changed for changes in existing functionality.
  • Deprecated for soon-to-be removed features.
  • Removed for now removed features.
  • Fixed for any bug fixes.
  • Security in case of vulnerabilities.

4.0.0 (2024-02-07)

Fixes

Changed

3.0.1

Fixes

... (truncated)

Commits

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Apr 17, 2026
@github-actions

github-actions Bot commented Apr 17, 2026 •

Copy link
Copy Markdown
Contributor

Build Metrics Report

Binary Sizes

Artifact Baseline Current Delta
CLI (ARM64) 30.52 MB 30.52 MB ✅ 0.0 KB (0.00%)
CLI (x64) 30.89 MB 30.89 MB ✅ 0.0 KB (0.00%)
MSIX (ARM64) 12.89 MB 12.89 MB 📉 -0.0 KB (-0.00%)
MSIX (x64) 13.68 MB 13.68 MB 📈 +0.2 KB (+0.00%)
NPM Package 26.79 MB 26.79 MB 📉 -0.4 KB (-0.00%)
NuGet Package 26.87 MB 26.87 MB 📈 +0.1 KB (+0.00%)

Test Results

✅ 722 passed out of 722 tests in 381.2s (+16.5s vs. baseline)

Test Coverage

❌ 20.6% line coverage, 34.6% branch coverage · ✅ no change vs. baseline

CLI Startup Time

42ms median (x64, winapp --version) · ✅ +5ms vs. baseline


Updated 2026-04-17 20:13:48 UTC · commit bb9944d · workflow run

Bumps  and [picomatch](https://github.com/micromatch/picomatch). These dependencies needed to be updated together.

Updates `picomatch` from 2.3.1 to 2.3.2
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](micromatch/picomatch@2.3.1...2.3.2)

Updates `picomatch` from 4.0.3 to 4.0.4
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](micromatch/picomatch@2.3.1...2.3.2)

---
updated-dependencies:
- dependency-name: picomatch
  dependency-version: 2.3.2
  dependency-type: indirect
- dependency-name: picomatch
  dependency-version: 4.0.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/src/winapp-VSC/multi-bf05dc1ecf branch from 6892fec to a59d55d Compare April 17, 2026 19:59
@nmetulev
Nikola Metulev (nmetulev) merged commit d54b4ff into main Apr 17, 2026
10 checks passed
@nmetulev
Nikola Metulev (nmetulev) deleted the dependabot/npm_and_yarn/src/winapp-VSC/multi-bf05dc1ecf branch April 17, 2026 20:00
Nikola Metulev (nmetulev) added a commit that referenced this pull request Apr 17, 2026
## Description

<!-- Briefly describe what this PR does and why -->
Merge VS Code extension into main. Includes Winapp commands, launch and
debug, and README. Does not include extension in publish.

Adds WinUI templates.

## Usage Example

<!-- If this PR adds or changes commands, flags, or APIs, include a
short code snippet -->
<!-- Example:
```bash
winapp store app list
```
-->
Install extension in VS Code and use commands/launch windows apps. 

## Related Issue

<!-- Link to any related issues: Fixes #123, Closes #456, Related to
#789 -->

## Type of Change

<!-- Keep the applicable line(s), delete the rest -->

- ✨ New feature

## Checklist
<!-- Delete the ones that do not apply to your changes -->

- [ ] New tests added for new functionality (if applicable)
- [x] Tested locally on Windows
- [ ] Main [README.md](../README.md) updated (if applicable)
- [ ] [docs/usage.md](../docs/usage.md) updated (if CLI commands
changed)

## Screenshots / Demo

<!-- If applicable, add screenshots or GIFs demonstrating the changes
-->

## Additional Notes

<!-- Any additional information that reviewers should know -->

## AI Description

<!-- ai-description-start -->
This pull request merges the VS Code extension into the main codebase,
introducing Winapp commands, launch, and debug features. Additionally,
it adds WinUI templates and includes updated documentation reflecting
these changes. Users can now install the extension and utilize commands
for launching Windows apps directly from VS Code.

```bash
# Add alias inferred from the Executable attribute in the manifest
winapp manifest add-alias

# Specify the alias name explicitly
winapp manifest add-alias --name myapp

# Target a specific manifest file
winapp manifest add-alias --manifest ./path/to/appxmanifest.xml
```
<!-- ai-description-end -->

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Alexandre Zollinger Chohfi <alzollin@microsoft.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Nikola Metulev <nmetulev@users.noreply.github.com>
Co-authored-by: Nikola Metulev <711864+nmetulev@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zach Teutsch <88554871+zateutsch@users.noreply.github.com>
Nikola Metulev (nmetulev) pushed a commit that referenced this pull request Apr 27, 2026
## Description

Fix Redundant Labelling for WinApp Commands in VSCE. All commands in
command palette had "WinApp: WinApp: ..."

## Related Issue

<!-- Link to any related issues: Fixes #123, Closes #456, Related to
#789 -->
Fixes #501

## Type of Change

<!-- Keep the applicable line(s), delete the rest -->

- 🐛 Bug fix

## Checklist
<!-- Delete the ones that do not apply to your changes -->
- [x] Tested locally on Windows

## Screenshots / Demo

<!-- If applicable, add screenshots or GIFs demonstrating the changes
-->
<img width="1340" height="849" alt="image"
src="https://github.com/user-attachments/assets/41ab82e3-92fe-4fb1-a813-5aff2728ccf9"
/>

## Additional Notes

<!-- Any additional information that reviewers should know -->

## AI Description

<!-- ai-description-start -->
This update removes the redundant "WinApp: " prefix from the titles of
various WinApp commands in the Visual Studio Code extension,
streamlining the command palette entries for a cleaner display. The
commands affected include 'Initialize Project', 'Restore Packages',
'Update Packages', and several others, enhancing usability.

```json
{
  "command": "winapp.init",
  "title": "Initialize Project",
}
```
```json
{
  "command": "winapp.restore",
  "title": "Restore Packages",
}
```
<!-- ai-description-end -->
Nikola Metulev (nmetulev) pushed a commit that referenced this pull request May 7, 2026
## Description

<!-- Briefly describe what this PR does and why -->
Bump VSCE to v0.1.1 + fix vsc release script formatting. 

## Usage Example

<!-- If this PR adds or changes commands, flags, or APIs, include a
short code snippet -->
<!-- Example:
```bash
winapp store app list
```
-->

## Related Issue

<!-- Link to any related issues: Fixes #123, Closes #456, Related to
#789 -->

## Type of Change

<!-- Keep the applicable line(s), delete the rest -->
- 🔧 Config/build

## AI Description

<!-- ai-description-start -->
This update bumps the VSCE package to version 0.1.1 and enhances the
formatting of the VSC release script. The changes include better
structure and clarity in the output messages of the release plan,
ensuring it is easier for users to follow the release steps.
Additionally, the package-lock.json is now updated in sync with the
package.json to maintain consistency across versions.
<!-- ai-description-end -->

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Zach Teutsch (zateutsch) added a commit that referenced this pull request Jun 17, 2026
…579)

## Description

<!-- Briefly describe what this PR does and why -->

## Usage Example

<!-- If this PR adds or changes commands, flags, or APIs, include a
short code snippet -->
<!-- Example:
```bash
winapp store app list
```
-->

## Related Issue

<!-- Link to any related issues: Fixes #123, Closes #456, Related to
#789 -->

## Type of Change

<!-- Keep the applicable line(s), delete the rest -->

- 🐛 Bug fix
- ✨ New feature
- 💥 Breaking change
- 📝 Documentation
- 🔧 Config/build
- ♻️ Refactoring
- 🧪 Test update

## Checklist
<!-- Delete the ones that do not apply to your changes -->

- [ ] New tests added for new functionality (if applicable)
- [ ] Tested locally on Windows
- [ ] Main [README.md](../README.md) updated (if applicable)
- [ ] [docs/usage.md](../docs/usage.md) updated (if CLI commands
changed)
- [ ] [Language-specific guides](../docs/guides) updated (if applicable)
- [ ] [Sample projects updated](../samples) to reflect changes (if
applicable)
- [ ] Agent skill templates updated in `docs/fragments/skills/` (if CLI
commands/workflows changed)

## Screenshots / Demo

<!-- If applicable, add screenshots or GIFs demonstrating the changes
-->

## Additional Notes

<!-- Any additional information that reviewers should know -->

## AI Description

<!-- ai-description-start -->
This pull request modifies the PowerShell test script for the Flutter
app sample to address a hard error encountered with MSVC 14.51 related
to ``. A workaround is implemented by temporarily modifying the CMake
configuration to suppress deprecation warnings during the build process.

```powershell
# MSVC 14.51+ hard-errors on ; suppress until Flutter updates its runner.
$cmakeFile = Join-Path $script:projectDir "windows\runner\CMakeLists.txt"
if (Test-Path $cmakeFile) {
    $content = Get-Content $cmakeFile -Raw
    if ($content -notlike '*_SILENCE_EXPERIMENTAL_COROUTINE*') {
        $content = $content -replace '(target_compile_definitions\(\$\{BINARY_NAME\} PRIVATE[^)]*)', "`$1`n  _SILENCE_EXPERIMENTAL_COROUTINE_DEPRECATION_WARNINGS"
        Set-Content $cmakeFile $content -NoNewline
    }
}
```
<!-- ai-description-end -->

---------

Co-authored-by: Zach Teutsch <88554871+zateutsch@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Zachary Teutsch <zteutsch@microsoft.com>
Nikola Metulev (nmetulev) added a commit that referenced this pull request Jun 19, 2026
## Description

Adds Support for VS Code AppxManifest Editor. Editor provides
easy-to-use GUI to user to edit their manifest files from within VS
Code. Supports many of the different appxmanifest customizations and
include in-line validation.


Adds Unit and E2E tests for the editor to validate its behavior across
sample manifest files. ~8600 lines of code changes are just tests.

### Design Decisions
Note: The editor is designed to make surgical string changes to a
manifest's xml. It does not use the existing XML parser APIs. This is
because the XML parser APIs serialize the manifest data when they
read/write to the manifest. This results in the manifest's white space
being altered. Opted to use surgical string changes to avoid
contaminating white space.

Validation of the manifest in the editor occurs after each change to the
manifest. All validation checks are always done. I explored only running
checks pertaining to the elements that were edited but there was no
meaningful performance change because the validation only too ~4ms in
the first place.

## Usage Example

Open an appxmanifest file in VS Code. Reopen the file with the WinApp
editor. Use the GUI to customize your manifest as you like. Changes are
automatically reflected in manifest's xml.

## Related Issue

<!-- Link to any related issues: Fixes #123, Closes #456, Related to
#789 -->

Resolves #331

<!-- Keep the applicable line(s), delete the rest -->

- ✨ New feature
- 📝 Documentation
- 🧪 Test update

## Checklist
<!-- Delete the ones that do not apply to your changes -->

- [x] New tests added for new functionality (if applicable)
- [x] Tested locally on Windows

## Screenshots / Demo

<!-- If applicable, add screenshots or GIFs demonstrating the changes
-->
<img width="1821" height="1228" alt="Screenshot 2026-05-13 112919"
src="https://github.com/user-attachments/assets/b06c986a-3dfe-494f-a5fc-20983e736b28"
/>

## Additional Notes

<!-- Any additional information that reviewers should know -->

## AI Description

<!-- ai-description-start -->
This update introduces a visual editor for `AppxManifest.xml` and
`.appxmanifest` files within VS Code, offering a user-friendly interface
for editing manifest properties, including identity, properties,
dependencies, resources, capabilities, and applications. The editor
supports real-time validation, format-preserving edits, and allows for
easy management of extensions. Users can utilize this feature by
right-clicking an `AppxManifest.xml` or `.appxmanifest` file and
selecting the **Open With…** command to access the new GUI.

```markdown
### How to open:
When you open an `AppxManifest.xml` or `.appxmanifest` file, VS Code will offer the visual editor as an option alongside the default text editor. You can switch between them at any time by right clicking on the file and selecting the **Open With…** command.
```
<!-- ai-description-end -->

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Alexandre Zollinger Chohfi <alzollin@microsoft.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Nikola Metulev <nmetulev@users.noreply.github.com>
Co-authored-by: Nikola Metulev <711864+nmetulev@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zach Teutsch <88554871+zateutsch@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Nikola Metulev (nmetulev) added a commit that referenced this pull request Jun 22, 2026
…ntime, kept in version sync) (#536)

## Description

<!-- Briefly describe what this PR does and why -->
Call modern Windows Runtime (WinRT) APIs directly from JS or TS
inElectron / Node app — no native addon, no node-gyp / MSBuild step,
full IntelliSense.

The CLI generates typed .js + .d.ts bindings for WinAppSDK (and any
other WinRT) APIs from their .winmd metadata. Bindings call into WinRT
at runtime via @microsoft/dynwinrt.

## Usage Example

<!-- If this PR adds or changes commands, flags, or APIs, include a
short code snippet -->
<!-- Example:
```bash
winapp store app list
```
-->

Bootstrap a new project or Add bindings to an existing project:

```
npx winapp init . --use-defaults --add-js-bindings
```
<img width="1288" height="332" alt="image"
src="https://github.com/user-attachments/assets/18a0e491-fb75-4238-931b-3eb9b4143be3"
/>

<img width="1370" height="434" alt="image"
src="https://github.com/user-attachments/assets/1330dfed-c466-4983-a16a-822e1ae569f1"
/>

## Related Issue

<!-- Link to any related issues: Fixes #123, Closes #456, Related to
#789 -->

## Type of Change

<!-- Keep the applicable line(s), delete the rest -->

- ✨ New feature

## Checklist
<!-- Delete the ones that do not apply to your changes -->

- [x] New tests added for new functionality (if applicable)
- [x] Tested locally on Windows
- [x] Main [README.md](../README.md) updated (if applicable)
- [x] [docs/usage.md](../docs/usage.md) updated (if CLI commands
changed)
- [ ] [Language-specific guides](../docs/guides) updated (if applicable)
- [ ] [Sample projects updated](../samples) to reflect changes (if
applicable)
- [x] Agent skill templates updated in `docs/fragments/skills/` (if CLI
commands/workflows changed)

## Screenshots / Demo

<!-- If applicable, add screenshots or GIFs demonstrating the changes
-->

## Additional Notes

<!-- Any additional information that reviewers should know -->

## AI Description

<!-- ai-description-start -->
This pull request integrates JavaScript (JS) and TypeScript (TS)
bindings for Windows Runtime (WinRT) APIs into the `winapp init`
command, allowing developers to call WinRT APIs directly from JS/TS
without the need for native addons. The new option `--add-js-bindings`
can be used during project initialization to generate typed bindings for
WinAppSDK APIs, simplifying access to various Windows APIs.
Usage example for initializing a project with the new bindings:
```bash
npx winapp init . --use-defaults --add-js-bindings
```
**Breaking Change:** None.
<!-- ai-description-end -->

---------

Co-authored-by: Zach Teutsch <88554871+zateutsch@users.noreply.github.com>
Co-authored-by: Nikola Metulev <nmetulev@users.noreply.github.com>
Nikola Metulev (nmetulev) pushed a commit that referenced this pull request Jul 15, 2026
## Description

`NugetService` previously talked to the NuGet v3 API by hand — building
HTTP requests, parsing the service index / registration JSON, and
reading `.nuspec` XML itself — with the package source hardcoded to
`api.nuget.org`. That meant `winapp init` / `restore` / `update` ignored
the user's `nuget.config`, so custom/private package sources, feed
credentials, and a custom `globalPackagesFolder` were never honored.

This PR replaces that hand-rolled code with the **official NuGet client
libraries** (`NuGet.Protocol` / `NuGet.Packaging` /
`NuGet.Configuration` / `NuGet.Versioning` / `NuGet.Credentials`).
Package sources, authentication, and the global packages folder are now
resolved from the user's standard `nuget.config` hierarchy (rooted at
the current working directory), so **private and custom feeds/mirrors
work** when downloading the Windows SDK packages.

The public `INugetService` surface, the static `ParseMinimumVersion` /
`CompareVersions` helpers, and `SDK_PACKAGES` are all preserved, so
callers are unchanged. **No breaking changes.**

### Native AOT
The CLI is Native AOT + full-trim + `TreatWarningsAsErrors`. To keep it
AOT-clean, the NuGet libraries are consumed with the
`NuGet.UseSystemTextJsonDeserialization` feature switch (`Trim=true`),
which lets the linker trim out the reflection-based `Newtonsoft.Json`
path entirely. Verified: clean Release AOT publish for **both win-x64
and win-arm64** (0 warnings, `Newtonsoft.Json` fully trimmed out of the
published output).

## Usage Example

`winapp restore` (and `init` / `update`) now pick up a `nuget.config`
like this and restore the SDK packages from a private mirror:

```xml
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <clear />
    <add key="contoso" value="https://pkgs.dev.azure.com/contoso/_packaging/winsdk-mirror/nuget/v3/index.json" />
  </packageSources>
</configuration>
```

```powershell
winapp restore
```

Credentials from `<packageSourceCredentials>`, environment variables,
and NuGet credential-provider plugins are used automatically;
interactive prompts appear only on interactive terminals (CI stays
non-interactive).

## Related Issue

<!-- Link to any related issues: Fixes #123, Closes #456, Related to
#789 -->

## Type of Change

- ✨ New feature
- ♻️ Refactoring
- 🔧 Config/build

## Checklist

- [x] Tested locally on Windows
- [x] [docs/usage.md](../docs/usage.md) updated (if CLI commands
changed)
- [x] Agent skill templates updated in `docs/fragments/skills/` (if CLI
commands/workflows changed)

## Additional Notes

**Package feeds**
- `NuGet.*` is pinned to `7.9.0-rc.36120` from the public dnceng
**dotnet-tools** feed. This is **temporary**: the
`NuGet.UseSystemTextJsonDeserialization` switch isn't in a nuget.org
stable yet (latest stable there is `7.6.0`, which still roots
`Newtonsoft.Json` and fails the AOT gate — verified). Once a **7.8+
stable** ships to nuget.org, bump the pins and drop the dotnet-tools
feed.
- The dev `nuget.config` therefore has two sources (`nuget.org` +
`dotnet-tools`) with **`packageSourceMapping`** pinning `NuGet.*` →
dotnet-tools and everything else → nuget.org. Package Source Mapping is
the recommended dependency-confusion mitigation, so the multi-source
config is deterministic/safe.
- `.pipelines/release-nuget.config` stays **single-source** on
`pde-oss_Internal`, which has the dnceng dotnet-tools feed configured as
an **upstream**, so the `7.9.0-rc` packages resolve through it during
CI/release.

**Behavioral notes**
- Downloaded `.nupkg`s are streamed to a temp file (SDK packages are
large) then added to the global packages folder; dependency metadata is
read from the extracted `.nuspec` via `NuspecReader`. `SdkInstallMode`
version filtering (stable / preview / experimental) and the
`IgnoredDependencyPrefixes` filtering are preserved.
- Removed the dead nuspec-XML-parsing unit tests (they covered a
hand-rolled parser that no longer exists); the integration tests for
dependency resolution and latest-version selection still pass.

**Testing**
- 27 `NugetServiceTests` pass against live feeds; 16 `EndToEndTests`
pass; full unit suite green.
- Release Native AOT publish verified clean on win-x64 and win-arm64.

---------

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Nikola Metulev (nmetulev) added a commit that referenced this pull request Aug 4, 2026
## Description
<img width="499" height="440" alt="image"
src="https://github.com/user-attachments/assets/4d3a7629-2916-4539-9528-f0bbc18d6c6f"
/>

<img width="500" height="443" alt="image"
src="https://github.com/user-attachments/assets/0f967a75-16a3-47e2-9b40-a2bdae699c11"
/>

<!-- Briefly describe what this PR does and why -->

## Usage Example

<!-- If this PR adds or changes commands, flags, or APIs, include a
short code snippet -->
<!-- Example:
```bash
winapp store app list
```
-->

## Related Issue

<!-- Link to any related issues: Fixes #123, Closes #456, Related to
#789 -->

## Type of Change

<!-- Keep the applicable line(s), delete the rest -->

- 🐛 Bug fix
- ✨ New feature
- 💥 Breaking change
- 📝 Documentation
- 🔧 Config/build
- ♻️ Refactoring
- 🧪 Test update

## Checklist
<!-- Delete the ones that do not apply to your changes -->

- [ ] New tests added for new functionality (if applicable)
- [ ] Tested locally on Windows
- [ ] Main [README.md](../README.md) updated (if applicable)
- [ ] [docs/usage.md](../docs/usage.md) updated (if CLI commands
changed)
- [ ] [Language-specific guides](../docs/guides) updated (if applicable)
- [ ] [Sample projects updated](../samples) to reflect changes (if
applicable)
- [ ] Agent skill templates updated in `docs/fragments/skills/` (if CLI
commands/workflows changed)

## Screenshots / Demo

<!-- If applicable, add screenshots or GIFs demonstrating the changes
-->

## Additional Notes

<!-- Any additional information that reviewers should know -->

## AI Description

<!-- ai-description-start -->
This pull request introduces a new sample demonstrating how to create a
WinUI 3 application and window directly from Node.js, using the
Microsoft.UI.Xaml controls projected into JavaScript. It includes
necessary files like `main.js`, `package.json`, and a README for usage
instructions. To run the sample, use the following commands:
```powershell
npm install
npm run restore
npm start
```
<!-- ai-description-end -->

---------

Co-authored-by: Nikola Metulev <nmetulev@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: nmetulev <711864+nmetulev@users.noreply.github.com>
Copilot-Session: 1cf82a54-b9a0-4437-ab3f-ea9af28a68a8
Nikola Metulev (nmetulev) added a commit that referenced this pull request Sep 21, 2026
## Description

<!-- Briefly describe what this PR does and why -->

Make lifecycle labels describe whether the agent has finished its work,
rather than whether a reviewer has responded:

- Reserve `agent-blocked` for feedback or CI the agent cannot finish
without help, or missing author input.
- Use `ready-for-review` when agent work and technical checks are
complete, including while awaiting re-review of addressed feedback.
- Use labels instead of automated lifecycle/status comments. Keep
operational details in session checkpoints; necessary review-feedback
replies remain required.
- Keep pending approvals distinct without dismissing a human
changes-request review or implying permission to merge.
- Continue configured follow-through while requested re-review is
pending.

The initial independent assessment and ordinary validation/CI waits
remain preparation work.

## Usage Example

<!-- If this PR adds or changes commands, flags, or APIs, include a
short code snippet -->

Illustrative workflow decisions:

| Situation | Lifecycle label |
|---|---|
| Feedback addressed and checks green; reviewer has not reassessed yet |
`ready-for-review` |
| Agent is fixing a finding or waiting for required CI |
`agent-preparing` |
| Agent cannot address feedback/fix CI with available access, or needs
an author decision | `agent-blocked` |

`ready-for-review` does not override GitHub's approval or merge
requirements. Status belongs in the label, not a recurring PR progress
comment.

## Related Issue

<!-- Link to any related issues: Fixes #123, Closes #456, Related to
#789 -->

N/A — requested contributor-workflow policy clarification.

## Type of Change

<!-- Keep the applicable line(s), delete the rest -->

- 📝 Documentation

## Checklist
<!-- Delete the ones that do not apply to your changes -->

- [x] Validated the contributor skill's frontmatter, relative links,
Markdown fences, and label references locally on Windows.
- [x] `git diff --check` passes.

## Screenshots / Demo

<!-- If applicable, add screenshots or GIFs demonstrating the changes
-->

N/A — contributor instructions only; no application or CLI runtime
changes.

## Additional Notes

<!-- Any additional information that reviewers should know -->

The repository label was already renamed from `agent-ready-for-review`
to `ready-for-review` with explicit authorization; existing memberships
were preserved. Its descriptions and the active agents' instructions
were updated to match.

No full NativeAOT build was run for this contributor Markdown-only
change.

## AI Description

<!-- ai-description-start -->
_This section is auto-generated by AI when the PR is opened or updated.
To opt out, delete this entire section including the marker comments._
<!-- ai-description-end -->

---------

Co-authored-by: Nikola Metulev <711864+nmetulev@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Nikola Metulev (nmetulev) added a commit that referenced this pull request Oct 7, 2026
## Description

<!-- Briefly describe what this PR does and why -->

Remove the large generated files that repeatedly conflict when parallel
PRs change CLI commands. Generated npm wrappers and CLI schemas are now
ignored build outputs, and the npm API documentation becomes a
maintained, task-oriented guide at the same URL.

Command definitions remain the source of truth. npm compilation, watch,
and tests generate wrappers from an available CLI binary; with no
binary, they build and run the Debug CLI using .NET. Integrated builds
use their explicitly extracted live schema without rerunning those
hooks. The published npm package still contains the generated JavaScript
and TypeScript declarations; public CLI commands and npm APIs are
unchanged.

The fast, build-free plugin check validates structure, frontmatter, and
links. The existing Windows post-build documentation check validates
command examples against the freshly built CLI. Builds no longer rewrite
the npm guide, and schema-extraction failures fail the build instead of
succeeding with a warning.

## Usage Example

<!-- If this PR adds or changes commands, flags, or APIs, include a
short code snippet -->
<!-- Example:
```bash
winapp store app list
```
-->

On Windows with Node and the .NET SDK installed:

```powershell
Set-Location src\winapp-npm
npm ci
npm run compile
npm test
```

Observed: with generated wrappers and both matching CLI binaries absent,
npm built the Debug CLI, generated wrappers without a checked-in schema,
and passed all 303 tests. Generated output stayed ignored.

For machine-readable definitions of the installed CLI, use:

```powershell
winapp --cli-schema
```

The maintained [npm guide](../docs/npm-usage.md) teaches common tasks
and how to discover the complete typed API in the installed package.

## Related Issue

<!-- Link to any related issues: Fixes #123, Closes #456, Related to
#789 -->

N/A.

## Type of Change

<!-- Keep the applicable line(s), delete the rest -->

- 📝 Documentation
- 🔧 Config/build
- ♻️ Refactoring
- 🧪 Test update

## Checklist
<!-- Delete the ones that do not apply to your changes -->

- [x] New tests added for new functionality (if applicable)
- [x] Tested locally on Windows
- [x] Main [README.md](../README.md) updated (if applicable)
- [ ] [docs/usage.md](../docs/usage.md) updated (if CLI commands
changed) — N/A: CLI commands unchanged.
- [ ] [Language-specific guides](../docs/guides) updated (if applicable)
— N/A.
- [ ] [Sample projects updated](../samples) to reflect changes (if
applicable) — N/A.
- [ ] Shipped skills updated in `plugins/winapp/skills/` (if CLI
commands/workflows changed) — N/A: installed CLI workflows unchanged.

## Screenshots / Demo

<!-- If applicable, add screenshots or GIFs demonstrating the changes
-->

N/A: nonvisual build and documentation changes; observed command
behavior is described above.

## Additional Notes

<!-- Any additional information that reviewers should know -->

Fresh-checkout npm development requires Windows and the .NET SDK when no
built CLI is available. Installing and using the published npm package
does not acquire this requirement. `winapp --cli-schema` remains
available; the repository JSON snapshot and generated documentation
scripts are removed.

Validation on Windows:

- `Invoke-Pester -Path .\scripts\tests` — **passed, 253/253 tests**,
with zero skipped or not run. Regressions cover generation without
snapshots, failure propagation, build-free and live-schema plugin
checks, documentation preservation, and retired schema links.
- From `src\winapp-npm`, `npm run lint`, `npm run format:check`, `npm
run compile`, and `npm test` — **passed; 303/303 npm tests**. Guide
links are checked and every TypeScript example compiles against the
actual public API. Tests also passed through the real no-binary Debug
bootstrap.
- `.\scripts\build-cli.ps1 -SkipTests -SkipMsix` — **passed on the final
merged source**, publishing x64/ARM64 NativeAOT executables, the npm
tarball, all four NuGet packages, and an ignored artifact schema. The
maintained guide was unchanged and `docs\cli-schema.json` was not
recreated.
- `.\scripts\validate-llm-docs.ps1 -CliPath
.\artifacts\cli\win-arm64\winapp.exe` — **passed**, including current
command examples and plugin manifest versions.
- `.\scripts\validate-mslearn-docs.ps1` — **passed**, with existing
unrelated callout-style warnings. The npm guide retains its existing
publishing status.
- Actual final npm tarball — **passed** export/declaration checks, an
exported `getWinappPath()` call, and its packaged native `--version`
command. The published CLI's `--version` and `--cli-schema` also
**passed inside Windows Sandbox**.

The older-Node directory-resolution regression emulates the missing
property; it is not a native Node 18 run. Full C# tests, UI end-to-end
tests, sample suites, and MSIX packaging were not run locally; those
remain covered by the PR's existing CI.

---------

Co-authored-by: Nikola Metulev <711864+nmetulev@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Nikola Metulev (nmetulev) added a commit that referenced this pull request Oct 9, 2026
## Description

<!-- Briefly describe what this PR does and why -->

Adds opt-in `winapp run --unique-identity` so copies of a packaged app
in different worktrees can stay registered side by side, each with its
own package family, app data, and execution aliases.

Without the flag nothing changes: plain `winapp run` behaves as it does
on `main`.

With the flag, winapp derives `<first 24 chars of Identity/@name>.w<24
hex>` from the checkout path (the `.csproj`/`.vcxproj`/`.cs` file, or
the input folder). In the **staged** layout only, it renames
`Identity/@Name` and any authored execution aliases (`tool.exe` ->
`tool.w<hash>.exe`) and re-indexes `resources.pri` with one `makepri`
call. It then runs the normal register flow under the derived name. The
source manifest is never modified.

`unregister` also looks for the derived name for the same input, so
cleanup needs no extra flag. It accepts a `.cs`, `.csproj`/`.vcxproj`,
folder, or `--manifest`, and still only removes packages registered from
under the app's folders. Sandbox needs no guest changes: the host stages
the renamed layout and the guest registers it as-is.

## Usage Example

<!-- If this PR adds or changes commands, flags, or APIs, include a
short code snippet -->

```powershell
winapp run .\worktree-a\MyApp.csproj --unique-identity
winapp run .\worktree-b\MyApp.csproj --unique-identity   # both stay registered

winapp unregister .\worktree-a\MyApp.csproj              # no extra flag needed

winapp run .\MyApp.csproj --unique-identity --on sandbox --detach
```

## Related Issue

<!-- Link to any related issues: Fixes #123, Closes #456, Related to
#789 -->

Fixes #763

## Type of Change

<!-- Keep the applicable line(s), delete the rest -->

- ✨ New feature
- 📝 Documentation
- 🧪 Test update

## Checklist
<!-- Delete the ones that do not apply to your changes -->

- [x] New tests added for new functionality
- [x] Tested locally on Windows
- [x] [docs/usage.md](../docs/usage.md) updated
- [x] [Language-specific guides](../docs/guides) updated
- [x] [Sample projects updated](../samples) to reflect changes
- [x] Shipped skills updated in `plugins/winapp/skills/`

## Screenshots / Demo

<!-- If applicable, add screenshots or GIFs demonstrating the changes
-->

N/A: command-line behavior. See the local run below.

## Additional Notes

<!-- Any additional information that reviewers should know -->

**Simplified after review.** An earlier version of this PR added an
ownership-record system (record files next to each layout, an
interrupted-run log, revision counters, per-package-family locks, and a
guest capability check), and changed plain `run` to use it. That cost
about 3,100 lines of production code and caused a regression: moving or
renaming a project folder broke plain `run`. All of it is removed. The
derived name already encodes the checkout path, so Windows' own
registration state is enough.

**Supported in unique mode:** full packages with one application,
execution aliases, and in-process WinRT classes. Protocols, file
associations, COM servers, other extensions,
sparse/bundle/optional/resource/framework packages, and
multi-application manifests are rejected with a message to run without
the flag. URIs that hardcode the original package name
(`ms-appx://Name/...`) aren't rewritten.

**Switching a layout's identity** (turning the flag on or off, or
editing `Identity/@Name`): winapp removes the old registration from that
same layout, keeping its app data unless `--clean` is passed. It also
discards the layout's `resources.pri` so the file is rebuilt for the new
name. Registrations from other folders are left alone.

**Validation (local, no Sandbox):**
- Full CLI suite: **7,323 passed, 28 skipped, 1 failed**. The failure is
`AnalyzeDumpAsync_ManagedDumpWithDeepStack` in crash-dump analysis, a
file this PR doesn't touch; it fails the same way on this machine
regardless of these changes. The live NuGet-feed tests ran against the
corporate mirror via `WINAPP_TEST_NUGET_SOURCE`.
- `UniqueIdentityTests`: 26 passed. They cover name derivation, junction
paths, manifest support rules, staged-only rewrite, alias renaming,
unchanged reruns, mode switching, the moved-folder regression, PRI
re-indexing, and `unregister` by project, folder, and manifest.
- npm: 306 passed. `scripts\build-cli.ps1 -SkipTests -SkipMsix` passed,
and `validate-plugin-package.ps1 -CliSchemaPath
artifacts\docs\cli-schema.json` passed.
- **Real WinUI sample, two copies:** both registered under different
derived names, the derived-identity copy launched and rendered (real
`makepri` re-index), source manifests unchanged, and both were removed
with `unregister <csproj>` and `unregister <folder>`.
- **Zach's repro:** plain `run`, then rename the project folder, then
plain `run` succeeded and `unregister` cleaned up.
- Not exercised: Windows Sandbox (the shared Sandbox was unavailable for
this round).

---------

Co-authored-by: Nikola Metulev <711864+nmetulev@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Zach Teutsch <88554871+zateutsch@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant