From df9827fb10f0b03dbe239a4901f9a37f773998f7 Mon Sep 17 00:00:00 2001 From: erijo Date: Tue, 18 Aug 2026 22:07:31 +0200 Subject: [PATCH] fix(call-overlay): dispatch all completed sentences in streamed chunks sequentially --- src/lib/components/chat/Chat.svelte | 30 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/src/lib/components/chat/Chat.svelte b/src/lib/components/chat/Chat.svelte index 87a40296f6..b511941507 100644 --- a/src/lib/components/chat/Chat.svelte +++ b/src/lib/components/chat/Chat.svelte @@ -1616,23 +1616,21 @@ messageContentParts.pop(); } - const nextContentPart = messageContentParts.at(-1) ?? ''; - if (!nextContentPart || (!final && nextContentPart === message.lastSentence)) { - return; + let n = message.ttsSent ?? 0; + for (; n < messageContentParts.length; n++) { + const part = messageContentParts[n]; + if (!part) continue; + if (!final && (part.split(/\s+/).length < 4 || part.length < 50)) break; + eventTarget.dispatchEvent( + new CustomEvent('chat', { + detail: { + id: message.id, + content: part + } + }) + ); } - - if (!final) { - message.lastSentence = nextContentPart; - } - - eventTarget.dispatchEvent( - new CustomEvent('chat', { - detail: { - id: message.id, - content: nextContentPart - } - }) - ); + message.ttsSent = n; }; const getContents = () => {