diff --git a/viewer/src/client/components/chat/ChatCodeBlock.jsx b/viewer/src/client/components/chat/ChatCodeBlock.jsx index ee5d266..34639cf 100644 --- a/viewer/src/client/components/chat/ChatCodeBlock.jsx +++ b/viewer/src/client/components/chat/ChatCodeBlock.jsx @@ -68,6 +68,7 @@ export default function ChatCodeBlock({ lang, label, copyLabel = "Copy code", + showCopy = true, className = "", maxHeightClassName = "max-h-72", }) { @@ -137,14 +138,16 @@ export default function ChatCodeBlock({ color: #d4d4d8; } `} -
- {displayLabel} - -
+ {showCopy ? ( +
+ {displayLabel} + +
+ ) : null}
         
+    block.kind === "text" || block.kind === "thinking" || block.kind === "plan",
+  );
+}
+
 function StatusLine({ turn }) {
   if (turn.role !== "assistant") return null;
   // "running" is conveyed by the live pulse inside PhaseBadge — no separate
@@ -103,6 +109,7 @@ export default function ChatTurn({ turn, onOpenArtifact }) {
     turn.status === "complete" &&
     turn.blocks.some((block) => block.kind === "artifact");
   const copyText = turnCopyText(turn);
+  const showCopyButton = turnShowsCopyButton(turn);
   return (
     
- {!isUser ? ( + {!isUser && showCopyButton ? (