DeepSeek Harness 原生交互式 Git diff 审查,支持结构化批注并回传当前 Agent 会话。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:BrambleXu/dsh-revdiff
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README

为 DeepSeek Harness 提供原生交互式 diff 审查。插件读取 Git unified diff,将其解析为文件、hunk 和行位置,在自己的终端审查界面中展示,并将提交的批注排队为 Agent 下一轮持久 follow-up。
为什么存在 💡
在独立工具中审查 diff,会割裂变更、审查上下文以及后续负责处理反馈的 Agent。dsh-revdiff 将审查保留在 Harness 内部,让批注直接针对实际 Git diff 创建,并返回同一个持久会话。
功能 ✨
- 审查工作区、暂存区、未暂存或相对于 base revision 的已跟踪变更,并支持可选的路径过滤器。
- 在交互式终端中切换文件、hunk 和 diff 行。
- 添加、编辑和删除 issue、suggestion、question 或 praise 批注。
- 通过带有消息来源信息的
agent.followup()将结构化批注提交给当前 Agent。 - 配置 Git 执行、diff 上下文、大小和时间限制、终端宽限期以及评论长度。
安装 📦
将此 checkout 添加到 Harness profile:
dsh plugin --profile demo add ./dsh-revdiff
唯一的外部运行时要求是:Git 必须与 Harness 位于同一个执行环境中。
使用 🚀
/revdiff
/revdiff --staged
/revdiff --unstaged
/revdiff main
/revdiff --base main -- src/index.ts README.md
默认情况下,审查相对于 HEAD 的所有已跟踪工作区变更,包括已暂存和未暂存的变更。--staged 审查暂存区,--unstaged 只审查相对于暂存区的工作区变更;指定 base revision 时,审查工作区相对于该 revision 的变更。路径过滤器请放在 -- 之后。
Harness 进程必须拥有交互式终端。审查界面支持:
↑/↓或k/j:在 diff 行之间移动n/p:在 hunk 之间移动]/[或→/←:在文件之间移动a:添加 issue、suggestion、question 或 praise 批注e:编辑选中行的批注d:删除选中行的批注s:向当前 Agent 提交批注q、Escape 或 Ctrl-C:取消,不发送消息
批注会保留文件、旧/新侧、行号、选中的代码、类型和评论。它们通过 agent.followup() 发送,并带有 dsh-revdiff 的消息来源信息,因此审查会进入同一个 Harness session,而不是通过外部通道发送。
配置 ⚙️
在后续 Harness patch layer 中覆盖已插入的配置项:
- id: dsh-revdiff
name: dsh-revdiff
config:
gitBinary: git
contextLines: 3
maxDiffBytes: 2097152
diffTimeoutMs: 30000
graceMs: 2000
maxCommentLength: 4000
开发 🧑💻
pnpm install
pnpm run check
范围 🎯
0.1 版本审查已经由 git diff 表示的文本变更。未跟踪文件、二进制补丁、并排渲染、鼠标输入和浏览器托管的审查界面暂不支持。审查引擎和批注模型由本项目负责,因此可以针对 Harness 演进,而不必跟随其他审查工具的界面。
许可证 📄
MIT
致谢 🙏
产品思路受到 pi-diff-review 和 revdiff 的启发,但本项目是围绕 Harness command、受管控的 subprocess、Agent 生命周期和消息来源信息构建的独立实现。它不会安装、执行、包装或解析 revdiff 的输出。
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-git-graph★ 8076
输入框上方提供 Git 分支选择器,并把分支泳道与提交历史画成图谱,沿着时间线找到任意变更。
Akimiya-z/codex-guard#dsh★ 139
在 DeepSeek Harness 内做提交前的 Pull Request 卫生检查:扫描当前改动中的 TODO 残留、硬编码密钥与非规范提交信息。
Cerbur/clutch-dsh#clutch-dsh-worktree★ 28
为 DSH Web UI 增加按 Git Worktree 组织 Session 的视角,同时继续由 DSH 管理原始 Project 和 Session 数据。
lehhair/dsh-diff-viewer★ 27
PiUI 风格 diff 查看器,替换 write/edit 工具调用的默认 DiffBlock。
DietCokewithSugar/dsh-user-experience★ 20
帮你发现项目中可能存在的用户体验问题:自动走查 React/TypeScript 源码,定位问题并给出具体优化建议。
DamonKoy/dsh-web-ui#dsh-git-graph★ 19
dsh web GUI 会话头部栏的 Git 分支选择器与提交图。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。