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
+28
View File
@@ -52,3 +52,31 @@ test('mergeSessionMessagesAfterFinish matches Finish sync merge semantics', () =
['u1', 'a1'],
);
});
test('mergeConversationSnapshot keeps an omitted middle message between its anchors', () => {
const local = [
msg('u1', 'user', '第一轮'),
msg('a1', 'assistant', '第一轮回复'),
msg('u2', 'user', '第二轮'),
msg('a2', 'assistant', '第二轮回复'),
];
const server = [local[0], local[1], local[3]];
assert.deepEqual(
mergeConversationSnapshot(local, server).map((message) => message.id),
['u1', 'a1', 'u2', 'a2'],
);
});
test('mergeConversationSnapshot keeps local messages before the first and after the last server anchor', () => {
const local = [
msg('u0', 'user', '本地前置'),
msg('u1', 'user', '服务端消息'),
msg('a1', 'assistant', '服务端回复'),
msg('a2', 'assistant', '本地尾部'),
];
const server = [local[1], local[2]];
assert.deepEqual(
mergeConversationSnapshot(local, server).map((message) => message.id),
['u0', 'u1', 'a1', 'a2'],
);
});