46 lines
1.5 KiB
Markdown
46 lines
1.5 KiB
Markdown
# 代码变更审查功能
|
|
|
|
## 功能概述
|
|
|
|
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. 处理前端的采纳/拒绝响应
|