fix(canvas): backfill chat history media into canvas
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled

This commit is contained in:
Your Name 2026-03-01 01:23:04 +08:00
parent fb91e60069
commit 1625b59e43

View File

@ -2934,11 +2934,7 @@ export function CanvasChatPanel({ chatId, initialMessages = [], onClose, onOpenF
if (loadedHistorySignatureRef.current === signature) return;
loadedHistorySignatureRef.current = signature;
processedMessageIds.current = new Set(
historyMessages
.filter((message) => message.role === "assistant")
.map((message) => message.id)
);
processedMessageIds.current = new Set();
hasHydratedHistoryRef.current = true;
setMessages(historyMessages);
setMessageViewportKey((prev) => prev + 1);
@ -3127,6 +3123,17 @@ export function CanvasChatPanel({ chatId, initialMessages = [], onClose, onOpenF
imageUrlSet.add(rawUrl);
});
const legacyContent =
typeof (message as any).content === "string"
? (message as any).content
: "";
if (legacyContent) {
extractAssistantImageUrls(legacyContent, nearestUserImageKeys).forEach((url) =>
imageUrlSet.add(url)
);
extractVideoUrls(legacyContent).forEach((url) => videoUrlSet.add(url));
}
const imageUrls = Array.from(imageUrlSet);
const videoUrls = Array.from(videoUrlSet);
if (imageUrls.length === 0 && videoUrls.length === 0) continue;