# 代码变更审查功能 ## 功能概述 AI 修改文件后,会在输入框上方显示"代码变更"面板,用户可以查看所有修改并选择采纳或拒绝。 ## 核心文件 ### 1. 数据结构 - `src/types/fileChanges.ts` - 变更数据类型定义 ### 2. 服务层 - `src/services/changeTracker.ts` - 变更追踪服务(单例) - `trackChange()` - 记录文件变更 - `acceptChange()` - 采纳变更(保存文件) - `rejectChange()` - 拒绝变更(恢复旧内容) ### 3. UI 组件 - `src/views/changePanel.ts` - 变更面板 UI - `src/utils/diffRenderer.ts` - Diff 可视化渲染 ### 4. 集成点 - `src/utils/messageHandler.ts` - 消息处理 - `trackFileChange()` - 记录变更 - `handleAcceptChange()` - 处理采纳 - `handleRejectChange()` - 处理拒绝 - `sendChangesToWebview()` - 发送变更到前端 - `src/services/toolExecutor.ts` - 工具执行器 - 在 `executeFileWrite()` 中记录变更 ## 使用流程 1. **开始对话** - 调用 `startChangeSession(sessionId)` 2. **修改文件** - 自动调用 `trackFileChange()` 3. **对话结束** - 调用 `sendChangesToWebview()` 显示变更面板 4. **用户操作** - 点击采纳/拒绝按钮 5. **处理结果** - 保存或恢复文件内容 ## 待完成工作 1. 在 ICHelperPanel 中集成消息处理(监听 acceptChange/rejectChange 命令) 2. 在对话结束时调用 `sendChangesToWebview()` 3. 在 Webview 中实现变更列表的动态渲染 4. 处理前端的采纳/拒绝响应