fix(call-overlay): dispatch all completed sentences in streamed chunks sequentially

This commit is contained in:
erijo 2026-08-18 22:07:31 +02:00
parent 01f4282f1f
commit df9827fb10

View file

@ -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 = () => {