Commit Graph

58 Commits

Author SHA1 Message Date
2a280aaa93 refactor: 优化 ICHelperPanel 组件结构
- 将 1346 行的单文件拆分为 7 个职责单一的模块
   - authHelper: 认证和登录检查
   - userInfoHelper: 用户信息管理
   - conversationHelper: 会话历史加载
   - vcdHelper: VCD 文件处理
   - contextHelper: 上下文管理
   - fileHelper: 文件操作
   - messageRouter: 消息路由分发
   - 主组件精简至 157 行,提升可维护性
2026-03-12 11:58:43 +08:00
d740f4da44 feat: 支持文件路径标签带行号点击跳转
- 前端解析 file.v:1-2 格式,提取文件名和行号
   - 新增 openFilePathTag 命令,支持智能文件查找
   - 修复模板字符串中正则表达式转义问题
   - 不影响现有 openFile 和 diff 功能
2026-03-06 16:24:21 +08:00
45934baf0a feat: 添加上下文项点击功能
- 文件类型可点击打开文件
   - 代码片段可点击打开文件并选中对应代码
   - 文件夹类型不可点击
2026-03-06 10:13:27 +08:00
be0555d6bc feat:codeToChat 2026-03-06 08:59:02 +08:00
fa55e32153 feat: 支持 AskUserQuestion 多问题和多选功能
- 新增 QuestionItem 类型支持单个问题配置(question/options/multiSelect)
   - AskUserEvent 改为 questions 数组支持多问题
   - AnswerRequest 新增 answers 字段支持多问题答案提交
   - 前端渲染支持单选按钮(radio)和多选复选框(checkbox)
   - 答案格式:{\"0\": [\"选项1\"], \"1\": [\"选项A\", \"选项B\"]}
   - 保持向后兼容旧的单问题格式
2026-03-05 16:58:59 +08:00
1f9a1822c9 fix: 修复打包后图片资源无法加载的问题
- 配置 webpack copy-webpack-plugin 将 src/assets 复制到 dist/assets
- 更新所有图片引用路径从 src/assets 改为 dist/assets
- 修改 localResourceRoots 配置以允许访问 dist/assets
2026-03-05 10:38:40 +08:00
52834047f2 feat: 每次登录都显示试用用户欢迎弹窗
- 移除 hasWelcomed 标记,不再记录是否已显示
- 试用用户每次打开聊天面板都会看到欢迎弹窗
2026-03-03 19:19:37 +08:00
76817675f1 fix: 修复试用用户欢迎弹窗不显示的问题
- 修复 userService 中 null 值未正确赋值的问题
- 优化欢迎弹窗判断逻辑:null=长期有效,undefined=无效
- 添加测试命令 resetWelcomeModal 用于清除弹窗标记
2026-03-03 19:06:02 +08:00
2cce8f94c9 fix: 修复试用用户无过期时间时欢迎弹窗不显示的问题
- 优化欢迎弹窗判断逻辑,支持无过期时间的长期试用用户
   - 只有在有过期时间且已过期时才不显示欢迎弹窗
   - 改进日志输出,更清晰地显示判断流
2026-03-03 18:48:30 +08:00
9b5f102d9f feat: 完善企业试用用户欢迎弹窗逻辑
- 添加试用到期时间检查

- 仅在试用未过期且有到期时间时显示欢迎弹窗

- 试用过期或无到期时间则显示邀请码弹窗

- 修复窗口重载后弹窗标记丢失问题
2026-03-03 18:26:27 +08:00
35c63802b5 feat:添加文件路径标签显示和rules需求文档 2026-03-03 16:45:23 +08:00
3458f6fe23 fix:解决登录过期点击重新登录失败的bug 2026-03-03 14:19:00 +08:00
4c7ec65577 feat:代码变更diff可视化功能实现 2026-03-02 10:00:04 +08:00
c9e9df3825 feat:修改对话中的样式 + 欢迎宁德弹窗内容 2026-02-26 17:27:23 +08:00
7ca2fa1bcc feat:宁德时代的欢迎弹窗 2026-02-26 16:31:16 +08:00
208c24682b feat: 实现试用用户欢迎引导和过期检测功能
- 新增试用用户首次登录欢迎弹窗,展示使用教程
- 新增试用期过期检测服务和过期提醒弹窗
- 从 JWT token 中提取 ispluginTrial 标识判断用户类型
- 试用用户跳过邀请码验证流程
- 在消息发送前检查试用期是否过期
- 新增 ExpiredPanel 和 WelcomePanel 面板组件
- 新增 expiredModal 和 welcomeModal 视图组件
- 优化用户登录流程,根据用户类型显示不同引导
2026-02-26 15:42:18 +08:00
1467ae8a89 feat:资源点使用实时更新 2026-02-25 10:14:00 +08:00
eae3968465 feat: 更新发布流程文档,添加版本更新和打包步骤;优化邀请码验证弹窗和WebView内容,增加Logo支持 2026-01-28 17:10:28 +08:00
032dd1b215 feat: 实现邀请码验证功能
## 功能概述
   - 用户首次使用需验证邀请码才能发起对话
   - 在输入框聚焦和点击示例时触发验证检查
   - 使用弹窗形式展示邀请码输入界面,包含企业端用户提示和微信二维码

   ## 主要变更

   ### 新增文件
   - `services/invitationService.ts`: 邀请码验证服务,处理验证逻辑和状态管理
   - `views/invitationModal.ts`: 邀请码验证弹窗组件(HTML/CSS/JS)
   - `docs/invitation-code-design.md`: 邀请码功能设计文档

   ### 修改文件
   - `extension.ts`: 添加更换邀请码命令,退出登录时清除验证状态
   - `panels/ICHelperPanel.ts`: 添加邀请码验证状态检查和验证消息处理
   - `services/apiClient.ts`: 添加邀请码验证接口调用
   - `types/api.ts`: 添加邀请码相关类型定义
   - `views/inputArea.ts`: 输入框聚焦时触发邀请码验证检查
   - `views/exampleShowcase.ts`: 点击示例时先检查邀请码验证状态
   - `views/webviewContent.ts`: 集成邀请码弹窗到主界面

   ## 技术实现
   - 验证状态保存在 ExtensionContext.globalState 中
   - 使用后端接口 POST /api/invitation/verify 进行验证
   - 弹窗样式适配 VS Code 主题
   - 支持回车键提交验证
2026-01-27 14:40:31 +08:00
9296b10150 feat:实现Token过期检查和自动清除机制
主要改动:
   - 在插件激活时检查Token是否过期,过期则自动清除session
   - 修复Token检查逻辑,从session.accessToken获取Token而非globalState
   - 在消息发送前检查Token有效性,过期则提示重新登录
   - 优化ICHelperPanel和ICViewProvider的Token过期处理
   - 修复退出登录命令名错误(iccoder.logout -> ic-coder.logout)
   - 添加Token过期检查文档文档
2026-01-26 18:41:52 +08:00
50eacdafde feat:实现BASIC用户显示升级到Pro的按钮 + 修改退出登录的展现形式 + 退出登录的再次确认 2026-01-19 10:52:39 +08:00
d90cca7cef feat:实现了点击头像和用户名进行跳转到首页
这里还需要完善的地方:
- 跳转到Web端还需要进行登录,如果要自动登录
- 需要后端给个临时的授权码
- 这样就不用前端传递token然后自动登录了
- 避免了token暴露的风险
2026-01-17 10:48:05 +08:00
5339212de9 feat:新增高级特性的按钮
- 里面包含用户手册
- 用户反馈 点击之后弹窗显示微信二维码
2026-01-15 14:30:58 +08:00
73a1510de4 feat:新增页面退出登录的逻辑 2026-01-14 18:32:53 +08:00
5753e120ba feat: 添加一键优化提示词功能
- 在 ICHelperPanel.ts 添加 optimizePrompt 消息处理分支
- 新增 promptOptimizeService.ts 调用后端优化 API
- 完善 WebView 端优化按钮交互逻辑
2026-01-13 19:29:17 +08:00
25966bc1e2 feat:显示资源点
- 登录之后就获取资源点并持久化
- 显示剩余资源点到页面上
- 一轮对话完成之后重新获取资源点并且更新缓存
2026-01-12 19:09:19 +08:00
1231ef0892 fix: 修复 Plan 模式转 Agent 模式的递归执行问题
- 删除 pendingPlanExecution 自动执行机制,避免任务重复执行
- planAction confirm 只做 UI 切换,后端 LLM 在同一对话中执行
- planAction modify/cancel 调用 handlePlanAction 处理
- submitAnswer 改为 void 明确不等待
2026-01-12 16:01:21 +08:00
5b225126f1 fix: Plan 模式执行时传递服务等级参数
- planCard.ts: 计划操作时传递 model 参数
- ICHelperPanel.ts: 传递服务等级到 setPendingPlanExecution
- messageHandler.ts: 保存并传递服务等级,确保 Plan->Agent 切换时使用相同模型
2026-01-10 21:15:39 +08:00
4a790b5aca Revert "feat:设置最小宽度"
This reverts commit 4687c3faa6.
2026-01-10 20:33:11 +08:00
4687c3faa6 feat:设置最小宽度
- 小于最小宽度就自动关闭面板并且提供提示
2026-01-10 09:18:00 +08:00
6abec8c7b7 feat:预览波形展开新开窗口展示完整波形 2026-01-09 19:06:34 +08:00
c58e3603de feat:获取会员信息 并且展示title 2026-01-09 16:24:27 +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
820ee2f848 feat:实现预览波形点击展开会显示完整波形 2026-01-07 19:02:00 +08:00
9281d1d724 feat: 支持服务等级动态切换
- 添加 ServiceTier 类型定义
- 修改 dialogService 接收 serviceTier 参数
- 修改 messageHandler 传递 serviceTier 参数
- 修改 ICHelperPanel 传递 UI 选择的服务等级
2026-01-07 16:13:56 +08:00
1d7f3d7626 feat:添加上下文功能实现 2026-01-05 15:59:26 +08:00
9b0d2d5e01 feat:进度条收起的功能和发起对话才展示 2026-01-05 15:27:40 +08:00
acf3f9ff37 feat: 添加模型图标支持并更新相关组件以显示图标 2026-01-04 10:56:57 +08:00
f933d84cd1 feat: 新增会话压缩命令和上下文显示功能
- ICHelperPanel: 新增 compressConversation 命令处理,支持手动触发会话压缩
- ICHelperPanel: 在加载历史会话时设置 lastTaskId,确保压缩操作可用
- webviewContent: 新增 contextUsage 消息处理,更新上下文使用量显示
- userInteraction: 将用户回答超时时间从 5 分钟延长至 2 小时
2025-12-31 18:50:27 +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
430581598b Merge branch 'feat/back-to-front' into feat/plugin-front-end 2025-12-30 20:46:26 +08:00
023fdb66c3 feat: WebView 集成运行模式
- webviewContent 集成模式选择器脚本和样式
- inputArea 适配模式传递
- ICViewProvider/ICHelperPanel 传递模式参数
2025-12-30 20:42:44 +08:00
3f0cc8ae29 feat: 添加工作区状态检查功能,优化用户体验
- 用户鼠标聚焦到输入框中就弹窗提示用户打开 优化用户体验
2025-12-30 16:02:36 +08:00
f9c9fa1840 feat(auth): 添加登录状态检查,
- 未登录时不会自动打开面板命令打开也会显示需要登录
- 登录之后就回自动打开对话面板
2025-12-29 18:52:56 +08:00
4288607ee2 feat(icon): 更新面板和视图中的图标路径为统一的 icon.png 2025-12-29 16:32:18 +08:00
c050f0e167 feat: 添加上下文按钮和自定义下拉框,优化输入区域样式 2025-12-28 19:39:49 +08:00
3daa66ea01 feat:修复多面板任务管理和历史会话加载问题
主要改进:
1. 修复面板ID唯一性问题,为每个面板生成唯一ID
2. 修改任务创建时机,改为首次发送消息时创建
3. 修复面板任务映射,同时存储taskId和projectPath
4. 修复历史会话加载后继续对话的保存问题
5. 移除ensureCurrentTask的自动创建逻辑,避免创建多余任务

技术细节:
- 为面板添加__uniqueId属性,确保多窗口独立性
- 修改panelTaskMap数据结构,存储完整任务信息
- 在selectConversation中更新面板任务映射
- 优化任务创建流程,避免空任务目录
2025-12-28 11:31:28 +08:00
9bdaf34471 feat:实现任务历史加载功能 - 完整还原对话样式
主要改进:
1. 实现selectConversation功能,支持点击任务历史列表加载会话
2. 优化会话存储格式,保存完整的segments信息(包括工具调用)
3. 添加旧格式到新格式的自动转换,兼容历史数据
4. 改进错误处理,自动清理无效的空任务目录
5. 优化路径编码逻辑,确保跨平台一致性
6. 前端支持clearChat、addUserMessage、addAiMessage命令

技术细节:
- 扩展AiMessage数据结构,添加segments字段
- 修改messageHandler保存逻辑,将完整segments保存到一条消息
- 实现loadTaskSession方法,加载指定任务的完整会话
- 添加自动清理机制,删除无效的空任务目录
2025-12-28 10:38:54 +08:00
5c2ea0f15c Merge branch 'feat/plugin-initialization' into feat/back-to-front 2025-12-17 10:07:08 +08:00