在 DeepSeek Harness (DSH) 中,当智能体请求修改文件时,原生批准卡片仅展示原始的 old_string 和 new_string,缺乏上下文和行号,难以快速判断。dsh-approval-diff 插件旨在解决这个问题,将原生的批准卡片替换为包含真实差异、行号、单词高亮以及磁盘源上下文的审查界面。
这是一个 DSH 插件,由 joao-paulo-santos 维护。它专注于文件变更批准流程,通过 dsh-diff-view 依赖库,在原生批准卡片中提供可视化的代码差异审查功能。
核心功能¶
可视化差异审查¶
插件在原生批准卡片内直接渲染编辑内容的真实差异。通过 dsh-diff-view,差异展示包含:
* 行级差异:展示被修改的行。
* 单词高亮:在变更行内高亮具体的单词差异。
* 磁盘源上下文:显示带有真实行号的文件内容,提供修改周围的环境。
视图与操作类型¶
- 视图切换:支持拆分或统一视图(GitHub 风格切换),拆分视图下删除行显示在左侧,新增行显示在右侧。
- Write 操作:当使用
write命令时,新内容显示为添加,并与现有文件合并。 - 删除操作:对于删除命令(如
rm),渲染审查通知,仅显示命令文本,不展示已删除内容。
批准流程优化¶
- 差异锚定:差异锚定到 DISK TRUTH(从请求时从包的主路由获取的磁盘状态),确保审查基于文件当前状态。
- 过时操作数警告:当编辑的旧文本不再存在于文件中时,卡片会显示警告,而不是展示无法应用的差异。
- 合并审查:针对同一文件的已排队编辑会合并为一个审查。如果同一文件有多个待处理的编辑,卡片会显示“N edits merged”,并将所有变更合并到磁盘副本中进行渲染。
- 多文件支持:当请求涉及多个文件时,卡片会显示选项卡,每个文件一个选项卡,包含独立的合并差异和独立的批准按钮。
安装与启用¶
该插件需要 DeepSeek Harness (DSH) 的一个 checkout 和一个 profile(示例中使用 web)。请按照以下步骤操作:
- 克隆插件仓库
mkdir -p ~/dsh-plugins && cd ~/dsh-plugins
git clone https://github.com/joao-paulo-santos/dsh-approval-diff.git
- 安装插件
pnpm dsh plugin --profile web add ~/dsh-plugins/dsh-approval-diff
- 验证配置
pnpm dsh --profile web --dump-config
- 重启 Harness
安装后需要重启 Harness,宿主端会在启动时加载,客户端端会热重载。
适用场景与限制¶
- 适用场景:仅限文件变更批准(
edit、write、仅删除的bash)。其他类型的操作会完全回退到原生卡片。 - 依赖要求:
- 需要安装
dsh-diff-view依赖。 - 需要 DSH 版本 0.1.2 或更高(基于待交互批准模型)。
- 需要安装
总结¶
dsh-approval-diff 通过提供直观的代码差异审查,解决了 DSH 原生批准卡片中难以审核文件变更的问题。它通过合并审查和视图优化,提升了批量编辑时的审查效率。