New Runs sidebar destination listing detached invocations (detach:true) with phase, current step, project and a Cancel button while pending/running. Workspace-scoped like Audit/Approvals, polls every 2s. Detached runs are opt-in (detached.enabled) — the empty state explains how to enable them. Inline help doc DE+EN. DetachedRun model + listDetachedRuns/cancelDetachedRun in HubService, backed by the SDK's listInvocations()/cancelInvocation(). flutter analyze clean; 29 tests green (sidebar Y-stability updated for the new destination, model mapping unit-tested). Screenshot verification (light+dark) deferred — shared desktop in use. Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
1.4 KiB
Runs
The Runs page monitors detached invocations — flows submitted to run in the background rather than being waited on. Each row shows the flow, its current phase, the step it is on, and the project it was stamped with.
What a detached run is
Most flows run inline: you start them and wait for the result. A detached run is handed to the hub and returns an id immediately; the flow keeps running in the background. You come back later to read its result, follow it live, or cancel it.
Detached invocations are opt-in. They only work when the operator enabled them in the hub config:
detached:
enabled: true
Until then this page is empty — that is the normal state.
Phases
- Pending — accepted, not yet executing.
- Running — a step is executing (the row names it).
- Succeeded — finished; the result is retained under the hub's size/count/TTL limits.
- Failed — finished with an error (shown on the row).
- Cancelled — stopped by an operator.
Cancelling
A pending or running detached run carries a Cancel button. Cancelling signals the run to stop; a run that already finished cannot be cancelled (Studio says so rather than pretending).
Workspace scope
The page respects the active workspace: with a project selected it shows only that project's detached runs. Detached results are held in memory for the current hub process — they are not retained across a hub restart.