Lightweight run status for progress polling.
Returns only the volatile, frequently-changing fields: status, step
counts (total_steps, finished_steps), timestamps (started_at,
completed_at, paused_at, pause_requested_at), usage_summary,
error, and has_export. The definition snapshot is intentionally
omitted to keep response size small.
Recommended polling pattern: call GET /runs/{run_id} once after
starting a run to load the immutable definition snapshot and initial
metadata, then poll this endpoint until status reaches a terminal value
(completed, failed, or cancelled). has_export becoming true
signals that a download is ready via GET /runs/{run_id}/download.
The transient pausing state is observable here: status == "running"
with pause_requested_at set means a pause is in progress but the
current wave has not yet finished draining.