From 95e7165034142cc4bcd0fda2f4d91a60750b16a8 Mon Sep 17 00:00:00 2001 From: Bryan Helmkamp Date: Wed, 15 Apr 2026 09:56:36 -0400 Subject: [PATCH] fix(web): hide empty assistant boxes for tool-call-only responses Skip rendering assistant turn when agent.message has empty text (LLM responded with only tool calls, no message content). Co-Authored-By: Claude Opus 4.6 (1M context) --- apps/fabro-web/app/routes/run-stages.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/fabro-web/app/routes/run-stages.tsx b/apps/fabro-web/app/routes/run-stages.tsx index b5bc0c9e8..4fa4add43 100644 --- a/apps/fabro-web/app/routes/run-stages.tsx +++ b/apps/fabro-web/app/routes/run-stages.tsx @@ -39,9 +39,11 @@ function turnsFromEvents(events: RawEvent[], stageId: string): TurnType[] { case "stage.prompt": turns.push({ kind: "system", content: e.properties?.text as string ?? e.text ?? "" }); break; - case "agent.message": - turns.push({ kind: "assistant", content: e.properties?.text as string ?? e.text ?? "" }); + case "agent.message": { + const msg = e.properties?.text as string ?? e.text ?? ""; + if (msg) turns.push({ kind: "assistant", content: msg }); break; + } case "agent.tool.started": { const callId = e.properties?.tool_call_id as string ?? e.tool_call_id ?? ""; pendingTools.set(callId, {