microsoft / microsoft/winappCli
[Feature]: Add general launch readiness verification to winapp run
- 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