# 代码变更审查功能

## 功能概述

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. 处理前端的采纳/拒绝响应
