From 599404b51216cf02299054d00110faf361ca3cf4 Mon Sep 17 00:00:00 2001 From: Youzini-afk <13153778771cx@gmail.com> Date: Tue, 24 Mar 2026 22:45:01 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=9C=A8=E6=B6=88=E6=81=AF=E8=90=BD?= =?UTF-8?q?=E7=9B=98=E5=90=8E=E8=A7=A6=E5=8F=91=E8=87=AA=E5=8A=A8=E6=8F=90?= =?UTF-8?q?=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.js | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/index.js b/index.js index 9833093..4d05d17 100644 --- a/index.js +++ b/index.js @@ -915,10 +915,14 @@ async function handleExtractionSuccess(result, endIdx, settings) { }; } +function isAssistantChatMessage(message) { + return Boolean(message) && !message.is_user && !message.is_system; +} + function getAssistantTurns(chat) { const assistantTurns = []; for (let index = 0; index < chat.length; index++) { - if (chat[index].is_user === false && !chat[index].is_system) { + if (isAssistantChatMessage(chat[index])) { assistantTurns.push(index); } } @@ -1456,19 +1460,25 @@ function onMessageSwiped() { inspectHistoryMutation("message-swiped"); } -async function onGenerationAfterCommands() { - await runExtraction(); -} - async function onBeforeCombinePrompts() { await runRecall(); } -function onMessageReceived() { +async function onMessageReceived() { // 新消息到达,图状态可能需要更新 if (currentGraph) { saveGraphToChat(); } + + const context = getContext(); + const chat = context?.chat; + const lastMessage = Array.isArray(chat) && chat.length > 0 + ? chat[chat.length - 1] + : null; + + if (isAssistantChatMessage(lastMessage)) { + await runExtraction(); + } } // ==================== UI 操作 ==================== @@ -1884,10 +1894,6 @@ async function onReembedDirect() { // 注册事件钩子 eventSource.on(event_types.CHAT_CHANGED, onChatChanged); - eventSource.on( - event_types.GENERATION_AFTER_COMMANDS, - onGenerationAfterCommands, - ); eventSource.on( event_types.GENERATE_BEFORE_COMBINE_PROMPTS, onBeforeCombinePrompts,