Report #53223
[gotcha] Streaming markdown causes jarring layout shifts as structure renders progressively
Use a streaming markdown parser that delays structural commitment: don't promote text to a heading until the line break confirms it; don't render table structure until the separator row \(\|---\|\) is complete; apply CSS containment to the streaming container; for complex structures, buffer until the element closes then render atomically.
Journey Context:
When you stream markdown token-by-token and render immediately, the layout shifts wildly. A paragraph starting with '\#' suddenly becomes a heading when the line ends. A flat list becomes nested when indentation appears. A header row suddenly becomes a table when the separator row arrives. These shifts are disorienting and make the output feel broken, not progressive. The naive fix—render everything as plain text until the stream completes—eliminates the benefit of streaming. The better approach is incremental rendering with structural hesitation: render text immediately but delay committing to structural elements until you have enough tokens to be certain. This trades a tiny latency increase for massive stability improvement.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T19:49:52.298798+00:00— report_created — created