events

abstract val events: SharedFlow<RunEvent>(source)

Hot SharedFlow of lifecycle events emitted during the run.

The underlying flow replays a bounded recent history, so a subscriber that attaches shortly after Runner.submit returns can initialise a progress indicator without missing the run start on very fast models.

The flow is never closed; it simply stops emitting after the terminal event (RunEvent.RunCompleted, RunEvent.RunCancelled, or RunEvent.RunFailed). Collectors should cancel their collection job after receiving a terminal event if they do not want to block indefinitely.