From d4b0637cd5ac54262dd994b65a8131547da0b1f1 Mon Sep 17 00:00:00 2001 From: saridsa2 Date: Fri, 17 Apr 2026 12:24:49 +0530 Subject: [PATCH] fix: suggestions below chat + hide raw JSON during streaming MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Suggestions moved from above chat to below (before input) — agent reads summary first, sees suggestions after AI responds - During streaming, the last assistant message (raw JSON) is hidden — only the typing indicator shows. Once complete, parsed message renders. Co-Authored-By: Claude Opus 4.6 (1M context) --- src/components/call-desk/ai-chat-panel.tsx | 29 ++++++++++++++-------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/components/call-desk/ai-chat-panel.tsx b/src/components/call-desk/ai-chat-panel.tsx index 4e0b70f..3598bc1 100644 --- a/src/components/call-desk/ai-chat-panel.tsx +++ b/src/components/call-desk/ai-chat-panel.tsx @@ -120,22 +120,25 @@ export const AiChatPanel = ({ callerContext, callerSummary, onChatStart }: AiCha }); }, [append]); - const displayMessages = messages.map(msg => { - if (msg.role === 'assistant') { - const parsed = parseAiResponse(msg.content); - return { ...msg, content: parsed.message }; - } - return msg; - }); + // Filter out the currently-streaming assistant message (shows raw JSON). + // Only display completed assistant messages with parsed content. + const displayMessages = messages + .filter((msg, i) => { + if (msg.role === 'assistant' && isLoading && i === messages.length - 1) return false; + return true; + }) + .map(msg => { + if (msg.role === 'assistant') { + const parsed = parseAiResponse(msg.content); + return { ...msg, content: parsed.message }; + } + return msg; + }); return (
{!isSupervisor && } - {!isSupervisor && suggestions.length > 0 && ( - - )} -
{displayMessages.length === 0 && (
@@ -187,6 +190,10 @@ export const AiChatPanel = ({ callerContext, callerSummary, onChatStart }: AiCha
+ {!isSupervisor && suggestions.length > 0 && ( + + )} +