dsh-review-loop
by wuxiangru915
DSH 的增量 diff 评审器:批准一批后只显示检查点之后的新变更,Web 评审面板与 /review 命令把反馈注回 agent
Incremental diff reviewer for DSH: after approving a batch, only new changes since the checkpoint are shown, with a Web review panel and `/review` command that inject feedback back to the agent.
安装
dsh plugin --profile web add github:wuxiangru915/dsh-review-loopGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
面向 DeepSeek Harness 的增量代码审查插件。
dsh-review-loop 把"人审查 agent 干的活"变成增量、闭环、不重复的过程:批准一批改动后记录审查检查点(checkpoint),下次审查只显示此后新增的改动——已看过的内容不会再次出现。审查意见通过 harness 常规消息通道注入 agent,不打断它正在进行的任务。
解决什么问题
agent 跑完一个任务通常改动十几个文件。每次都看完整 diff 很慢,重复看已审查的内容更是浪费。本插件让审查跟着 agent 的进度推进:
agent 干活(改文件)
-> 打开审查面板:只显示上次审查检查点之后的改动
-> 逐文件查看 diff、填写审查意见
-> 批准:记录新的检查点,意见注入 agent
-> agent 响应意见继续工作;新改动成为下一批审查
特性
- 增量审查(since-review):批准时把工作区快照记为检查点;下次审查只比较「检查点 -> 当前」,已审文件从队列中消失,除非再次被修改。
- 双入口:Web UI 审查面板(输入框上方 dock,2 秒轮询)+
/review命令(键盘优先)。两者共用同一套核心逻辑。 - 反馈闭环:批准时可附评论,通过
agent.inject()作为用户消息送达 agent。 - 不解析工具调用:任何磁盘改动(agent、你或其它进程产生)都会被反映——插件读的是 git,不是 agent 循环。
- 检查点持久化:
$DSH_HOME/review-loop/<workspace-hash>.json,原子写入,绝不污染工作区自身的 git 状态。 - 零核心修改:纯 bundle 插件(
dsh.bundlepatch 层),不动 agent-loop 骨架。
安装
# 一行安装(git 源)
dsh plugin --profile web add github:wuxiangru915/dsh-review-loop
# 重启 web 服务,然后强制刷新页面
本地开发:
# 开发需要 DSH 源码仓库的 sibling checkout(位于 ../deepseek-harness):
# @deepseek-ai/dsh-* 尚未完整发布到 npm(缺 dsh-type-meta),devDependencies
# 通过 link 指向该工作区;checkout 不在该路径时请调整 package.json 中的 link 路径。
pnpm install && pnpm build
dsh plugin --profile web add /path/to/dsh-review-loop
仓库已随附构建产物 lib/,git 源安装无需在用户机器上执行构建。
用法
Web UI

任意工作区为 git 仓库的会话中,输入框上方会出现审查面板:
- 状态行显示
N 个文件待审查及展开审查按钮。 - 展开后面板列出待审文件,diff 可折叠查看且按行着色(新增行使用 success 语义色、删除行使用 error 语义色,行首符号始终可见,不依赖颜色传递语义)。
- 提供可选的意见输入框与批准并记录审查点按钮。
- 批准后面板显示已审查状态;之后若有改动,对应文件会重新进入队列。
命令行
| 命令 | 行为 |
|---|---|
/review |
增量:上次检查点之后的改动(无检查点时显示相对 HEAD 的完整改动集) |
/review all |
相对 HEAD 的完整改动集,忽略检查点 |
/review approve |
记录检查点 |
/review approve <评论> |
记录检查点并将评论注入 agent |
架构
src/
├── review.ts 纯核心逻辑(collectState / approve / renderState)——命令与 HTTP 共用
├── git.ts git 操作封装(status / diff / hash-object;零依赖 spawnSync)
├── checkpoint.ts 检查点持久化($DSH_HOME/review-loop/<ws-hash>.json,原子写)
├── http.ts Web 路由:GET /plugins/dsh-review-loop/state · POST /plugins/dsh-review-loop/approve
└── client/
└── review-panel.tsx 浏览器端面板(conversation.input.dock 槽位,轮询刷新)
命令: /review ------> renderState() ----+
+--> src/review.ts(纯核心,共享)
Web: GET /state ----> collectState() --+
POST /approve --> approve() + agent.inject()
客户端 bundle 为 CJS __ModuleLoader__ 产物,服务路径 /plugins/@dsh-plugin/dsh-review-loop/client.js;路由与命令共享同一检查点存储,UI 批准与 /review 命令推进的是同一条队列。
增量算法
对每个相对 HEAD 的改动文件:
将其内容 hash 与检查点记录的 hash 比较
相同 -> 已审查(隐藏)
变化 / 新增 / HEAD 移动 -> 待审查(增量队列)
批准时重新快照工作区 -> 检查点前移
测试
pnpm test # 7 个集成测试:真实 cordis + 真实 git 仓库
pnpm typecheck
pnpm build # 双 half 构建:host ESM + client bundle
Roadmap
-
/review命令(增量 diff / 批准 / 反馈注入) - Web UI 审查面板(文件列表 + diff + 批准)
- 检查点持久化(增量队列)
- 行级评论(diff 解析)
- 会话分支联动(检查点随分支)
- npm 发布(
@dsh-plugin/dsh-review-loop)
环境要求
- DeepSeek Harness >= 0.1.0-rc.5(Cordis 4.x)
- git 仓库(硬前置)
- Node.js >= 22
License
原始 README: https://github.com/wuxiangru915/dsh-review-loop/blob/master/README.zh.md ↗
同类插件
查看全部 →
deepseek-harness
从仓库或系统描述生成经过校验的自包含交互式架构图、流程图、时序图、数据流图和生命周期图。

dsh-plugin
通过 DSH MCP 客户端挂载 Ouroboros 的纯配置包,在 DSH 中提供 36 个涵盖需求访谈、Seed、执行、评估与演化流程的工具。

dsh-tongflow
基于 TongFlow 的“片场”插件,用于图片、配音、音乐与视频制作:agent 为每个资产生成 TongFlow 工作流文件(.tongflow.json)并通过 TongFlow 插件执行,内嵌工作流画布,按镜头/角色/take 组织项目,附漫剧模板;以 @tongflow 开头的会话进入 Studio 界面。

helloagents
AI 编码 CLI 的工作流层:技能、项目知识、交付检查、更安全的配置写入与可恢复执行

dsh-ai-novel-writer
安装专用 AI 小说创作预设与工作台:提供带修订号的本地项目资产、紧凑侧边工作台,以及需要原生审批的逐文件变更。

rea
用 agent 逆向任何东西:从应用行为到原生二进制
