refactor: 架构变更:Webview → VSCode 内置 Diff + 浮动标签

This commit is contained in:
2026-06-18 08:05:24 +08:00
parent f06914994d
commit fcda651760
7 changed files with 548 additions and 98 deletions
+23
View File
@@ -2,6 +2,29 @@
All notable changes to this project will be documented in this file.
## [0.2.0] - 2026-06-18
### Added
- **VSCode 内置 Diff 编辑器**:不再使用自定义 Webview,直接调用 `vscode.diff` 展示差异
- **EditRecord 粒度**:每次 Edit/Write 创建独立 EditRecord,支持逐编辑 Accept/Reject
- **QuickPick 文件列表**:Stop 后弹出原生 QuickPick 文件列表,点击即打开内置 Diff
- **导航快捷键**:`Alt+↑/↓` 在变更文件间跳转
- **配置项**:`autoShowDiffPerEdit`(每次编辑自动弹 Diff)、`showAllDiffsOnStop`(Stop 后弹文件列表)、`floatingLabelMode`(浮动标签位置)
- **新命令**:`showCurrentFileDiff`、`acceptCurrentEdit`、`rejectCurrentEdit`、`nextDiff`、`prevDiff`
- **新快捷键**:`Alt+↑/↓`、`Ctrl+Shift+D`、`Ctrl+Shift+F`
### Fixed
- **Bug Fix**: Accept 后同文件再编辑不再触发 Accept/Reject 选项,且 Diff 合并的问题
- 根因:`recordEdit()` 对同文件多次编辑更新同一个 `FileChange` 对象
- 修复:已 accepted/rejected 的 `FileChange` 后再次编辑时自动创建新 `FileChange`,清除 `originalContents` 缓存
### Changed
- `ChangeSetManager` 重构为 `EditRecord[]` 独立记录模式
- `FileChange` 变为聚合视图(持有 `edits: EditRecord[]`)
- `HookHandler` 支持 `autoShowDiffPerEdit` / `showAllDiffsOnStop` 配置分支
- `ReviewPanel` Webview 降级为次要选项(保留兼容)
- 版本号升级至 `0.2.0`
## [0.1.0] - 2026-06-17
### Added