此插件由 AI 生成,未经人工代码审查(Code Review)。使用前请自行审查源码,确保符合你的安全要求。
This plugin was AI-generated and has not been human-reviewed. Audit the source yourself before use.
安装
dsh plugin --profile web add github:2436238575/dsh-turn-diffGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
此插件由 AI 生成,未经人工代码审查(Code Review)。使用前请自行审查源码,确保符合你的安全要求。
DeepSeek Harness (DSH) Web UI 插件:每轮对话结束时,汇总本轮所有文件修改差异。
效果
在每轮对话最后一条 assistant 消息下方,新增一个可折叠的"改动汇总"面板:
- 折叠状态:显示
N 个文件 · M 处修改 - 展开状态:按文件分组展示所有 Write/Edit 调用的 diff hunk
- 每个文件路径可点击,通过宿主的文件打开器直接跳转
- 使用 DSH 内置的
DiffBlock组件渲染,与工具调用内联 diff 样式一致
动机
DSH 已有 ui-deliverables 插件,在每轮结束时显示"修改了哪些文件"的文件芯片清单。但没有一个地方能一次性查看本轮所有改动的 diff 内容——你得回到对话流里,逐个展开每个工具调用的 diff 卡片。
本插件补上这个缺口:数据来源与 ui-deliverables 相同(工具自身的 diff 渲染意图),但把所有 hunk 按文件合并,在一个面板里展示。
构建产物:
lib/index.js(0.4 KB) — Node 端插件入口lib/client.js(12.4 KB) — 浏览器端 bundle(__ModuleLoader__.load格式)lib/types/— TypeScript 类型声明
安装
前提
- DeepSeek Harness >= 0.1.0-rc.5(已验证 rc.5 构建通过)
dsh web模式运行
安装步骤
# 1. 克隆仓库到 harness 的 workspace 同级目录,或直接放在 harness 仓库目录下
git clone https://github.com/<你的用户名>/dsh-turn-diff.git
cd dsh-turn-diff
# 2. 暂时将插件注册为 harness 的 workspace 成员,以便依赖解析
# 编辑 <harness>/pnpm-workspace.yaml,在 packages: 列表末尾添加一行:
# 注意缩进,与 `- vendor/*` 对齐
# - dsh-turn-diff
# 3. 在 harness 根目录安装依赖
cd <harness-root>
pnpm install --no-frozen-lockfile
# 4. 构建插件
pnpm --filter dsh-turn-diff run build
# 5. 安装进 web profile
dsh plugin --profile web add link:$(pwd)/dsh-turn-diff
# 6. 重启 dsh web
dsh web
或者直接从 npm 安装(发布后):
dsh plugin --profile web add dsh-turn-diff
重启后,每轮对话结束时即可看到改动汇总面板。
卸载
dsh plugin --profile web remove dsh-turn-diff
重启 dsh web 即可。
架构
dsh-turn-diff/
├── cordis.patch.yml # bundle 入口:挂载 node 端和 client 端插件
├── src/
│ ├── index.ts # Node 端(无操作,仅作为插件入口)
│ ├── invariant.ts # 运行时不变式
│ └── client/
│ ├── index.ts # 浏览器端入口:注册节点和槽位
│ ├── turn-diff.ts # ConversationNodeDefinition:聚合 tool/result diff 数据
│ ├── TurnDiffPanel.tsx # React 组件:可折叠的差异面板
│ └── TurnDiffPanel.module.css
├── tsconfig.json
├── tsdown.config.ts
└── package.json
数据流
tool/result (card: 'diff', diffs: FileDiff[])
│
▼
turnDiffDefinition.match() → 匹配 turn/start 和 tool/result
│
▼
turnDiffDefinition.update() → 合并 hunk 到按路径索引的状态
│
▼
turnDiffDefinition.buildLocationData() → 发布 turn-diff 到回合数据 { files: [...] }
│
▼
TurnDiffPanel 从 turn.data.get('turn-diff') 读取 → 渲染展开/折叠面板
依赖
@deepseek-ai/dsh-client-runtime— 会话节点和数据存储@deepseek-ai/dsh-client-ui-conversation— turnTail 槽位@deepseek-ai/dsh-client-ui-slots— 槽位注册@deepseek-ai/dsh-client-ui-primitives— DiffBlock 组件@deepseek-ai/dsh-tools/presentation— FileDiff 类型react/clsx— UI 渲染
已知限制
- diff 仅覆盖 Write/Edit 工具调用:通过终端命令间接修改的文件不在统计范围内(与
ui-deliverables一致,因为presentResult产生的 diff 视图只在这些工具上定义) - 回放/历史页面:通过
viewFor函数重算视图,应该能正常渲染;但如果某个工具在回放时没有注册,view 会缺失 - 默认不编译:需要先
pnpm run build再安装
License
MIT
原始 README: https://github.com/2436238575/dsh-turn-diff/blob/master/README.md ↗
同类插件
查看全部 →
dsh-anchored-standard
两阶段 DeepSeek Harness 预设:先 Minimal 对齐的 bootstrap,再切完整 Standard 工具(Project2 98/99)

PicGo-Core
极致的图片上传引擎,CLI 与 API 双支持

awesome-deepseek-harness
DeepSeek Harness(DSH)及其优秀社区插件的精选指南。

awesome-deepseek-harness
DeepSeek Harness (DSH)生态系统:来自dsh-external/hub和公共dsh-plugin主题的精选插件、工具和基础设施。

AI-Novel-Writer
本地优先 AI 小说创作工作台,提供 Windows/macOS 桌面版与 DeepSeek Harness 插件开发预览,支持角色、大纲、章节蓝图、审稿修稿和本地模型。

mcp-for-stata
MCP-for-Stata:把 Stata 集成进你的 agent