streamRunEvents subscribes to per-run events.
- Method:
streamRunEvents - Scope:
run:read - Transport: WebSocket RPC (streaming only)
- Request:
{ runId, afterSeq? } - Response:
{ streamId, runId, afterSeq, currentSeq }
v1 and include InvalidRequest, Unauthorized, Forbidden, RunNotFound, SeqOutOfRange, and Internal.
- Reconnect: pass the last seen
seqasafterSeq. - Gap resync: if
seqwas truncated (default window10000), the stream emitsGapResync { fromSeq, toSeq }with a full run snapshot, then resumes. - Heartbeat:
Heartbeatframes are emitted separately from event frames.
SideEffectBoundaryCrossed rows include lateCompletion: true and
archivedByOp when applicable after a detached tool completed after its live
journal row was reverted or archived. A still-live row moves to
revert-stale.