import type { Message } from "./types"; export function reconcileMessages(current: Message[], incoming: Message[]) { const byId = new Map(current.map((message) => [message.message_id, message])); for (const message of incoming) byId.set(message.message_id, { ...byId.get(message.message_id), ...message }); return [...byId.values()].sort((a, b) => { const left = Date.parse(a.created_at); const right = Date.parse(b.created_at); if (Number.isFinite(left) && Number.isFinite(right)) return left - right; return a.created_at.localeCompare(b.created_at); }); }