- [ ] [app/cluster/chat/page.tsx](../app/cluster/chat/page.tsx) currently fakes the queue -> stream transition entirely client-side with `setTimeout`/`setInterval` against hardcoded `REPLY`/`REPLY_REASONING` strings — replace with an SSE read from `POST /api/chat` (mock), parsing `queue`/`reasoning`/`content`/`done` events into the existing `Turn` state shape
- [ ] Collapsible reasoning block, queue position, and streaming-token rendering already exist in the component — this task is the data-source swap, not new UI