From abf18d3583cccd1d3f3c9855ef6b404fbf5cc7f3 Mon Sep 17 00:00:00 2001 From: ethan Date: Fri, 5 Dec 2025 13:24:04 +1100 Subject: [PATCH] fix: use static mode for completed markdown to prevent render delay After the ORPC migration, async event boundaries let React deprioritize Streamdown's useTransition() indefinitely, causing 10+ second delays for plan body rendering. Fix: Set mode='static' for completed content (parseIncompleteMarkdown=false) to bypass useTransition() and render immediately. This aligns with Streamdown's intended API usage. --- bun.lock | 1 + src/browser/components/Messages/MarkdownCore.tsx | 3 +++ 2 files changed, 4 insertions(+) diff --git a/bun.lock b/bun.lock index d60ccf5fc4..753085edc6 100644 --- a/bun.lock +++ b/bun.lock @@ -1,5 +1,6 @@ { "lockfileVersion": 1, + "configVersion": 0, "workspaces": { "": { "name": "mux", diff --git a/src/browser/components/Messages/MarkdownCore.tsx b/src/browser/components/Messages/MarkdownCore.tsx index 8144ae4154..7e870251f2 100644 --- a/src/browser/components/Messages/MarkdownCore.tsx +++ b/src/browser/components/Messages/MarkdownCore.tsx @@ -62,6 +62,9 @@ export const MarkdownCore = React.memo( remarkPlugins={REMARK_PLUGINS} rehypePlugins={REHYPE_PLUGINS} parseIncompleteMarkdown={parseIncompleteMarkdown} + // Use "static" mode for completed content to bypass useTransition() deferral. + // After ORPC migration, async event boundaries let React deprioritize transitions indefinitely. + mode={parseIncompleteMarkdown ? "streaming" : "static"} className="space-y-2" // Reduce from default space-y-4 (16px) to space-y-2 (8px) controls={{ table: false, code: true, mermaid: true }} // Disable table copy/download, keep code/mermaid controls >