DSH 插件 dsh-code-diff-viewer:把 edit / write 工具调用变成可折叠代码对照面板

前言

在 DeepSeek Harness(DSH)的 Web 界面里,edit / write 工具调用会出现在对话流中。若只看到工具结果,通常还需要对照“修改前”和“修改后”才能确认改动范围。

dsh-code-diff-viewer 是面向 DSH Web 界面的第三方客户端插件。它把这些工具调用渲染为可折叠的「修改前 / 修改后」代码面板,用于在对话中查看代码变更。

这是什么

kelai141/dsh-code-diff-viewer 是 DSH 的第三方插件,维护者为 kelai141,许可证为 MIT。它用于扩展 DSH Web 界面中 edit / write 工具调用的展示方式,不新建模式、不落盘任何文件。

该插件不是 DSH 官方组件。

核心功能

修改前后对照

插件会按变更类型选择展示形式:

  • 混合增删:左右双列展示「修改前 / 修改后」
  • 纯新增:单列展示绿色新增内容
  • 纯删除:单列展示红色删除内容

绝对行号

插件通过 Host 端 /cdv-locate 反推每个 hunk 的绝对起始行,并在面板中显示真实行号。这样即使修改发生在文件中部,也可以按行号定位。

语法高亮

插件内置轻量分词器,用于语法高亮。支持的语言包括 JS/TSPythonCSSHTMLShellJSONYAML 等。

卡片折叠

工具调用卡片支持折叠。最新一次修改自动展开,旧卡片保持收起,便于在对话流中查看最近变更。

注入方式

插件以纯视觉方式注入 DSH 对话流,不新建模式、不落盘任何文件。它作为静态 bundle 层挂载,dsh 启动后生效,无需审批。

安装与启用

先确认环境满足以下要求:

  • 已安装 DeepSeek Harness(dsh CLI)
  • 已安装 pnpm
  • 使用 web profile
  • Node.js ≥ 22

使用下面的命令安装插件:

dsh plugin --profile web add github:kelai141/dsh-code-diff-viewer

安装完成后,需要停止旧的 web 进程,再重新启动 DSH Web:

dsh web

然后刷新浏览器。该插件没有热更新,安装后需要重启 dsh web 进程。

如果 pnpm 提示插件构建脚本被拦截,按提示在 profiles/web/pnpm-workspace.yamlallowBuilds 中加入对应 key 后重试。dsh-code-diff-viewer 没有构建脚本,一般不会触发这个情况。

验证

经过上面的步骤后,可以检查插件是否进入当前 web profile 的组合树:

dsh --profile web --dump-config | grep code-diff-viewer

也可以检查客户端包是否可访问:

http://127.0.0.1:3080/plugins/dsh-code-diff-viewer/client.js

如果命令行能检索到 code-diff-viewer,并且浏览器可以访问上面的客户端包路径,说明插件的 Web 端资源已挂载。

卸载

如果需要移除插件,执行:

dsh plugin --profile web remove dsh-code-diff-viewer

之后重启 dsh web 进程,界面会恢复为原厂工具卡片。

适用场景与注意

这个插件适合在 DSH Web 对话流中频繁查看 edit / write 工具调用的开发者。它把代码变更以对照面板呈现,并显示真实行号,适合用于快速确认修改范围。

使用前注意几点:

  • 它是第三方插件,非 DSH 官方组件。
  • 插件会在当前 dsh 进程权限下运行,安装前建议检查源码与许可证。
  • 客户端依赖 DSH 自带的 react seed 模块与 slots 服务。
  • 插件无第三方运行时依赖。
  • 安装或卸载后需要重启 dsh web 进程,没有热更新。

结尾

dsh-code-diff-viewer 的价值在于把 DSH Web 中的 edit / write 工具调用变成可折叠的代码对照面板,便于查看修改前、修改后、增删类型和真实行号。

GitHub 仓库:

https://github.com/kelai141/dsh-code-diff-viewer

目录页地址未在本篇核实,因此不在此列出。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