microsoft / microsoft/winappCli

[Feature]: Add general launch readiness verification to winapp run

Open
#818 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
C#
Stars
1.3k
Forks
80
Avg merge
3d 6h
Merged PRs (30d)
51

Description

### Is your feature request related to a problem? Please describe.

`winapp run` confirms process creation, but it does not provide a general opt-in contract that the launched process survived startup. Native AOT verification needs a short internal wait so it can inspect the live process, loaded modules, and artifact provenance, but that readiness behavior is currently available only as part of `--verify-native-aot`.

A reusable launch-readiness option could also help non-AOT automation detect apps that start and immediately crash. Applying the behavior by default would change existing latency, `--detach`, and intentionally short-lived application semantics, so it needs an explicit contract.

### Describe the solution you'd like

Add an opt-in project/folder run option such as `--verify-launch` (name to be finalized). It should define and report whether the launched process survived a bounded startup window, with `--verify-native-aot` internally implying the same readiness check.

Before implementation, define:

- Whether readiness means process survival only or requires a main window for GUI apps.
- Behavior for console, background, and intentionally short-lived processes.
- Default/configurable timeout semantics.
- Interaction with `--detach`, `--debug-output`, `--no-launch`, execution aliases, JSON, and packaged AUMID activation.
- Exit-code and crash-remediation reporting.
- A reusable launch-verification service so Native AOT verification and general launch verification share one implementation.

The option should remain opt-in so existing `winapp run` behavior is preserved.

### Additional context

The Native AOT publish-and-run work already contains a verification-only startup survival check because module and provenance certification requires a live process. That internal requirement should remain in the Native AOT feature; this issue tracks exposing a general-purpose public option rather than broadening all runs silently.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the existing --verify-native-aot startup survival check and the winapp run option-handling path. Define the readiness contract and its interactions with the listed run modes, then confirm that general verification and Native AOT verification share the implementation while existing runs remain unchanged.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.