🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
广告☁️ 云服务器特惠阿里云首购 8 折 · 腾讯云合作特惠
DeepSeek Harness Hub
← 返回列表

kaiarvin/dsh-show-diff

DeepSeek Harnessspec-screened扫描:低风险在 GitHub 查看 ↗
未验证

可安装的插件包。 dsh-show-diff 是 diff-viewer…

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/15 · 已提供中文文档

为编辑/写入工具扩展的彩色编码差异工具卡片——DeepSeek Harness 客户端插件,支持按文件显示行号

综合分
26.9
GitHub 分
26.9
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add kaiarvin/dsh-show-diff
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
信任档位:仅索引本站尚未对其实装验证,仅收录元数据
是什么
dsh 原生插件 · tool
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
还在维护吗
更新放缓:最近一次提交在 41 天前

档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →

数据截至 2026/9/23(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-test-runtime@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-client-ui-tool@deepseek-ai/dsh-invariants
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

由 DeepSeek 最新模型翻译生成
dsh-show-diff

可安装的插件包。 dsh-show-diff 是 diff-viewer 客户端插件的独立可安装包名。它的正式上游归属地在 deepseek-harness monorepo 的 packages/client/ui-diff-viewer/(在那里以 @deepseek-ai/dsh-client-ui-diff-viewer 发布);本仓库是它在 dsh-show-diff 名下的独立可安装副本。

展开式彩色 diff 工具卡片,浏览器端:把 edit 和 write 两个 wire 名称注册进 ui-tool 的 keyed tool.call.toolview slot。每一次文件修改都会在对话流中直接渲染成一张展开的 diff 卡片——头部标明修改动作(Edit/Write)及其路径,正文通过本包的行对齐 DiffLines 表面绘制被应用的 hunk,以错误/成功颜色分别呈现删除侧和新增侧,逐行显示旧文件与新文件的行号(以每个 hunk 的起始行为基准重定基,因此是真实的文件坐标),长正文按高度上限折叠,并提供复制与 └ +A -R · N file(s) 底部统计。

新旧两侧按行做有界 LCS 对齐,因此每一行在两侧一致时同时显示旧文件行号与新文件行号,删除行显示旧行号,新增行显示新行号——与 GitHub 风格 diff 的阅读体验一致。工具的结果视图携带每个 hunk 在文件中的起始行(FileDiff 契约上的 oldStart/newStart);调用时视图与旧数据没有这些字段时,退回在 hunk 内从第 1 行编号。

出厂自带的 file-mutation-toolview 行也会渲染同样的 hunk,但放在默认折叠的展开体内,且对话流里最多显示 8 行。本包接管这两个 key,让改动一览无余:卡片默认展开,并可通过头部开关收起整张卡片。注册一个出厂组合已覆盖的 key 会替换该占用者——这些行以 -1 优先级注册,遮蔽出厂单元格(同 key 同优先级会抛错);移除本 bundle 即可恢复出厂行。

数据来源

该行的 hunk 与生命周期只派生自 ui-tool 提供的冻结的工具调用/工具结果切片,绝不读取文件系统:

- 已结算:当 block.resultView 的 card 为 'diff' 时,它携带 edit/write 工具返回的已应用上下文 hunk(edit 的真实前后文、create 的整文件 diff)。这是权威数据,并取代调用时的视图。
- 运行中:当 block.callView 的 card 为 'diff' 时,它携带仅由参数派生的预期改动(覆盖写的 oldText 为 null)。
- 畸形或缺失:card: 'diff' 视图的 diffs 不是良构 hunk 数组时,卡片落入空态;失败的修改把面向模型的错误文本留在输出表面,而不是显示 diff。

回放保持稳定:hunk 存于持久化的调用/结果视图上,因此窗口或会话重载会重绘同一处改动。

安装

这是 DeepSeek Harness web 部署的附加客户端插件,不是独立应用:它通过接管 edit/write 工具卡片来扩展已有的 DSH web 表面,因此你需要先有一个正在运行的 DSH 部署(它提供 bundle 导入的平台模块,如 @deepseek-ai/dsh-client-ui-primitives)。

为什么插件不能独立安装。 @deepseek-ai/ 包声明为 peer 依赖——它们由你的 DSH 部署提供,不由本包安装。发布到 npm 的早期 rc 包依赖树不完整(例如 dsh-client-runtime@0.0.1-rc.1 引用了一个 registry 里不存在的包),因此你不应自行安装它们;请把本插件安装进一个已满足这些 peer 的部署,你的包管理器就绝不会从 npm 拉取 @deepseek-ai 平台。

包名是 dsh-show-diff(无 scope,任何人都能安装)。两种安装途径:

方式 A——从本 git 仓库安装(无需发布 npm)

把本仓库加为你 DSH 部署的依赖,然后加插件行。以 pnpm 为例:

在你的部署 package.json 里,或通过 pnpm add:
pnpm add dsh-show-diff@git+https://github.com/kaiarvin/dsh-show-diff.git

然后在 web 表面的 cordis.patch.yml(或任何更晚的 patch 层)加一行:

- id: ui-diff-viewer
name: 'dsh-show-diff'

方式 B——发布到 npm 后安装

一次,在本仓库内,用你的 npm 凭据:
npm publish

然后在任意 DSH 部署:
pnpm add dsh-show-diff

…并加上与上面相同的 cordis.patch.yml 行。

前置条件与说明

- 构建产物 lib/ 随仓库提交。 lib/client.js 浏览器 bundle 是 DSH 实际加载的部分,已提交到本仓库(从 deepseek-harness monorepo 的上游 @deepseek-ai/dsh-client-ui-diff-viewer 包构建,使用独立包 id)。因此 git 安装开箱即用。要从源码重建,请在 deepseek-harness checkout 内构建:pnpm --filter @deepseek-ai/dsh-client-ui-diff-viewer run bundle,然后把 lib/ 以 dsh-show-diff 为 id 复制回来。
- node 半边是空 apply,使插件出现在 host 组合中;浏览器半边经由 exports["./client"] 提供,由 package.json 里的 dsh.client 声明发现。
- 是替换而非叠加。 以 -1 优先级注册 edit/write,遮蔽出厂 file-mutation-toolview 单元格;移除该行(或依赖)即恢复出厂卡片。
- 运行时平台包是 peer 依赖。 @deepseek-ai/ 均为 peer 依赖:你的 DSH 部署已提供它们,无需自行安装。
- 加完行后重启 web 进程,让新的 dsh.client 包被扫描进 boot manifest。

行为

- 状态:运行中的调用提示「正在应用修改」;失败显示错误首行与错误状态;中断的调用使用警告状态。仅颜色的提示都附带视觉隐藏的状态文字。
- 路径:修改的 file_path 渲染为可点击的链接(工作区根路径相对会话 cwd 显示)。
- 收起:整张卡片可通过开关收起到只剩头部;DiffLines 对超长 diff 保留自己的高度上限。
- 查看详情:可用时提供标准的执行轨迹 Inspect 入口。

模型体验

本包纯粹是客户端呈现表面:不注册任何工具,不发任何会话事件,不增加任何 token 或模型可见上下文。面向模型的 edit/write 工具及其结果文本不变;只是它们的调用在对话流中的呈现方式不同。

已知限制与暂缓事项

- 仅含工具结果的 history 页使用通用行:键控分派要求配对的工具调用位于运行时窗口内;分页将工具调用留在窗口外时,工具结果没有工具身份,这项呈现功能不会为恢复该身份而扩展 history 协议约定。
- 数据缺少文件坐标时行号是 hunk 内的相对行号:调用时视图与较早持久化的结果不带 oldStart/newStart,因此这些 hunk 在 hunk 内从第 1 行编号,而非文件行号;当前工具产生的结果视图携带真实文件行号。
- 接管而非叠加:占用 edit/write 会替换同名下的出厂 file-mutation-toolview。移除 bundle 即恢复出厂行为;没有共存模式。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入社群

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

DPharness QQ 群二维码,QQ 扫码进群
QQ 扫码进群
DPharness 飞书群二维码,飞书扫码进群
飞书扫码进群