# ColaMD — Agent Diff View

## 需求

当 AI agent 修改了当前打开的 .md 文件，ColaMD 在实时刷新的同时，以视觉 diff 的���式展示变更内容。让用户一眼看出 agent 改了什么。

## 设计

### 展示方式

在编辑器正文中原地展示 diff，不需要额外面板或分栏：

- 新增/修改的段落：绿色背景高亮
- 未变化的段落：正常显示
- 高亮默认展示 5 秒后自动淡出

### 交互

- diff 高亮默认展示后自动淡出（让用户看完变化后回到干净的文档）
- 或者用户点击任意位置手动清除

### 触发时机

- fs.watch 检测到文件变化时触发
- 拿到新文件内容，跟编辑器当前内容做比较
- 将 diff 结果渲染为 ProseMirror Decoration

## 推荐方案���节点级别 diff

在 ProseMirror 内部做，不需要外部 diff 库��也不需要位置映射：

1. 替换内容之前，快照当前文档的节点列表（每个段落/标题/代码块的文本）
2. 替换为新内容后，遍历新文档节点，和旧快照逐个比较
3. 内容不同或新增的节点 → 加绿色背景 `Decoration.node()`
4. 5 秒后自动淡出

预估 50-80 行代码。

## 进阶方案（备选）

- 词级别 diff：需要 diff 库 + markdown ↔ ProseMirror 位置映射，复杂度高
- 删除行展示：需要在新文档中临时插入已删除内容，更复杂
- 接受/拒绝操作：需要保留两个版本的内容

## 不做的事

- 不做三方合并
- 不做版本历史
