From 772b0672023d424c99f0486abb5771221f57f1b9 Mon Sep 17 00:00:00 2001 From: XiaoFeng <117837368+Fzhiyu1@users.noreply.github.com> Date: Mon, 12 Jan 2026 09:29:53 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D"=E5=BD=93=E5=89=8D?= =?UTF-8?q?=E6=9C=89=E5=AF=B9=E8=AF=9D=E6=AD=A3=E5=9C=A8=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E4=B8=AD"=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题:当 currentSession.active 为 true 时,条件判断阻止了 dialogManager.createSession() 的调用,导致无法中止旧会话。 修复:移除条件判断,始终通过 dialogManager 创建会话, 让其内部自动处理旧会话的中止。 --- src/utils/messageHandler.ts | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/utils/messageHandler.ts b/src/utils/messageHandler.ts index 2d0c5da..0c8ef24 100644 --- a/src/utils/messageHandler.ts +++ b/src/utils/messageHandler.ts @@ -159,13 +159,11 @@ async function handleUserMessageWithBackend( // 优先使用 reuseTaskId,其次使用 historyManager 的 taskId const taskIdToUse = reuseTaskId || historyManager.getCurrentTaskId(); - // 创建或复用会话 - if (!currentSession || !currentSession.active) { - currentSession = dialogManager.createSession(extensionPath, taskIdToUse || undefined); - // 保存 taskId 用于后续操作(如压缩) - lastTaskId = currentSession.getTaskId(); - console.log("[MessageHandler] 创建会话: taskId=", lastTaskId, "来源=", taskIdToUse ? "historyManager" : "新生成"); - } + // 创建会话(dialogManager 会自动处理旧会话的中止) + currentSession = dialogManager.createSession(extensionPath, taskIdToUse || undefined); + // 保存 taskId 用于后续操作(如压缩) + lastTaskId = currentSession.getTaskId(); + console.log("[MessageHandler] 创建会话: taskId=", lastTaskId, "来源=", taskIdToUse ? "historyManager" : "新生成"); // 显示状态栏 panel.webview.postMessage({