fix: preserve chat order and published page scripts

This commit is contained in:
john
2026-07-15 14:05:09 +08:00
parent b3337c9643
commit 933466c8ab
5 changed files with 97 additions and 8 deletions
+11 -5
View File
@@ -234,14 +234,20 @@ export function shouldShowChatMessage(message: Message): boolean {
}
export function pushMessage(messages: Message[], incoming: Message): Message[] {
const last = messages[messages.length - 1];
if (last?.id && incoming.id && last.id === incoming.id) {
const existingIndex = incoming.id
? messages.findIndex((message) => message?.id === incoming.id)
: -1;
if (existingIndex >= 0) {
const existing = messages[existingIndex];
return [
...messages.slice(0, -1),
...messages.slice(0, existingIndex),
{
...last,
content: mergeMessageContent(last.content, incoming.content) as MessageContent[],
...existing,
...incoming,
metadata: { ...existing.metadata, ...incoming.metadata },
content: mergeMessageContent(existing.content, incoming.content) as MessageContent[],
},
...messages.slice(existingIndex + 1),
];
}
return [...messages, incoming];