From 2bf231cfafb7123fc1ac67b79100cfd62e47afd3 Mon Sep 17 00:00:00 2001 From: Youzini-afk <13153778771cx@gmail.com> Date: Thu, 23 Apr 2026 01:52:16 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=8C=81=E4=B9=85=E5=8C=96=E6=9C=AA?= =?UTF-8?q?=E6=8E=A5=E5=8F=97=E6=97=B6=E4=BB=8D=E5=9C=A8=E5=86=85=E5=AD=98?= =?UTF-8?q?=E4=B8=AD=E6=8E=A8=E8=BF=9B=20lastProcessedAssistantFloor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 当提取核心成功但持久化未被接受时,之前不推进楼层会导致同一 会话内 pending 模式重复提取已处理的楼层。现在即使持久化未 接受也在内存中推进楼层(不追加 batchJournal,保持回滚完整性)。 重载时 floor 和图谱都会回退到最后持久化状态,保持一致。 --- maintenance/extraction-controller.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/maintenance/extraction-controller.js b/maintenance/extraction-controller.js index 5a3c0da..0450440 100644 --- a/maintenance/extraction-controller.js +++ b/maintenance/extraction-controller.js @@ -767,6 +767,11 @@ export async function executeExtractionBatchController( ); } } else if (!persistence.accepted) { + // 即使持久化未被接受,仍在内存中推进 lastProcessedAssistantFloor, + // 防止同一会话内对已经抽取过的楼层重复提取。 + // 此时不追加 batchJournal(保持回滚完整性)。 + // 如果用户重载,floor 和图谱都会回退到最后持久化状态,保持一致。 + runtime.updateProcessedHistorySnapshot(chat, endIdx); runtime.setLastExtractionStatus( "提取待恢复", `楼层 ${startIdx}-${endIdx} 已抽取,但持久化状态为 ${persistence.outcome || "failed"}${persistence.reason ? ` · ${persistence.reason}` : ""}`,