編集者注

cirelir/dsh-change-review

A session change-review plugin for DeepSeek Harness (DSH): automatically tracks file write / edit operations inside your session and renders them as line-level diffs with customizable colors — session-isolated, subagent-aggregated, and pushed live via SSE.

これは DeepSeek Harness(DSH)プラグインです。当サイトは GitHub README、インストール情報、メンテナンス状況、公開セキュリティシグナルをまとめています。

dsh-change-review

DeepSeek Harness(DSH)会话修改审查插件:自动追踪会话内的文件写入/编辑操作,在会话视图中以 diff 对比形式展示,支持颜色自定义、实时推送、会话隔离与子代理聚合。

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

English

✨ 功能

功能说明
自动追踪监听 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

方式二:手动部署

  1. 将包放入 harness 可解析的 node_modules,并在 profile 的 cordis.patch.yml 注册:
- insert:
    - id: diff-review
      name: 'dsh-change-review'
    - id: ui-diff-review
      name: 'dsh-change-review'
  1. 重启 dsh web

本插件面向 Web profile(dsh --profile web)。

🚀 使用

  1. 打开会话,点击会话顶部视图标签 「审查」(位于「对话」之后、「轨迹」之前)
  2. 左侧文件列表(写入/编辑次数、~新增/~删除统计),右侧选中文件的 diff 对比。顶部可切换审查范围:「此会话」(会话累计)或 「最新一轮」(最近一轮对话的修改)
  3. 文件被修改时角标实时 +1;顶部「↻」刷新、「清空」清除当前会话记录
  4. 撤回修改(每次操作会二次确认,确认后直接改写磁盘文件):
    • 撤回某一项:每条修改(编辑/写入)标题栏右侧的 撤回此项 按钮,文件恢复到该项修改之前的内容,其后无冲突的修改保留(有重叠则提示无法单独撤回)
    • 撤回整个文件:详情区顶部的 撤回全部修改 按钮,恢复到本次会话首次修改之前的状态;会话中新建的文件则直接删除
  5. 轮次内审查:每轮对话结束后,对话尾部显示 「本轮变更审查」 卡片,列出本轮修改过的文件;点击文件展开查看该轮修改的 diff,并可对其中某一项修改撤回。会话累计变更仍在「审查」标签查看,二者相互独立
  6. 颜色:设置 → 修改审查(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
背景色(对话底部)turnBgrgba(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

REPOSITORY SIGNALS

セキュリティとインストールエビデンス

このスコアは公開リポジトリメタデータと当サイトに登録されたインストールエビデンスのみに基づくもので、コードセキュリティ監査とは異なります。

出所の追跡可能性

公開プラグインカタログから取得し、公開 GitHub リポジトリにリンクしています。

ライセンス

リポジトリは MIT ライセンスを宣言しています。

メンテナンス活動

過去180日以内にコードの更新があります。

インストールエビデンス

再現可能な正確なインストールメタデータはまだ登録されていません。リポジトリの説明に従って手動で確認してください。

インストールライフサイクルスクリプト

確認したパッケージメタデータにインストールライフサイクルスクリプトは宣言されていません。