fix(ui): ignore unsupported patch parts

This commit is contained in:
Shantur Rathore
2026-02-15 22:26:17 +00:00
parent 9a4d205d97
commit 56a052086f

View File

@@ -198,6 +198,16 @@ interface MessageContentItemProps {
onContentRendered?: () => void onContentRendered?: () => void
} }
function isSupportedPartType(part: unknown): boolean {
const type = (part as any)?.type
// Ignore part types the UI does not support rendering yet.
return !(typeof type === "string" && type === "patch")
}
function isContentPartType(type: unknown): boolean {
return type === "text" || type === "file"
}
function MessageContentItem(props: MessageContentItemProps) { function MessageContentItem(props: MessageContentItemProps) {
const record = createMemo(() => props.store().getMessage(props.messageId)) const record = createMemo(() => props.store().getMessage(props.messageId))
const messageInfo = createMemo(() => props.store().getMessageInfo(props.messageId)) const messageInfo = createMemo(() => props.store().getMessageInfo(props.messageId))
@@ -222,15 +232,9 @@ function MessageContentItem(props: MessageContentItemProps) {
const partId = ids[idx] const partId = ids[idx]
const part = current.parts[partId]?.data const part = current.parts[partId]?.data
if (!part) continue if (!part) continue
if ( if (!isSupportedPartType(part)) continue
part.type === "tool" ||
part.type === "reasoning" || if (!isContentPartType((part as any).type)) break
part.type === "compaction" ||
part.type === "step-start" ||
part.type === "step-finish"
) {
break
}
resolved.push(part) resolved.push(part)
} }
@@ -256,15 +260,9 @@ function MessageContentItem(props: MessageContentItemProps) {
const partId = ids[idx] const partId = ids[idx]
const part = current.parts[partId]?.data const part = current.parts[partId]?.data
if (!part) continue if (!part) continue
if ( if (!isSupportedPartType(part)) continue
part.type === "tool" ||
part.type === "reasoning" || if (!isContentPartType((part as any).type)) continue
part.type === "compaction" ||
part.type === "step-start" ||
part.type === "step-finish"
) {
continue
}
if (partHasRenderableText(part)) { if (partHasRenderableText(part)) {
return false return false
} }
@@ -549,6 +547,9 @@ export default function MessageBlock(props: MessageBlockProps) {
} }
orderedParts.forEach((part, partIndex) => { orderedParts.forEach((part, partIndex) => {
if (!isSupportedPartType(part)) {
return
}
if (part.type === "tool") { if (part.type === "tool") {
flushContent() flushContent()
const partId = part.id const partId = part.id