Runner · Request context & routing
Progress tracking
Observe one durable job, relay ordered updates and distinguish progress from a terminal result.
Workflow
- Observe durable jobOpen observation for one job and optional sequence cursor.
- Relay ordered updateWrite a bounded chunk without inventing missing totals or translating requested controls into completed states.
- Report replay gapIf the cursor is too old or a chunk is missing, name the gap and require a fresh snapshot.
- Present current progressThe consumer shows explicit job state, phase and only known counts.
- Settle on terminal resultObservation finishes only from the durable terminal outcome, not from percent alone.
Failure boundaries
- Old cursorReplay gap: Fetch snapshot
- 100% but runningStill running: Wait for terminal state
- Unknown totalIndeterminate progress: Show phase only
runner.route.progress