mirror of
https://github.com/siteboon/claudecodeui.git
synced 2026-06-29 16:12:53 +08:00
fix(chat): stop orphaned tool results rendering as raw text during pagination
Sessions load in pages from the bottom up, so a loaded page often contains a tool_result whose tool_use sits in an older, not-yet-loaded page. That result wasn't recognized as attached, so it was pushed as a standalone assistant message and its raw output rendered as unstyled Markdown. It only "fixed itself" once the user scrolled up far enough to load the page with the matching tool_use. Skip results that have a toolId but no matching tool_use in the loaded set — they attach and render correctly (inside their command row/group) once the older page loads. Results with no toolId still render as before.
This commit is contained in:
@@ -207,6 +207,15 @@ export function normalizedToChatMessages(messages: NormalizedMessage[]): ChatMes
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// A result with a toolId but no matching tool_use in the loaded set is
|
||||||
|
// almost always a tool_use/tool_result pair split across a pagination
|
||||||
|
// boundary (older page not loaded yet). Rendering its raw content here
|
||||||
|
// produces an unstyled dump that "fixes itself" once the older page
|
||||||
|
// loads; skip it and let it attach to its tool_use when that arrives.
|
||||||
|
if (msg.toolId) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
const content = formatToolResultContent(msg.content || '');
|
const content = formatToolResultContent(msg.content || '');
|
||||||
if (!content.trim()) {
|
if (!content.trim()) {
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user