Skip to content

Launch lifecycle

A launch has three independent dimensions. They look like overlapping concepts but they aren't.

1. Execution state

How the run is doing physically.

  • IN_PROGRESS — results are still streaming in.
  • FINISHED — the SDK called finish and all expected results arrived.
  • STOPPED — a user (or admin) stopped the run early.
  • INTERRUPTED — the run died unexpectedly (process kill, network).

2. Outcome

PASSED or FAILED. Set when execution state moves to FINISHED. Computed from the test results.

TIP

The outcome is no longer surfaced in Sulu's UI — manual triage may flip individual results after a launch finishes, making the recorded outcome stale. The progress bar's per-status counts are the source of truth users care about.

3. Closed

A boolean read-only freeze. When closed=true:

  • The launch can no longer be modified — no triage, no defect link, no editing tags.
  • It contributes to dashboards and audit history.
  • It can no longer be reopened (in v1).

Closing happens manually (the Close launch button in the header) or automatically via project-level auto-close policy.

Why three dimensions

Real-world flows mix them: a launch might be FINISHED, FAILED, not closed (run is done, has failures, you're still triaging). After triage you flip closed=true and the dashboard moves on.

Sulu Test Management System