跳到正文
dsh-market 浏览插件 GitHub EN

sujingkpo/dsh-change-review-live

实时审查插件:追踪会话内 write/edit 工具调用,改动列表常驻输入框上方,点开即在插件自注册的右侧栏标签页里查看行级 diff,支持「会话记录 / 初始版本 / Git 版本」三种对比、单项与整文件撤回、子代理聚合与 SSE 实时刷新,配色可自定义;fork 自 cirelir/dsh-change-review,审查界面整体重构到右侧栏。

Star 数 ★ 0 分类 UI 增强 收录于 2026-09-18

安装

在 DeepSeek Harness 里通过 dsh-market 安装

dsh plugin --profile web add dshmarket

或使用命令行

dsh plugin --profile web add github:sujingkpo/dsh-change-review-live

装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络。请先审阅源码,并尽量锁定 commit(github:owner/repo#sha)。

截图

README

[!IMPORTANT] 本项目 fork 自 cirelir/dsh-change-review,并在其基础上持续改造(右侧栏 diff 标签页、实时审查列表、更名等)。 原作者版权与 MIT 许可保留:LICENSE 的 Copyright (c) 2026 cirelir 不变。

DeepSeek Harness(DSH)实时审查插件(dsh-change-review-live):实时追踪会话内的 write / edit 工具调用,把改动以行级 diff 呈现——改动列表常驻输入框上方,diff 正文在右侧栏的独立标签页里查看,可逐项或整文件撤回,颜色可自定义;会话隔离、子代理聚合、SSE 推送。

一个包同时承载 Host 逻辑与浏览器 UI(dsh.bundle + dsh.client 双 manifest)。

English

✨ 功能

功能 说明
自动追踪 监听 write / edit 工具调用,记录修改前后内容、时间与所属轮次
行级 diff LCS 行级对比:新增(绿)/ 删除(红)/ 上下文(灰),带新旧两侧行号;无变化的长段折叠为「⋯ 省略 N 行(无修改)」
审查列表 输入框上方的常驻面板:状态胶囊 + 路径 + 所在轮次 + 该轮问题 + +N/−N + 时间;点标题栏折叠/展开,展开后可拖拽调整高度(高度按会话记录在 Host 端)
右侧栏 diff 标签页 本插件自注册的侧栏标签类型:标题为「文件名 (diff)」并带红/绿 diff 图标,正文是该文件的完整 diff 与撤回操作
三段对比 每个文件可切换「会话记录」(本会话逐项改动)/「初始版本」(本会话首次修改前的样子)/「Git 版本」(HEAD)对比
撤回修改 单独撤回某一项(其后无冲突的修改保留),或撤回该文件的全部修改(恢复到本会话首次修改前;会话中新建的文件则删除)——每次二次确认,确认后直接改写磁盘
打开文件 优先在 DSH 右侧栏内预览该文件;服务缺失或地址无人认领时降级为系统默认程序打开
右键菜单 diff 行右键:复制「文件地址#行号」(选中多行时复制行号范围)
文件状态 新增 / 修改 / 删除 胶囊;删除 = 该文件当前不在磁盘上(新建后又删掉也算删除),文件名加删除线并禁用「打开文件」,但 diff 仍可查看与撤回
颜色自定义 设置 → 实时审查:12 项颜色,每项带透明度滑块(rgba),改动即时生效并自动保存;含浅色 / 深色预设与「恢复默认(随外观)」
会话隔离 / 子代理聚合 每个会话只展示自己的修改;子代理的修改沿 owner 链聚合到根父会话
实时刷新 Host 记录后经 SSE 推送,列表与 diff 面板随改动实时刷新,另有轮询兜底

📸 截图

审查列表 —— 输入框上方实时列出本会话改动的文件:状态胶囊、路径、所在轮次、该轮问题与 +N/−N

审查列表

侧栏 diff 标签页 —— 点文件名后在右侧栏查看逐项 diff、段落级撤回与三段对比模式

侧栏 diff 标签页

📦 安装

dsh plugin add

dsh plugin --profile web add github:sujingkpo/dsh-change-review-live

直接从 GitHub 仓库安装(npm 上还没有发布本包);装到 DSH Desktop 的 profile 时把 web 换成 desktop。安装后重启 DSH。

客户端 bundle 声明 platform: web,dsh web 与 DSH Desktop 共用;依赖 DSH 的右侧栏 API(sidebarRightTabs / sidebarRight)。

🚀 使用

  1. 会话里发生文件写入 / 编辑后,输入框上方出现 审查列表 面板(默认折叠;没有改动时不出现):点标题栏展开,列表按最近修改倒序排列
  2. 每行显示:状态胶囊、路径(目录段可省略,文件名恒完整)、第 N 轮 徽章、该轮问题、+N/−N、时间,行尾是 打开文件
  3. 点整行或点文件名 = 在右侧栏打开该文件的 diff;行尾「打开文件」= 在右侧栏打开文件本身(删除态置灰不可点)
  4. 侧栏 diff 面板顶部两行:第一行是状态胶囊 + 路径(悬停看完整绝对路径);第二行是操作 —— 复制路径 / 打开文件 / 刷新 / 对比模式(会话记录 · 初始版本 · Git 版本)/ 撤回全部(仅会话记录模式)
  5. diff 按「编辑 / 写入」分段,段头显示说明、时间、该轮问题、第 N 轮 与 撤回此项(仅会话记录模式)
  6. 刷新语义:会话记录模式随改动自动刷新(SSE,另有 15 秒兜底轮询);初始版本 / Git 版本不自动刷新,用「刷新」按钮手动重取;面板不可见(侧栏收起或标签在后台)时暂停轮询
  7. 右键 diff 行 → 复制「文件地址#行号」(选中多行时复制行号范围)
  8. 颜色:设置 → 实时审查,改动即时生效并自动保存

🎨 颜色配置

配置项 键名 浅色默认 深色预设 作用位置
新增行背景 addBg #e6ffec #10251c diff 新增行背景
新增行文字 addFg #1a7f37 #7ee787 diff 新增行文字
删除行背景 delBg #ffebe9 #2d1415 diff 删除行背景
删除行文字 delFg #cf222e #ffa198 diff 删除行文字
上下文背景 ctxBg #f6f8fa #161b22 diff 上下文行背景
行号 / 标记 gutter #57606a #8b949e 行号与 +/− 标记
角标背景 badgeBg #0969da #4493f8 已无显示位置(见下)
角标文字 badgeFg #ffffff #0d1117 已无显示位置(见下)
新增行数(对话底部) turnAdd #1a7f37 #7ee787 列表行 +N、「新增」胶囊、侧栏图标右半
删除行数(对话底部) turnDel #cf222e #ffa198 列表行 −N、「删除」胶囊、侧栏图标左半
背景色(对话底部) turnBg rgba(255,183,77,.1) 同左 已无显示位置(见下)
边框色(对话底部) turnBorder #ffb74d 同左 已无显示位置(见下)

badgeBg / badgeFg 与 turnBg / turnBorder 原本服务于「审查」视图标签的数量角标和「本轮变更审查」卡片,这两个界面已移除;设置页仍保留这四项,但改动它们不会影响任何界面。

🧠 行为说明

  • 追踪范围:本进程内所有会话的 write / edit 调用,按会话分桶;子代理的改动沿 owner 链聚合到根父会话
  • 实时性:Host 记录后广播 SSE(/diff-review/events),客户端只处理当前会话的事件;另有轮询兜底
  • 持久化:
    • 修改记录:$DSH_HOME/diff-review/<sessionId>.json(未设 DSH_HOME 时回退 ~/.dsh),防抖自动保存、退出时同步落盘,重启后自动恢复;删除该目录即清空历史
    • UI 偏好:面板高度按会话存 $DSH_HOME/diff-review/ui/<sessionId>.json
    • 颜色:浏览器 localStorage(dsh.diff-review.colors)
  • 文件状态判定:新增 = 该文件的首个操作没有「修改前内容」(会话中新建);删除 = 该文件当前不在磁盘上(不解析删除命令);其余为修改
  • 轮次归属:写记录时扫描会话日志的 turn/start 给每项操作打轮次;升级前落盘、没有轮次的旧记录按时间线回填
  • 撤回原理:每项操作记录 write / edit 返回的完整前后快照。撤回最后一项 = 精确还原快照;撤回中间一项 = 三路行合并(保留其后无冲突的修改),重叠即拒绝并提示
  • 容量保护:单文件最多 100 次操作;单侧 diff 最多 1500 行;三路合并单侧上限 2000 行;展示用片段最多 350,000 字符;超过 5,000,000 字符的超大文件不存快照(该记录退化为片段 diff 且不可撤回)
  • 生效范围:Host 端(lib/index.js)改动需重启 DSH;浏览器端(lib/client.js)改动刷新页面即可

🗂 架构

Host(lib/index.js)
  · tools/result 监听 → 按会话分桶记录 + 轮次归属
  · LCS 行级 diff、三路合并撤回
  · HTTP:/diff-review/{events(SSE) · summary · file · turn · against · revert · ui-prefs · open}
        │  HTTP + SSE(同源)
Browser UI(lib/client.js,__ModuleLoader__ bundle)
  · SessionProbe(隐藏)同步当前会话
  · LivePanel:输入框上方的审查列表(conversation.input.dock)
  · 自注册侧栏标签类型 dsh-change-review-live:diff-review:正文注册到 sidebar.right.pane.tab,标题图标注册到 sidebar.right.pane.tab.title
  · 设置页「实时审查」颜色自定义

⚖️ 免责声明

插件代码与你的 harness 进程同权限运行。使用前请审阅源码;收录于社区市场不构成安全背书。

📄 License

MIT

内容来自项目 README(GitHub)↗

评论

评论存放在 GitHub Discussions。用 GitHub 账号登录后可发表评论或点表情。