From f594edd39f73fb09cdf4a000a8593b4e995aaef8 Mon Sep 17 00:00:00 2001 From: Dotta Date: Wed, 11 Mar 2026 13:21:58 -0500 Subject: [PATCH] Refine collapsed command failure styling Co-Authored-By: Paperclip --- .../transcript/RunTranscriptView.tsx | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/ui/src/components/transcript/RunTranscriptView.tsx b/ui/src/components/transcript/RunTranscriptView.tsx index 85780e90..71e9d546 100644 --- a/ui/src/components/transcript/RunTranscriptView.tsx +++ b/ui/src/components/transcript/RunTranscriptView.tsx @@ -666,12 +666,13 @@ function TranscriptCommandGroup({ block: Extract; density: TranscriptDensity; }) { - const [open, setOpen] = useState(block.items.some((item) => item.status === "error")); + const [open, setOpen] = useState(false); const compact = density === "compact"; const runningItem = [...block.items].reverse().find((item) => item.status === "running"); const latestItem = block.items[block.items.length - 1] ?? null; const hasError = block.items.some((item) => item.status === "error"); const isRunning = Boolean(runningItem); + const showExpandedErrorState = open && hasError; const title = isRunning ? "Executing command" : block.items.length === 1 @@ -680,14 +681,12 @@ function TranscriptCommandGroup({ const subtitle = runningItem ? summarizeToolInput("command_execution", runningItem.input, density) : null; - const statusTone = hasError - ? "text-red-700 dark:text-red-300" - : isRunning + const statusTone = isRunning ? "text-cyan-700 dark:text-cyan-300" : "text-foreground/70"; return ( -
+
{block.items.slice(0, Math.min(block.items.length, 3)).map((_, index) => ( - 0 && "-ml-1.5", - hasError - ? "text-red-600 dark:text-red-300" - : isRunning - ? "text-cyan-600 dark:text-cyan-300" - : "text-foreground/55", + isRunning + ? "border-cyan-500/25 bg-cyan-500/[0.08] text-cyan-600 dark:text-cyan-300" + : "border-border/70 bg-background text-foreground/55", isRunning && "animate-pulse", )} - /> + > + + ))}
@@ -729,7 +728,7 @@ function TranscriptCommandGroup({ {subtitle}
)} - {!subtitle && latestItem?.status === "error" && ( + {!subtitle && latestItem?.status === "error" && open && (
Command failed
@@ -752,14 +751,16 @@ function TranscriptCommandGroup({ {block.items.map((item, index) => (
- + ? "border-cyan-500/25 bg-cyan-500/[0.08] text-cyan-600 dark:text-cyan-300" + : "border-border/70 bg-background text-foreground/55", + )}> + + {summarizeToolInput("command_execution", item.input, density)}