dsh-diff-approval:在 DeepSeek Harness 中审查待处理文件变更

前言

在 DSH 中,agent 会调用 editwritestr_replace_editor 修改文件。若没有统一的审查入口,开发者需要在多个文件之间手动确认哪些改动保留、哪些改动回退。

dsh-diff-approval 提供一个侧栏审查面板:它把成功的文件变更汇总成待处理列表,用整体文件 diff 展示差异,并支持按块、按范围、按文件或全部执行 Keep / Revert。

这是什么

dsh-diff-approval 是一个 DeepSeek Harness(DSH)插件,定位为 pending-edit review:它自动记录成功的 editwritestr_replace_editor 变更,并在侧栏汇总为待处理列表。

仓库所有者是 9087,许可证为 MIT。

核心功能

下面介绍已核实的能力。

自动跟踪与待处理列表

正常使用 agent 时,成功的 editwritestr_replace_editor 变更会被自动记录,并汇总到侧栏的待处理列表。

整体文件 diff 视图

面板提供整体文件 diff 视图,包含语法高亮、+/− 计数、滚动条概览、文件内搜索和虚拟化行。

Keep / Revert

支持在变更块之间跳转,并对单个块执行 Keep 或 Revert。

也支持拖选行范围后,对选中范围执行 Keep 或 Revert。

支持按文件 Keep/Revert,以及 Keep all / Revert all。

撤销、重做与快捷键

提供 Ctrl+Z / Ctrl+Y 的撤销/重做。

支持以下快捷键:

Ctrl+D            快速打开审查面板
Esc               关闭面板
Ctrl+Tab          切换待处理文件
Ctrl+Shift+Tab    切换待处理文件

行引用与 composer

支持从 diff 选择文本获得 (file:line)(file:start-end) 行引用,并可复制/按设置自动粘贴到 composer。

语言高亮与换行

支持自动检测高亮语言、按语言覆盖和按语言记忆自动换行。

对比视图

支持可选的 side-by-side split view 对比视图。

导入工作区版本控制变更

支持导入工作区 Git/SVN/Perforce 本地修改、删除和可选 untracked 文件。

持久化

支持将 pending 状态持久化到工作区文件并在重启后保留。

安装与启用

先确认 DSH 环境中可以使用 dsh 命令。下面命令用于将插件添加到 web profile:

dsh plugin --profile web add dsh-diff-approval

安装后,可以通过侧栏底部的 Pending changes 操作进入审查面板。

典型用法

1、正常使用 agent 时,成功的 edit / write / editor(str_replace_editor) 调用会被自动记录。

2、点击侧栏底部的 Pending changes 操作,查看每个文件的 diff 并执行 Keep / Revert。

3、当待处理列表为空时,使用 Import workspace changes 导入工作区的 Git/SVN/Perforce 本地变更。

适用场景与注意

适合在 DSH 中审查 agent 产生的文件变更,尤其是需要逐个确认改动、保留部分修改或回退部分修改的场景。若工作区使用 Git、SVN 或 Perforce,也可以在待处理列表为空时导入本地版本控制变更。

需要注意:

  • 仅自动跟踪成功的 editwritestr_replace_editor 变更;工具外删除只会在已跟踪文件中显示 File is gone,Revert 可恢复文件。
  • VCS 导入通过 shell executor 运行只读 Git/SVN/Perforce 命令,相关 CLI 必须位于 PATH。
  • 导入 untracked 文件默认关闭,且会扫描整个工作区,大型目录可能较慢。
  • Reverting 一个创建的文件会删除该文件,因为 fs seam 没有 delete API。
  • Reverting 文件时会按当前行尾(LF/CRLF)保留并写回。
  • 无工作区会话的条目仅保存在内存;损坏的持久化文件会被拒绝,可删除以重置。
  • 侧栏底部入口会与其他插件垂直堆叠,并在存在 dsh-footer-order 插件时让位。
  • 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。

结尾

经过上面的步骤,dsh-diff-approval 能把 DSH 中的文件变更集中到可审查、可撤销、可批量处理的列表中。仓库地址如下:

https://github.com/9087/dsh-diff-approval
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye