Commit Graph

50 Commits

Author SHA1 Message Date
95b1bd7678 Merge branch 'feat/back-to-front' into feat/front-end 2026-01-13 20:45:20 +08:00
7d1b8f7e26 fix: 优化登录流程和余额查询逻辑
- 添加 fetchBalanceWithToken 支持登录时直接传入 token 查询余额
- AuthProvider 会话加载改为同步方式避免时序问题
- 添加调试日志便于排查问题
2026-01-13 20:06:42 +08:00
5753e120ba feat: 添加一键优化提示词功能
- 在 ICHelperPanel.ts 添加 optimizePrompt 消息处理分支
- 新增 promptOptimizeService.ts 调用后端优化 API
- 完善 WebView 端优化按钮交互逻辑
2026-01-13 19:29:17 +08:00
b9e63bc9a9 Merge branch 'feat/back-to-front' into feat/front-end 2026-01-13 16:24:17 +08:00
21a8abd5cf Merge remote-tracking branch 'origin/feat/front-end' into feat/back-to-front
# Conflicts:
#	src/services/dialogService.ts
2026-01-13 14:34:08 +08:00
4b2da8244f fix: 修复登录状态相关问题
- 修复登录时VSCode弹出"账户不一致"确认框的问题
- 添加SSE业务错误码401检测,正确触发重新登录流程
- 修复侧边栏登录状态不刷新的问题,添加onDidChangeSessions监听
2026-01-13 14:20:55 +08:00
8cf0e32184 Merge branch 'feat/back-to-front' into feat/front-end 2026-01-13 11:07:53 +08:00
72a84ed9e2 fix: 修复 showPlan 工具交互逻辑和 JWT Token 问题
- 修复 pendingQuestions 缺失时无法提交回答的问题
- 添加 fallbackTaskId 参数支持直接发送到后端
- apiClient 自动获取 JWT Token
- 取消按钮改为中止对话而非发送消息
2026-01-13 10:58:33 +08:00
58113fb109 feat:Credits不足进行跳转到web端的重置界面 2026-01-12 21:03:37 +08:00
25966bc1e2 feat:显示资源点
- 登录之后就获取资源点并持久化
- 显示剩余资源点到页面上
- 一轮对话完成之后重新获取资源点并且更新缓存
2026-01-12 19:09:19 +08:00
37a121c3de fix: 修复余额查询接口路径
添加 /strangeloop 前缀,修正 API 路径为 /strangeloop/api/credit/balance
2026-01-12 18:35:48 +08:00
fd11eadc19 fix: 修复资源点余额查询一直返回0的问题
- 改为直接调用 StrangeLoop /api/credit/balance 接口
- 携带 JWT token 认证,绕开 Gateway 缺少接口的问题
- 使用 availableCredits 作为余额值
- 固定 5s 超时,避免阻塞发送前检查
- 401/403 单独提示登录过期
- 补充 json.msg 错误消息兜底
2026-01-12 16:45:07 +08:00
a1e88d473b fix: 修复自动压缩机制的多个问题
- P0: 新增工具执行结果追踪(trackToolResult),防止后端重启丢失
- P1: 版本冲突检查改为从尾部扫描,与加载逻辑一致
- P1: projectPath为空时添加用户警告通知
- 追踪工具错误信息,保留失败记录
2026-01-12 14:29:15 +08:00
a02027e7c9 fix: 修复会话中止时 Promise 挂起问题
- 添加 completeCallback 实例变量保存完成回调
- abort() 中先标记 hasCompleted 防止 onClose 重复触发
- abort() 中主动调用完成回调以结束 Promise
2026-01-12 09:43:12 +08:00
bdc55c727a feat: 实现发送消息前余额检测
- creditsService.ts: 新增余额缓存和检测服务
- apiClient.ts: 新增 getCreditBalance() API 调用
- dialogService.ts: SSE credit_update 事件更新余额缓存
- messageHandler.ts: 发送消息前检测余额,低于5点阻止发送
2026-01-10 21:45:41 +08:00
2af79cf1dc fix: 修复对话会话管理问题
- 添加 serviceTier 调试日志
- abortCurrentSession 时清空会话引用,确保下次创建新会话
2026-01-10 21:15:48 +08:00
4abb979eab feat: 新增 iverilog 工具支持
- api.ts: 新增 IverilogArgs 类型定义
- toolExecutor.ts: 新增 executeIverilog 函数,支持直接执行 iverilog 命令
2026-01-10 21:15:26 +08:00
9786b7141c Merge remote-tracking branch 'refs/remotes/origin/merge/merge' into feat/back-to-front
# Conflicts:
#	src/config/settings.ts
#	src/services/icCoderAuthProvider.ts
2026-01-10 19:01:22 +08:00
4a7af49fea fix: 修复SSE连接关闭后停止按钮不消失的问题
- 添加hasCompleted标志位跟踪complete事件
- onClose时检查并补充完成逻辑
- sendMessage时重置hasCompleted状态
2026-01-10 16:45:48 +08:00
15a1de3a90 feat: 支持多VCD文件生成功能
- iverilogRunner新增generateMultiVCD函数
- toolExecutor处理dumpModules参数
- api.ts扩展SimulationArgs接口
- messageArea支持多波形预览
2026-01-10 16:45:39 +08:00
5c19be22d3 feat: 实现计划管理工具和进度条实时更新
- 添加 plan_step_add/remove/update 和 plan_summary_update 事件支持
- 添加 onPhaseProgress 回调,联动独立进度条组件
- 扩展 MessageSegment 接口支持 progress 类型
- 映射 phaseId (sim -> simulation) 适配进度条
2026-01-09 19:26:55 +08:00
6abec8c7b7 feat:预览波形展开新开窗口展示完整波形 2026-01-09 19:06:34 +08:00
c58e3603de feat:获取会员信息 并且展示title 2026-01-09 16:24:27 +08:00
178f3a7498 feat: 从JWT解析userId并添加资源点余额提醒
- 新增 jwtUtils.ts 解析JWT token获取user_id
- dialogService 从登录session获取真实userId
- 添加 credit_update 事件处理
- 余额低于5点时弹窗提醒用户充值
- settings.ts 登录URL改为可配置
2026-01-09 15:53:54 +08:00
940584e1ea feat/获取用户信息+展示用户名称 2026-01-09 15:26:33 +08:00
79ef879b97 Merge branch 'feat/back-to-front' into feature/waveform-renderer 2026-01-08 17:26:29 +08:00
b1dd2442b8 feat:surfer替换vcdroom 2026-01-07 17:30:34 +08:00
9281d1d724 feat: 支持服务等级动态切换
- 添加 ServiceTier 类型定义
- 修改 dialogService 接收 serviceTier 参数
- 修改 messageHandler 传递 serviceTier 参数
- 修改 ICHelperPanel 传递 UI 选择的服务等级
2026-01-07 16:13:56 +08:00
c22081c5e9 feat: 处理后端 heartbeat 事件,保持 SSE 连接活跃 2026-01-05 19:04:04 +08:00
ada4806493 feat: 集成 waveform_trace 波形调试工具
新增功能:
- waveformTracer.ts: 调用 waveform_trace.exe 的工具实现
- toolExecutor.ts: 添加 waveform_trace 工具分发
- types/api.ts: 添加 WaveformTraceArgs 类型定义

