Skip to main content

JobEvent

Single broadcast frame for the SSE channel. Always has kind, id, phase, and at (epoch millis); result is only populated on Finished events; progress is only populated on Progress events.

atinteger<int64>required
idstringrequired
kindJobKind (string)required

Kind of work an event refers to. Stays a plain string in the serialized form so the frontend can pattern-match without importing the enum.

Possible values: [source, provider, seriesRefresh, codex]

phaseJobPhase (string)required

Lifecycle phase. Started fires after the per-key mutex was acquired (so a skipped job emits only Finished). Progress frames fire from inside the work body via ProgressHandle; they are not throttled the way DB progress writes are — the broadcast channel back-pressure handles laggy consumers by dropping intermediate frames.

Possible values: [started, progress, finished]

progress object
oneOf
null
result object
oneOf
null
JobEvent
{
"at": 0,
"id": "string",
"kind": "source",
"phase": "started",
"progress": "null",
"result": "null"
}