mirror of
https://github.com/Youzini-afk/ST-Bionic-Memory-Ecology.git
synced 2026-05-15 22:30:38 +08:00
fix: MESSAGE_SENT 时把召回记录重绑到刚入场的 user 楼层(对齐酒馆 GENERATION_AFTER_COMMANDS 早于 sendMessageAsUser)
Made-with: Cursor
This commit is contained in:
48
index.js
48
index.js
@@ -1543,6 +1543,53 @@ function doesChatUserMessageMatchRecallCandidates(message, candidateHashes) {
|
||||
return candidateHashes.has(hashRecallInput(normalizedMessage));
|
||||
}
|
||||
|
||||
function rebindRecallRecordToNewUserMessage(newUserMessageIndex) {
|
||||
const chat = getContext()?.chat;
|
||||
if (
|
||||
!Array.isArray(chat) ||
|
||||
!Number.isFinite(newUserMessageIndex) ||
|
||||
!chat[newUserMessageIndex]?.is_user
|
||||
) {
|
||||
return;
|
||||
}
|
||||
if (readPersistedRecallFromUserMessage(chat, newUserMessageIndex)) {
|
||||
return;
|
||||
}
|
||||
const recentTransaction = findRecentGenerationRecallTransactionForChat();
|
||||
const recallResult = getGenerationRecallTransactionResult(recentTransaction);
|
||||
if (
|
||||
!recallResult ||
|
||||
recallResult.status !== "completed" ||
|
||||
!recallResult.didRecall ||
|
||||
!String(recallResult.injectionText || "").trim()
|
||||
) {
|
||||
return;
|
||||
}
|
||||
const record = buildPersistedRecallRecord(
|
||||
{
|
||||
injectionText: String(recallResult.injectionText || "").trim(),
|
||||
selectedNodeIds: recallResult.selectedNodeIds || [],
|
||||
recallInput: String(
|
||||
recallResult.recallInput || recallResult.userMessage || "",
|
||||
),
|
||||
recallSource: String(recallResult.source || ""),
|
||||
hookName: String(
|
||||
recallResult.hookName ||
|
||||
recentTransaction?.lastRecallMeta?.hookName ||
|
||||
"",
|
||||
),
|
||||
tokenEstimate: estimateTokens(
|
||||
String(recallResult.injectionText || "").trim(),
|
||||
),
|
||||
manuallyEdited: false,
|
||||
},
|
||||
null,
|
||||
);
|
||||
if (writePersistedRecallToUserMessage(chat, newUserMessageIndex, record)) {
|
||||
triggerChatMetadataSave(getContext(), { immediate: false });
|
||||
}
|
||||
}
|
||||
|
||||
function resolveRecallPersistenceTargetUserMessageIndex(
|
||||
chat,
|
||||
{
|
||||
@@ -9235,6 +9282,7 @@ function onMessageSent(messageId) {
|
||||
getContext,
|
||||
isTrivialUserInput,
|
||||
recordRecallSentUserMessage,
|
||||
rebindRecallRecordToNewUserMessage,
|
||||
refreshPersistedRecallMessageUi: schedulePersistedRecallMessageUiRefresh,
|
||||
},
|
||||
messageId,
|
||||
|
||||
Reference in New Issue
Block a user