工具源码 (tools/waveform_trace/src/):
- AST 解析 + BFS 信号追踪
- VCD 波形解析
- 修复通用 testbench 支持

配置文件:
- .gitignore: 排除 exe 和打包产物
- .vscodeignore: 发布时排除源码
- build.bat/build.sh: 打包脚本
2026-01-05 18:18:57 +08:00
f933d84cd1 feat: 新增会话压缩命令和上下文显示功能
- ICHelperPanel: 新增 compressConversation 命令处理,支持手动触发会话压缩
- ICHelperPanel: 在加载历史会话时设置 lastTaskId,确保压缩操作可用
- webviewContent: 新增 contextUsage 消息处理,更新上下文使用量显示
- userInteraction: 将用户回答超时时间从 5 分钟延长至 2 小时
2025-12-31 18:50:27 +08:00
b794d1ceb0 feat: 实现上下文使用量监控和会话压缩功能
- sseHandler: 新增 onContextUsage 回调处理上下文使用量事件
- dialogService: 集成上下文使用量回调,追踪 AI 消息用于后端重启恢复
- apiClient: 新增 compactDialog API 支持手动压缩对话历史
- messageHandler: 新增 lastTaskId 管理机制,支持会话恢复后的压缩操作,转发上下文使用量到 WebView
2025-12-31 18:50:20 +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
16e91bd2c0 feat: 实现会话记忆同步和知识图谱恢复机制
- 添加 memory_compacted SSE 事件处理
- 添加 CompactedMemory/CompactedMessage 类型定义
- 添加 COMPACTION_SUMMARY 消息类型
- 实现压缩数据存储到 conversation.json
- 实现从 conversation.json 构建恢复数据
- 发送请求时附带 knowledgeData 用于恢复知识图谱
2025-12-31 09:35:20 +08:00
42481cd314 feat: SSE 事件处理和计划确认 UI
- sseHandler 添加 onPlanConfirm、onToolConfirm 回调
- messageArea 添加计划确认对话框渲染
2025-12-30 20:42:35 +08:00
e77194628a feat: 模式传递和 API 调用
- dialogService 接收并传递 mode 参数
- apiClient 构造带 mode 的请求
- messageHandler 从 WebView 消息获取 mode
2025-12-30 20:42:28 +08:00
bd7a85b705 Merge remote-tracking branch 'origin/feat/Plugin-front-end' into feat/back-to-front 2025-12-30 09:42:23 +08:00
44bbcde5cf feat: 知识图谱工具支持 + 智能体事件处理
- dialogService: 添加智能体 SSE 事件处理
- toolExecutor: 添加 knowledge_save/knowledge_load 工具
- messageArea: 添加智能体消息渲染支持
- 添加 CLAUDE.md 项目配置
2025-12-30 09:40:04 +08:00
f9c9fa1840 feat(auth): 添加登录状态检查,
- 未登录时不会自动打开面板命令打开也会显示需要登录
- 登录之后就回自动打开对话面板
2025-12-29 18:52:56 +08:00
53e91fc5a0 feat: 集成 VSCode Authentication API 实现用户登录
- 新增 Authentication Provider,登录信息显示在左下角
- 支持浏览器登录并自动回调
- 登录/登出后自动刷新窗口
- 侧边栏根据登录状态显示不同按钮
2025-12-29 18:25:21 +08:00
082ef923b2 feat: 添加智能体事件类型和SSE处理
- api.ts 添加4个智能体事件类型定义
- sseHandler.ts 添加智能体事件回调和分发
2025-12-29 09:22:26 +08:00
9bfa774336 feat: 添加 knowledge_save/load 工具
- api.ts: 添加 knowledge_save/load 类型定义
- toolExecutor.ts: 实现知识图谱保存和加载功能
2025-12-26 11:41:38 +08:00
009da59d38 Merge remote-tracking branch 'origin/feat/Plugin-front-end' into feat/back-to-front 2025-12-25 16:18:05 +08:00
5ea5ddba6e feat: 添加 file_delete 工具支持 2025-12-25 16:17:31 +08:00
10f0877a5e fix: 修复AI询问时选项点击后选中状态丢失的问题
- 添加 answeredQuestions Map 存储已回答问题的状态
- 在重新渲染时恢复选中状态和 answered 类
- 已回答的问题自动隐藏输入框并禁用点击事件
- 确保用户选择在页面更新时保持显示
2025-12-24 10:01:53 +08:00
6c5d470bad fex:尝试修复流式显示工具调用不穿插显示的问题 2025-12-17 10:03:40 +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
ba75541dd6 feat: 实现后端通信层
- 新增 HTTP 客户端(src/services/apiClient.ts)
  - 实现对话创建、消息发送、对话中止等 API 调用
  - 支持用户答案提交和对话历史查询
  - 统一的错误处理和超时控制

- 新增 SSE 事件处理器(src/services/sseHandler.ts)
  - 实现 Server-Sent Events 流式数据解析
  - 支持 MessageChunk、ToolExecution、AskUser、Error 等事件类型
  - 使用 eventsource-parser 库处理 SSE 数据流
  - 提供事件回调机制,支持实时 UI 更新
2025-12-16 19:09:04 +08:00