会话修改审查插件:追踪会话内 write/edit 工具调用并展示 diff 对比;会话隔离、子代理聚合、SSE 实时推送、角标与颜色自定义。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:cirelir/dsh-change-review
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
DeepSeek Harness(DSH)会话修改审查插件:自动追踪会话内的文件写入/编辑操作,在会话视图中以 diff 对比形式展示,支持颜色自定义、实时推送、会话隔离与子代理聚合。
一个包同时承载 Host 逻辑与浏览器 UI(
dsh.bundle+dsh.client双 manifest)。
✨ 功能
| 功能 | 说明 |
|---|---|
| 自动追踪 | 监听 write / edit 工具调用,记录修改前后内容与时间 |
| diff 对比 | LCS 行级 diff:新增(绿)/ 删除(红)/ 上下文(灰),含新旧行号 |
| 会话隔离 | 每个会话只展示自己的修改,切换会话即切换审查内容 |
| 子代理聚合 | 子代理(subagent)的修改自动聚合到根父会话 |
| 实时推送 | SSE 服务端推送,修改文件后角标/列表即时刷新(零轮询) |
| 撤回变更 | 可单独撤回某一项修改(保留其后无冲突的修改),或撤回整个文件的全部修改(恢复到本次会话首次修改前;会话中新建的文件则删除)——直接改写磁盘文件 |
| 轮次内审查 | 每轮对话尾部展示本轮变更的文件列表与可展开的 diff(支持单项撤回),与「审查」标签的会话累计视图相互区分 |
| 数量角标 | 「审查」标签显示待审文件数,背景/文字颜色可自定义 |
| 颜色自定义 | 12 项颜色在 设置 → 修改审查 页调整(含对话底部变更列表的背景色、边框色、新增/删除行数颜色),每个颜色项都带透明度滑块(支持 rgba),localStorage 持久化 |
| 侧边栏净化 | 隐藏左侧栏的 Cordis 插件运行提示(cordis-panel) |
📦 安装
方式一:dsh plugin add(npm 发布后)
dsh plugin --profile web add dsh-change-review
方式二:手动部署
- 将包放入 harness 可解析的
node_modules,并在 profile 的cordis.patch.yml注册:
- insert:
- id: diff-review
name: 'dsh-change-review'
- id: ui-diff-review
name: 'dsh-change-review'
- 重启 dsh web
本插件面向 Web profile(
dsh --profile web)。
🚀 使用
- 打开会话,点击会话顶部视图标签 「审查」(位于「对话」之后、「轨迹」之前)
- 左侧文件列表(写入/编辑次数、~新增/~删除统计),右侧选中文件的 diff 对比。顶部可切换审查范围:「此会话」(会话累计)或 「最新一轮」(最近一轮对话的修改)
- 文件被修改时角标实时 +1;顶部「↻」刷新、「清空」清除当前会话记录
- 撤回修改(每次操作会二次确认,确认后直接改写磁盘文件):
- 撤回某一项:每条修改(编辑/写入)标题栏右侧的 撤回此项 按钮,文件恢复到该项修改之前的内容,其后无冲突的修改保留(有重叠则提示无法单独撤回)
- 撤回整个文件:详情区顶部的 撤回全部修改 按钮,恢复到本次会话首次修改之前的状态;会话中新建的文件则直接删除
- 轮次内审查:每轮对话结束后,对话尾部显示 「本轮变更审查」 卡片,列出本轮修改过的文件;点击文件展开查看该轮修改的 diff,并可对其中某一项修改撤回。会话累计变更仍在「审查」标签查看,二者相互独立
- 颜色:设置 → 修改审查(8 项 + 深浅色预设 + 恢复默认),改动自动保存,刷新保留
🎨 颜色配置
| 配置项 | 键名 | 浅色默认 | 深色预设 |
|---|---|---|---|
| 新增行背景 | addBg |
#e6ffec |
#10251c |
| 新增行文字 | addFg |
#1a7f37 |
#7ee787 |
| 删除行背景 | delBg |
#ffebe9 |
#2d1415 |
| 删除行文字 | delFg |
#cf222e |
#ffa198 |
| 上下文背景 | ctxBg |
#f6f8fa |
#161b22 |
| 行号 / 标记 | gutter |
#57606a |
#8b949e |
| 角标背景 | badgeBg |
#0969da |
#4493f8 |
| 角标文字 | badgeFg |
#ffffff |
#0d1117 |
| 新增行数(对话底部) | turnAdd |
#1a7f37 |
#7ee787 |
| 删除行数(对话底部) | turnDel |
#cf222e |
#ffa198 |
| 背景色(对话底部) | turnBg |
rgba(255,183,77,.1)(淡橙 10%) |
rgba(255,183,77,.1)(淡橙 10%) |
| 边框色(对话底部) | turnBorder |
#ffb74d(淡橙) |
#ffb74d(淡橙) |
🧠 行为说明
- 追踪范围:本进程内所有会话的
write/edit工具调用;按会话隔离,子代理改动沿 owner 链聚合到根父会话 - 实时性:Host 记录后经 SSE(
/diff-review/events)推送,客户端只处理当前会话事件 - 持久性:颜色持久化(localStorage
dsh.diff-review.colors);审查记录持久化到磁盘(写操作后防抖自动保存,退出时同步落盘,文件位于~/.dsh/profiles/web/diff-review-state.json),重启 dsh web 后自动恢复;删除该文件即清空历史记录 - 容量保护:单文件最多 100 次操作;单次内容截断 120KB;diff 单侧最多 1500 行;单独撤回时的三路合并限制单侧最多 2000 行
- 撤回原理:记录每项修改的完整前后内容快照(来自 write/edit 工具返回值)。撤回最后一项 = 精确还原快照;撤回中间项 = 三路行合并(保留其后修改、撤销该项),重叠即拒绝并提示;撤回成功后该修改及其后的修改从待审列表移除
- 升级说明:升级前(未记录内容快照)产生的修改记录无法撤回(不显示撤回按钮);Host 端改动需重启 dsh web 生效,浏览器端改动刷新页面即可
- 轮次划分:每项修改记录其所属的会话轮次(turn),由 Host 直接扫描会话日志(
turn/start/turn/end)得出——不依赖事件监听,重启/恢复的会话也能正确归属,多轮修改会正确分到各轮;子代理在父会话轮次内产生的修改也计入该轮。每轮对话尾部的卡片与该轮次对应;「审查」页的「最新一轮」视图展示最近一个轮次。升级前(未记录轮次)的旧记录不会出现在轮次卡片中,但仍可在「审查」标签查看
📝 更新日志
v0.2.0 — 撤回与轮次内审查(2026-08-15)
- 撤回变更 — 可单独撤回某一项修改(三路合并保留其后无冲突的修改,有重叠则拒绝),或撤回整个文件的全部修改(恢复会话首次修改前状态;会话内新建的文件则删除)。确认后直接改写磁盘
- 轮次内审查 — 每轮对话尾部展示本轮变更审查卡片,列出本轮修改的文件与可展开 diff;「审查」页新增「最新一轮」范围切换
- 持久化 — 审查记录现在可跨 dsh web 重启保留(
~/.dsh/profiles/web/diff-review-state.json,防抖自动保存 + 退出时同步落盘) - 升级说明 — 升级前的记录无内容快照与轮次标记:仍可在「审查」页查看,但无法撤回;升级后请重启 dsh web
v0.1.0 — 首个版本
- 会话隔离追踪
write/edit工具调用,LCS 行级 diff、子代理聚合、SSE 实时推送、颜色自定义、数量角标
🗂 架构
Host(lib/index.js)
· tools/result 监听 → 按会话分桶记录
· LCS 行级 diff
· HTTP 路由:/diff-review/summary · /file · /clear · /revert · /turn(均带 ?session=)
· SSE:/diff-review/events
│ HTTP + SSE(同源)
Browser UI(lib/client.js,__ModuleLoader__ bundle)
· 会话头部探针同步当前会话(隐藏)
· 「审查」视图标签 + 角标
· 设置页「修改审查」颜色自定义
· EventSource 实时订阅
⚖️ 免责声明
插件代码与你的 harness 进程同权限运行。使用前请审阅源码;收录于社区市场不构成安全背书。
📄 License
MIT
链接
同类插件
zhu1090093659/dsh-web-ui#packages/dsh-web-ui-all★ 2622
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
ccch1mneyyy/dsh-TUI★ 1231
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。
omdsh-dev/DSH-better-sidebar★ 1198
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。
omdsh-dev/dsh-at-file★ 214
Codex 风格的 `@file` 文件引用,输入框里直接搜索并引用工作区文件。
huiliyi37/dsh-tianshu-tui★ 159
DeepSeek Harness 的终端 UI(TUI)。
Nagi-ovo/dsh-visualize★ 114
对话内生成式 UI:模型把交互式 HTML 卡片直接画进会话流,带流式预览与沙箱渲染。