diff --git a/desktop/src/components/chat/CodeViewer.tsx b/desktop/src/components/chat/CodeViewer.tsx index 57abd7ed..ef9489a1 100644 --- a/desktop/src/components/chat/CodeViewer.tsx +++ b/desktop/src/components/chat/CodeViewer.tsx @@ -40,6 +40,7 @@ export function CodeViewer({ code, language, maxLines = 20, showLineNumbers = tr
               {tokens.map((line, i) => {
                 const lineProps = getLineProps({ line })
+                const hasLanguage = !!language && language !== 'text'
                 return effectiveShowLineNumbers ? (
                   
- - {line.map((token, key) => ( - - ))} + + {hasLanguage ? ( + line.map((token, key) => ( + + )) + ) : ( + line.map((token, key) => ( + + )) + )}
) diff --git a/desktop/src/components/chat/MessageList.tsx b/desktop/src/components/chat/MessageList.tsx index 430fb751..8c06b23e 100644 --- a/desktop/src/components/chat/MessageList.tsx +++ b/desktop/src/components/chat/MessageList.tsx @@ -117,7 +117,10 @@ export function MessageList() { )} - {chatState !== 'idle' && chatState !== 'streaming' && chatState !== 'permission_pending' && ( + {/* Only show StreamingIndicator for tool_executing state. + During 'thinking', the active ThinkingBlock already shows animation. + During 'streaming', the AssistantMessage shows the cursor. */} + {chatState === 'tool_executing' && ( )}