Skip to content

Prepare WinUI plugin for WinApp CLI 0.7 - #190

Merged
Nikola Metulev (nmetulev) merged 15 commits into
stagingfrom
nmetulev-winapp-0-7-migration
Sep 30, 2026
Merged

Nikola Metulev (nmetulev) merged 15 commits into
stagingfrom
nmetulev-winapp-0-7-migration

Conversation

@nmetulev

@nmetulev Nikola Metulev (nmetulev) commented Sep 22, 2026 •

Copy link
Copy Markdown
Member

Description

Update the WinUI plugin for WinApp CLI 0.7 (now published, along with the Microsoft.Windows.SDK.BuildTools.WinUIAnalyzer 0.7.0 NuGet package).

  • Remove the bundled analyzer DLL/targets and BuildAndRun.ps1; use direct winapp run and recommend the latest analyzer package. If the package is unavailable, continue and disclose the missing analyzer coverage.
  • Move analyzer source/tests and all native build, NuGet, C# CodeQL, and dependency wiring out of this content repository. The implementation and publication live in microsoft/winappCli.
  • Add Native AOT, SDK-native project packaging, multi-architecture bundles, self-contained deployment, and signing guidance.
  • winui-setup installs or upgrades WinApp CLI automatically (per-user, no admin) and asks before anything needing admin rights (.NET SDK, Developer Mode, AOT build tools). Enabling Windows Sandbox is left to the user.
  • Windows Sandbox is recommended only for UI testing, where the agent sends synthetic input; normal build-and-run launches locally. winui-ui-testing owns the target policy, guest PID/HWND scoping, recording coordination, evidence, and persistence checks.
  • Consolidate duplicated guidance so each policy is stated once and linked elsewhere (~13% less skill text, no workflows or examples removed).
  • Update all eight skills, both agent copies, session-report classification, issue routing, contributor/release docs, and repository review guidance. Retain lightweight plugin validation and PowerShell regressions. No plugin version fields change.

Integration with #192: That PR already removed winmd-cli on staging. This branch includes its merge commit and preserves its explicit project-scoped winapp find-api guidance.

Upstream references

microsoft/winappCli#759 (analyzer), microsoft/winappCli#744 (find-api), microsoft/winappCli#779 (Sandbox), microsoft/winappCli#817 (AOT run), microsoft/winappCli#829 (project packaging).

Type of Change

  • 💥 Breaking change (tool distribution and minimum CLI version)
  • 📝 Documentation
  • 🔧 Config / build / CI
  • ♻️ Refactoring
  • 🧪 Test update

Affected area

  • Agent (both compatibility and portable copies)
  • Skill: all eight WinUI skills and repository PR-review guidance
  • Script/tooling: retire native-tool build infrastructure; update session-report classification and regression checks
  • Plugin metadata/version fields
  • Repo-level docs / governance

Checklist

  • Merged latest staging (including Remove winmd-cli; point skills at winapp find-api #192).
  • Session classifier: 62 cases plus synthetic report statistics.
  • UI examples: 24 mocked scenarios, 8 parsed examples, scoped guest/local routing and evidence checks.
  • Setup version detection: 8 cases.
  • All eight portable skills and plugin structure validate; no local C# source/build job or NuGet update scope remains.
  • README and CHANGELOG [Unreleased] updated; no plugin version fields changed.
  • Hosted 1ES source-only compliance run (local YAML validation does not prove hosted template execution).

Additional Notes

Maintainers should remove retired build-tools, analyzer-provenance, analyzer-targets-sync, and C# CodeQL required checks if configured; this PR does not change branch protection.

A benchmark comparing main with an earlier snapshot of this branch (276 trials, 10 scenarios, 3 models) showed equivalent app quality (73.4 vs 73.5 average score) and ~5% fewer input tokens; it did not exercise AOT, packaging, or Sandbox specifically.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Replace bundled build/analyzer and metadata tooling with CLI and NuGet workflows. Add AOT, project packaging, and Sandbox-first UI guidance; retain analyzer source pending upstream hand-off. Keep publication and real-app verification as release gates.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@nmetulev
Nikola Metulev (nmetulev) changed the base branch from main to staging September 22, 2026 20:37
Move analyzer implementation and test ownership entirely to winapp. Remove local source, the build helper, C# CI and dependency wiring; retain content validation, PowerShell regressions, and source compliance scanning.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Comment thread .github/ISSUE_TEMPLATE/bug-report.yml Outdated
Comment thread plugins/winui/agent-plugin/com.github.copilot/agents/winui-dev.agent.md Outdated
Comment thread plugins/winui/agent-plugin/skills/winui-dev-workflow/SKILL.md Outdated
Comment thread plugins/winui/agent-plugin/skills/winui-dev-workflow/SKILL.md Outdated
Comment thread plugins/winui/agent-plugin/skills/winui-dev-workflow/SKILL.md Outdated
Route tool bugs upstream, prefer Windows Sandbox when available with explicit-request protection and enablement guidance, and recommend the latest analyzer without blocking work when unavailable. Keep target-scoped tests and coverage notices consistent across skills.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Explicitly exit zero only after all assertions pass, so expected failing child-process cases do not leak their LASTEXITCODE into the runner's step result.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Audit nested UI elements, find owned picker windows across processes, explain scope-only unpackaged guest launches, and recognize supported build flags in session reports. Cover the corrected behaviors with regression fixtures.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Document automatic one-shot arbitration and the four-second workflow grace in the existing UI-testing coordination guidance.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep the UI workflow in the skill, load tested batch examples from an on-demand reference, and ask the user to enable Windows Sandbox and reboot themselves instead of doing so during setup.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Restore the inline UI-testing workflow, examples, and prior Sandbox setup guidance as requested.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Incorporate the merged winmd removal and preserve explicit project-scoped find-api lookups alongside this branch's broader WinApp 0.7 changes.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
WinApp CLI is a per-user MSIX, so skills now install or upgrade it without a handoff and tell the user. The .NET SDK, Developer Mode, Windows Sandbox, and AOT build tools still require the user's consent because they need elevation or a reboot.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
State the analyzer fallback, Windows Sandbox policy, and unpackaged-experiment rule once each and link to them elsewhere. Merge repeated crash-diagnostics and AOT prose, move self-contained guidance into packaging, make the source-generator reference canonical for binding/MVVM rules, and drop session-report text that the script already writes. Windows Sandbox enablement is a user action. Reduces changed skill text ~13% without removing workflows or examples.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Normal build-and-run sends no synthetic input, so launch locally and keep Windows Sandbox guidance in winui-ui-testing only. Remove it from both agent copies, winui-dev-workflow, and the WPF migration run; winui-setup keeps prerequisites and enablement as reference.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
WinApp CLI v0.7.0 and Microsoft.Windows.SDK.BuildTools.WinUIAnalyzer 0.7.0 are published, so drop the README promotion warning and the 0.7-specific release-playbook gate.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Comment thread README.md Outdated
@nmetulev
Nikola Metulev (nmetulev) marked this pull request as ready for review September 30, 2026 22:05
@nmetulev
Nikola Metulev (nmetulev) merged commit c42be9e into staging Sep 30, 2026
9 checks passed
@nmetulev
Nikola Metulev (nmetulev) deleted the nmetulev-winapp-0-7-migration branch September 30, 2026 22:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant