fix recall card binding lag

This commit is contained in:
Youzini-afk
2026-04-04 02:56:04 +08:00
parent 0220609018
commit 4bbbd4d09d
3 changed files with 126 additions and 4 deletions

View File

@@ -219,11 +219,32 @@ export function onChatLoadedController(runtime) {
export function onMessageSentController(runtime, messageId) {
const context = runtime.getContext();
const chat = context?.chat;
const message =
Array.isArray(chat) && Number.isFinite(messageId) ? chat[messageId] : null;
const normalizedMessageId =
messageId === null || messageId === undefined || messageId === ""
? null
: Number(messageId);
let resolvedMessageId = Number.isFinite(normalizedMessageId)
? normalizedMessageId
: null;
let message =
Array.isArray(chat) && Number.isFinite(resolvedMessageId)
? chat[resolvedMessageId]
: null;
if (!message?.is_user && Array.isArray(chat)) {
for (let index = chat.length - 1; index >= 0; index--) {
if (!chat[index]?.is_user) continue;
resolvedMessageId = index;
message = chat[index];
break;
}
}
if (!message?.is_user) return;
runtime.recordRecallSentUserMessage(messageId, message.mes || "");
runtime.recordRecallSentUserMessage(
resolvedMessageId,
message.mes || "",
);
runtime.refreshPersistedRecallMessageUi?.();
}