diff --git a/src/panels/ICHelperPanel.ts b/src/panels/ICHelperPanel.ts index 6f80e9b..2a23347 100644 --- a/src/panels/ICHelperPanel.ts +++ b/src/panels/ICHelperPanel.ts @@ -58,25 +58,25 @@ export async function showICHelperPanel( const historyManager = ChatHistoryManager.getInstance(); const panelId = (panel as any).__uniqueId; - // 在处理消息前,确保面板有任务上下文 - // 如果没有,则创建新任务(仅在首次发送消息时) - if (!historyManager.getPanelTask(panelId)) { - const workspacePath = vscode.workspace.workspaceFolders?.[0]?.uri.fsPath; - if (workspacePath) { - try { - const taskMeta = await historyManager.createTask(workspacePath, "新对话"); - historyManager.setPanelTask(panelId, taskMeta.taskId, workspacePath); - } catch (error) { - console.error("创建任务失败:", error); - } - } - } - - // 切换到当前面板的任务上下文 - historyManager.switchToPanelTask(panelId); - switch (message.command) { case "sendMessage": + // 仅在用户发送消息时,确保面板有任务上下文 + // 如果没有,则创建新任务(仅在首次发送消息时) + if (!historyManager.getPanelTask(panelId)) { + const workspacePath = vscode.workspace.workspaceFolders?.[0]?.uri.fsPath; + if (workspacePath) { + try { + const taskMeta = await historyManager.createTask(workspacePath, "新对话"); + historyManager.setPanelTask(panelId, taskMeta.taskId, workspacePath); + } catch (error) { + console.error("创建任务失败:", error); + } + } + } + + // 切换到当前面板的任务上下文 + historyManager.switchToPanelTask(panelId); + handleUserMessage(panel, message.text, context.extensionPath); break; case "readFile": diff --git a/src/views/inputArea.ts b/src/views/inputArea.ts index 5bf2ee1..1665e5f 100644 --- a/src/views/inputArea.ts +++ b/src/views/inputArea.ts @@ -8,8 +8,18 @@ export function getInputAreaContent(): string {
- -
+ +
+ +
+ + 添加文件或代码片段作为上下文 +
+ +