기술 블로그

← 모든 글

· Research AI

Staged SSE Without Spoilers: Research AI Wait UX

UI는 한국어입니다. 글 본문은 아직 영어 또는 중국어만 있습니다.

Cache miss means queue + worker. Users wait. A spinner alone feels broken; streaming half a verdict would lie.

What we stream

Four stage labels over SSE:

thinking → scoring → sourcing → synthesizing → done

done carries the full cached JSON — same shape as a cache hit. Stages are cosmetic progress, not partial decisions.

Where it runs

  • /result — single topic
  • /compare — two parallel EventSources
  • Next.js /api/research/stream proxies Fly when configured

On stream failure, client falls back to POST /api/research.

Rule

If the UI shows a verdict before done, we broke ADR-002. Progress UI is allowed; decision UI waits for the worker row.

Further reading: ADR-008 in xingai-research-ai/docs/adr/