From c3e3012a9434ffbb6b808658f6a7dd4f0d70a96b Mon Sep 17 00:00:00 2001 From: Roe-xin Date: Thu, 26 Feb 2026 19:05:49 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=8F=91=E9=80=81=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E5=90=8E=E6=B8=85=E7=A9=BA=E4=B8=8A=E4=B8=8B=E6=96=87=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复了发送消息后上下文文件仍然显示在输入框中的问题。 - 在 sendMessage() 函数中添加 clearContextItems() 调用 - 调整脚本加载顺序,确保 contextDisplay 在 contextButton 之前初始化 --- src/utils/messageHandler.ts | 19 +++++++++++++++---- src/views/inputArea.ts | 7 ++++++- src/views/userInfoComponent.ts | 8 ++++---- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/utils/messageHandler.ts b/src/utils/messageHandler.ts index 46dd6bf..0dac3c1 100644 --- a/src/utils/messageHandler.ts +++ b/src/utils/messageHandler.ts @@ -46,7 +46,8 @@ export async function handleUserMessage( text: string, extensionPath?: string, mode?: RunMode, - serviceTier?: ServiceTier // 新增:服务等级参数 + serviceTier?: ServiceTier, // 服务等级参数 + contextItems?: Array<{ id: number; type: string; path: string }> // 上下文项参数 ) { console.log("收到用户消息:", text); @@ -199,7 +200,8 @@ export async function handleUserMessage( extensionPath, mode, undefined, - serviceTier + serviceTier, + contextItems ); return; } catch (error) { @@ -236,10 +238,19 @@ async function handleUserMessageWithBackend( extensionPath: string, mode?: RunMode, reuseTaskId?: string, // 可选,复用现有 taskId(用于 Plan 模式确认后继续执行) - serviceTier?: ServiceTier // 新增:服务等级参数 + serviceTier?: ServiceTier, // 服务等级参数 + contextItems?: Array<{ id: number; type: string; path: string }> // 上下文项参数 ): Promise { const historyManager = ChatHistoryManager.getInstance(); + // 处理上下文项:在消息前附加文件/文件夹路径 + let enhancedText = text; + if (contextItems && contextItems.length > 0) { + console.log("[MessageHandler] 处理上下文项:", contextItems.length); + const paths = contextItems.map(item => item.path).join('\n'); + enhancedText = `${paths}\n\n${text}`; + } + // 获取 historyManager 中的 taskId(由 ICHelperPanel 创建) // 优先使用 reuseTaskId,其次使用 historyManager 的 taskId const taskIdToUse = reuseTaskId || historyManager.getCurrentTaskId(); @@ -267,7 +278,7 @@ async function handleUserMessageWithBackend( return new Promise((resolve, reject) => { currentSession!.sendMessage( - text, + enhancedText, { onText: (fullText, isStreaming) => { // 不再单独处理文本,统一通过 onSegmentUpdate 处理 diff --git a/src/views/inputArea.ts b/src/views/inputArea.ts index 7ce0dfe..e1e41a4 100644 --- a/src/views/inputArea.ts +++ b/src/views/inputArea.ts @@ -296,8 +296,8 @@ export function getInputAreaScript(): string { return ` // 注意:getModeSelectorScript() 已在 webviewContent.ts 开头加载,这里不再重复加载 ${getModelSelectorScript()} - ${getContextButtonScript()} ${getContextDisplayScript()} + ${getContextButtonScript()} ${getContextCompressScript()} ${getOptimizeButtonScript()} @@ -438,6 +438,11 @@ export function getInputAreaScript(): string { autoResizeTextarea(); // 重置输入框高度 messageInput.focus(); + // 清空上下文项 + if (window.clearContextItems) { + window.clearContextItems(); + } + // 重置优化状态 resetOptimizeButton(); } diff --git a/src/views/userInfoComponent.ts b/src/views/userInfoComponent.ts index 246f146..5c5535b 100644 --- a/src/views/userInfoComponent.ts +++ b/src/views/userInfoComponent.ts @@ -26,16 +26,16 @@ export function getUserInfoComponentContent(): string { -
-
+
账户管理 退出登录