mirror of
https://github.com/Gmaker689/ai-diff-preview.git
synced 2026-09-26 23:11:51 +08:00
v0.2.0: VSCode内置Diff + QuickPick总览 + EditRecord粒度 + Bug修复
新增: - VSCode内置Diff编辑器 (diffViewer.ts) 替代Webview,零保存提示 - EditRecord独立追踪: 每次Edit/Write不合并,支持逐次编辑Accept/Reject - QuickPick文件列表总览,含Accept All / Reject All - 智能Auto-Advance: Accept/Reject后自动推进,同文件多编辑智能停留 - 状态栏常驻显示 AI Diff,Diff模式下切换为操作按钮 修复: - Accept后同文件再编辑不触发选项 (pending-priority匹配) - Accept All / Reject All写入与状态顺序修复 - acceptFile/rejectFile改为先写入成功再标记状态 - 同文件多个FileChange孤儿编辑问题 变更: - ChangeSetManager重构为EditRecord[] + FileChange聚合 - HookHandler精简,QuickPick移入hookHandler - 移除InlineDecorator/CodeLens (主流程),ReviewPanel降级为备用 - package.json: publisher=YonHao Guo, repository, v0.2.0, 新配置项/快捷键 测试: 13/13通过 (7 diffEngine + 6 changeSetManager回归)
This commit is contained in:
+20
-26
@@ -1,46 +1,40 @@
|
||||
# Changelog
|
||||
|
||||
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`
|
||||
- VSCode 内置 Diff 编辑器 (vscode.diff) — 零 Webview 依赖
|
||||
- EditRecord 独立追踪 — 每次 Edit/Write 独立记录,不合并
|
||||
- QuickPick 总览 — 文件列表 + Accept All / Reject All
|
||||
- 智能 Auto-Advance — Accept/Reject 后自动推进,同文件多编辑智能停留
|
||||
- 状态栏常驻 — $(diff) AI Diff 始终可见
|
||||
- 零保存提示 — 临时文件方案自动清理
|
||||
- 新命令: showCurrentFileDiff, acceptCurrentEdit, rejectCurrentEdit, nextDiff, prevDiff
|
||||
- 新快捷键: Alt+↑/↓, Ctrl+Shift+D, Ctrl+Shift+F
|
||||
- 新配置: autoShowDiffPerEdit, showAllDiffsOnStop, floatingLabelMode
|
||||
|
||||
### Fixed
|
||||
- **Bug Fix**: Accept 后同文件再编辑不再触发 Accept/Reject 选项,且 Diff 合并的问题
|
||||
- 根因:`recordEdit()` 对同文件多次编辑更新同一个 `FileChange` 对象
|
||||
- 修复:已 accepted/rejected 的 `FileChange` 后再次编辑时自动创建新 `FileChange`,清除 `originalContents` 缓存
|
||||
- Accept 后同文件再编辑不再触发选项 (FileChange pending-priority 匹配)
|
||||
- Accept All / Reject All 写入与状态顺序修复
|
||||
- accept/reject 后自动推进到下一个待处理文件
|
||||
|
||||
### Changed
|
||||
- `ChangeSetManager` 重构为 `EditRecord[]` 独立记录模式
|
||||
- `FileChange` 变为聚合视图(持有 `edits: EditRecord[]`)
|
||||
- `HookHandler` 支持 `autoShowDiffPerEdit` / `showAllDiffsOnStop` 配置分支
|
||||
- `ReviewPanel` Webview 降级为次要选项(保留兼容)
|
||||
- 版本号升级至 `0.2.0`
|
||||
- ChangeSetManager 重构为 EditRecord 独立记录 + FileChange 聚合模式
|
||||
- HookHandler 精简为纯处理逻辑
|
||||
- ReviewPanel 降级为备用, 主流程使用 QuickPick + 内置 Diff
|
||||
- 版本号升级至 0.2.0
|
||||
|
||||
## [0.1.0] - 2026-06-17
|
||||
|
||||
### Added
|
||||
- 项目初始化
|
||||
- 核心架构搭建
|
||||
- 快照管理器实现
|
||||
- Diff 引擎实现(基于 Myers 算法)
|
||||
- 快照管理器
|
||||
- Diff 引擎 (Myers 算法)
|
||||
- Webview Review 面板
|
||||
- 内联装饰器渲染
|
||||
- CodeLens 提供器
|
||||
- Accept/Reject 事务处理
|
||||
- Claude Hooks 集成
|
||||
- 状态栏显示
|
||||
- 基础测试用例
|
||||
|
||||
### Technical
|
||||
- TypeScript + VSCode Extension API
|
||||
- diff 库集成
|
||||
- esbuild 构建流程
|
||||
- Vitest 测试框架
|
||||
- 基础测试用例
|
||||
Reference in New Issue
Block a user