fix: stabilize recent dialogue memory typing

This commit is contained in:
134 2026-07-07 16:33:03 +08:00
parent c17de9def5
commit b17779e034

View File

@ -91,20 +91,20 @@ export function buildRecentDialogueMemory(params: {
const maxCharsPerEntry = Math.max(80, Math.min(500, params.maxCharsPerEntry || 220));
const maxTotalChars = Math.max(160, Math.min(1600, params.maxTotalChars || 900));
const sourceEntries = messages
.slice(-maxSourceMessages)
.map((message) => {
const role = message.role === "assistant" ? "assistant" : message.role === "user" ? "user" : null;
if (!role) return null;
const content = getMessageText(message, maxCharsPerEntry);
if (!content) return null;
return {
role,
content,
messageId: message.id,
} satisfies RecentDialogueMemoryEntry;
})
.filter((entry): entry is RecentDialogueMemoryEntry => Boolean(entry));
const sourceEntries: RecentDialogueMemoryEntry[] = [];
for (const message of messages.slice(-maxSourceMessages)) {
const role = message.role === "assistant" ? "assistant" : message.role === "user" ? "user" : null;
if (!role) continue;
const content = getMessageText(message, maxCharsPerEntry);
if (!content) continue;
sourceEntries.push({
role,
content,
messageId: message.id,
});
}
const preferredEntries =
isRecallRequest && !assistantRecall