Runner · Request context & routing

Progress tracking

Observe one durable job, relay ordered updates and distinguish progress from a terminal result.

Workflow

  1. Observe durable jobOpen observation for one job and optional sequence cursor.
  2. Relay ordered updateWrite a bounded chunk without inventing missing totals or translating requested controls into completed states.
  3. Report replay gapIf the cursor is too old or a chunk is missing, name the gap and require a fresh snapshot.
  4. Present current progressThe consumer shows explicit job state, phase and only known counts.
  5. 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