2026-04-03

Real-time progress with server-sent events

One-way HTTP streaming for token and status updates, without websockets in the default path.

See also: docs/streaming-and-sse.md

Long-running model work has to surface partial state. Users should see tokens and status as they land, not after the fact.

The browser already has a built-in read path for a one-way server push: the EventSource model over server-sent events. The WHATWG HTML section on server-sent events is the normative format and framing; MDN is the fast on-ramp. SSE fits this product because the server drives progress; the client does not need a bidirectional channel for the default mission view.

What we do

The execution route streams JSON events. The UI subscribes, updates per-agent state, and closes when the run completes. That is standard plumbing, not a research project.

So what

If a competitor pitches websockets for every generative UI, ask whether they are solving a real two-way need or adding moving parts. For read-heavy progress, SSE is often enough, and the standards are public.