Captures the private board streaming hang regression (commit 36b0296)
and its fix (commits ed1e289, 0daa4d2, d0fe661). Key learnings:
- All `async for chunk in stream` calls need first-chunk timeout
(DashScope/DeepSeek via LiteLLM occasionally never emit first chunk)
- Mid-stream break must not trigger full-content re-broadcast
(return partial content instead of double-broadcasting)
- Diagnostic pattern: monkey-patch + per-stage timeout to locate hang
Track: bug
Category: runtime-errors
Overlap: low (related streaming docs exist but different root cause)