Repository navigation
Bump picomatch in /src/winapp-VSC - #456
Merged
Nikola Metulev (nmetulev) merged 1 commit intoApr 17, 2026
Merged
Nikola Metulev (nmetulev) merged 1 commit into
Nikola Metulev (nmetulev) merged 1 commit into
Conversation
Contributor
Build Metrics ReportBinary Sizes
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 Time42ms median (x64, Updated 2026-04-17 20:13:48 UTC · commit |
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
Bot
force-pushed
the
dependabot/npm_and_yarn/src/winapp-VSC/multi-bf05dc1ecf
branch
from
April 17, 2026 19:59
6892fec to
a59d55d
Compare
Nikola Metulev (nmetulev)
approved these changes
Apr 17, 2026
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps and picomatch. These dependencies needed to be updated together.
Updates
picomatchfrom 2.3.1 to 2.3.2Release notes
Sourced from picomatch's releases.
Changelog
Sourced from picomatch's changelog.
... (truncated)
Commits
81cba8dPublish 2.3.2fc1f6b6Merge commit from forkeec17aeMerge commit from fork78f8ca4Merge pull request #156 from micromatch/backport-1443f4f10eMerge pull request #144 from Jason3S/jdent-object-propertiesUpdates
picomatchfrom 4.0.3 to 4.0.4Release notes
Sourced from picomatch's releases.
Changelog
Sourced from picomatch's changelog.
... (truncated)
Commits
81cba8dPublish 2.3.2fc1f6b6Merge commit from forkeec17aeMerge commit from fork78f8ca4Merge pull request #156 from micromatch/backport-1443f4f10eMerge pull request #144 from Jason3S/jdent-object-properties