Commit Graph

6 Commits

Author SHA1 Message Date
f933d84cd1 feat: 新增会话压缩命令和上下文显示功能
- ICHelperPanel: 新增 compressConversation 命令处理,支持手动触发会话压缩
- ICHelperPanel: 在加载历史会话时设置 lastTaskId,确保压缩操作可用
- webviewContent: 新增 contextUsage 消息处理,更新上下文使用量显示
- userInteraction: 将用户回答超时时间从 5 分钟延长至 2 小时
2025-12-31 18:50:27 +08:00
c49aaf753c Merge remote-tracking branch 'origin/feat/plugin-front-end' into feat/back-to-front 2025-12-31 11:58:32 +08:00
0f8674e1c7 fix: 修复对话停止和会话记忆保存问题
- apiClient 添加 stopDialog 接口
- dialogService 添加 getSegments/getAccumulatedText 方法
- dialogService.abort 调用后端停止接口
- messageHandler.abortCurrentDialog 保存中止前的对话内容
- userInteraction 添加 getWebviewPanel 方法
- webviewContent 添加 resetSegmentedMessage 命令处理
- 修复停止后新消息覆盖旧消息的问题
2025-12-31 11:55:31 +08:00
b662d25c9c refactor: 将 Ask 模式的工具确认从弹窗改为内嵌聊天卡片
## 主要修改

   ### dialogService.ts
   - 移除 `vscode.window.showWarningMessage` 弹窗
   - 将工具确认改为添加 question 类型的 segment
   - 使用 `userInteractionManager.handleAskUser` 等待用户回答
   - 生成唯一的 askId: `tool_confirm_{confirmId}`

   ### userInteraction.ts
   - 导入 `submitToolConfirm` 方法
   - 在 `submitUserAnswer` 中识别工具确认类型的 askId
   - 根据用户选择("确认执行" / "取消")调用对应的 API

   ## 用户体验改进
   - 工具确认问题自然融入对话流程
   - 用户可以看到历史确认记录
   - 非阻塞式交互,体验更流畅
2025-12-31 10:18:35 +08:00
10f0877a5e fix: 修复AI询问时选项点击后选中状态丢失的问题
- 添加 answeredQuestions Map 存储已回答问题的状态
- 在重新渲染时恢复选中状态和 answered 类
- 已回答的问题自动隐藏输入框并禁用点击事件
- 确保用户选择在页面更新时保持显示
2025-12-24 10:01:53 +08:00
8ad6a48e8f feat: 实现核心服务层
- 新增对话服务(src/services/dialogService.ts)
  - 封装完整的对话生命周期管理
  - 集成 SSE 流式响应处理
  - 支持对话创建、消息发送、对话中止
  - 提供统一的事件回调接口

- 新增工具执行器(src/services/toolExecutor.ts)
  - 实现前端工具调用框架
  - 支持 readFile、writeFile、listFiles、executeCommand 等工具
  - 提供工具执行结果的标准化返回
  - 集成 VSCode API 进行文件和终端操作

- 新增用户交互处理(src/services/userInteraction.ts)
  - 实现 AI 向用户提问功能(AskUser)
  - 支持 input、confirm、quickPick 等交互类型
  - 使用 VSCode 原生 UI 组件展示问题
  - 提供答案收集和提交机制
2025-12-16 19:09:16 +08:00