DeepSeek Harness Hub
← 返回列表

轮次变更审查KeLearns/dsh-build-diff

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

按轮次查看代码改动,一键撤销整轮或单文件变更

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/16 · 已提供中文文档

DeepSeek Harness Web GUI 的 Agent 循环变更审查

综合分
27.6
GitHub 分
27.6
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add KeLearns/dsh-build-diff
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-client-ui-slots
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-build-diff

DeepSeek Harness Web GUI(DSH)的 Agent 循环变更审查插件。每次 agent 结束一轮 loop(一次 running → idle 驱动周期,与 dsh-agent-loop 的 kick() 语义一致)后,自动快照会话工作区、检测文件/代码变更,并支持:

- 审查:右侧边栏按轮次列出所有变更文件,内联展示行级 diff(双栏行号、+/− 着色、长上下文折叠为「N 行未改动」)。
- 撤销:一键撤销整轮变更,或逐文件撤销——恢复为 loop 开始前的精确内容;删除 agent 新建的文件、还原 agent 删除的文件。
- 审查气泡:每轮结束后,气泡(「已编辑 N 个文件 · +X -Y · 撤销 / 审核」)渲染在助手消息「复制 / 好的回答 / 有问题的回答」按钮行正上方。宽度与消息列一致;文件预览默认 3 个,「再显示 N 个文件」在气泡内展开其余项。点击文件可在右侧栏打开该文件的 diff。
- 轮次切换:通过「轮次」下拉回顾该工作区之前的各轮变更。
- 复制 Diff / 标记已处理:复制统一 diff 文本、标记已审阅。

English

官方双面 dsh 插件(host 半端 + browser 半端),零运行时依赖,不改 dsh 源码。

前置插件

必须安装 dsh-better-sidebar(^0.12.1)——审阅界面以标签页形式存在于它的 VS Code 式右侧栏工作台中。客户端半端通过 cordis inject 声明该服务,未安装时 UI 不加载(host 半端照常检测与记录变更)。先安装:

dsh plugin --profile web add dsh-better-sidebar

安装

从 npm(发布后),或本地目录:
dsh plugin --profile web add @kelearns/dsh-build-diff
本地开发:
dsh plugin --profile web add link:/path/to/dsh-build-diff

手动安装(与桌面版内置插件同机制):

1. 把本目录复制到 ~/.dsh/profiles/node_modules/@kelearns/dsh-build-diff/(保留 index.js、lib/、package.json、cordis.patch.yml)。
2. 在 ~/.dsh/profiles/web/cordis.patch.yml 追加:

- insert:
- id: dsh-build-diff
name: '@kelearns/dsh-build-diff'

3. 重启 DSH(重启桌面应用或 dsh web)。设置页(设置 → 变更审阅)可开关检测与内容捕获上限。

工作原理

agent/status running  →  快照工作区(全量指纹 + 小文本文件内容)
… agent 修改文件 …
agent/status idle      →  重扫、对比、持久化 loop 记录(Myers 行级 diff)
GET  /dsh-build-diff/loops?cwd=…         loop 元数据
GET  /dsh-build-diff/loop/           完整记录(diff;旧内容仅存服务端)
POST /dsh-build-diff/loop//revert    撤销全部或指定文件
POST /dsh-build-diff/loop//dismiss   标记已处理

- 存储:$DSH_HOME/build-diff/{config.json,index.json,loops/.json};超过 retentionDays(默认 7 天,保留最近 200 条)自动清理。
- 快照成本:全文件指纹 + 文本文件(≤ contentCapBytes,默认 1 MB,单轮总预算 256 MB)内容捕获;内存缓存按(路径, size, mtime)命中,未变工作区后续轮次近似零 IO。
- 默认排除:.git、node_modules、dist、build、target、out、coverage、.next、.venv、__pycache__、.idea、.vscode 等(见 lib/engine.js)。

限制

- 只跟踪插件激活之后开始的 loop;激活时已在运行的 loop 会漏掉开头。
- 超过 contentCapBytes 的文件(或二进制):仍检测并计数,但无 diff、不可撤销;可在设置中调高上限。
- 撤销 = 原样回写 loop 开始前的内容;若之后有更新的 loop 改过同一文件,撤销旧 loop 会覆盖新变更。
- 撤销按记录幂等执行,无重做。
- 同一工作区内的子 agent / 后台任务 agent 也会产生记录(共享工作区根),便于一并审查。
- 快照扫描有文件数上限(默认 50,000)。

集成面

客户端半端依赖 dsh-better-sidebar(cordis inject: ['betterSidebar', …]——前置声明,服务出现前 UI 挂起),注册:

| 表面 | 条目 | 用途 |
|---|---|---|
| conversation.chat.turnTail | chain 条目 | 助手消息按钮行正上方的审查气泡(按 loop-by-turn 查询;该轮无变更则不渲染) |
| betterSidebar.registerTab | 标签页 build-diff | 右侧栏「变更审阅」标签页(单实例、待处理角标、轮次选择、逐文件内联 diff、撤销) |
| conversation.session.header.actions | build-diff | 会话头按钮,点击在侧边栏打开审阅标签页 |
| settings.section | dsh-build-diff | 设置页(检测开关 / 上限 / 历史) |

从气泡的「审核」、会话头按钮或「+」菜单均可打开侧边栏标签页(带内容的打开会自动展开右侧面板)。

测试

node test/diff.test.mjs             # Myers diff + hunks + 统一 diff 文本
node test/snapshot.test.mjs         # 扫描 / 捕获 / 对比 / 撤销(临时目录)
node test/host-integration.test.mjs # mock ctx 应用插件 + 完整 loop → 路由 → 撤销
node test/client-smoke.test.mjs     # 浏览器半端模块契约 + 槽位注册

许可证

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

同作者(KeLearns)的其他插件

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群