DeepSeek Harness 插件

dsh-diffstream

Show code changes in the dsh web GUI conversation: inline line-level diff inside edit/write tool cards with a streaming reveal animation, plus a per-turn file-change summary card (git-first(英文原文)

跳到安装方式

来源信息

GitHub 仓库
F-Light/dsh-diffstream
最近更新
2026年8月16日
分类
工具与能力
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/F-Light/dsh-diffstream
插件名:dsh-diffstream
作者:F-Light

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.md来源说明 · 只读预览

dsh-diffstream

在 DSH web GUI 的对话流中直接展示代码改动,让你随时清楚 agent 改动了哪些文件、改了什么、执行到了什么位置。

✨ 功能

1. 工具卡片内嵌行级 diff(流式动画)

每次 edit / write 工具执行完成后,改动内容直接渲染在对应的工具卡片内部——绿色 + 新增行、红色 删除行,带行号与上下文;diff 以流式逐行动画展开(支持 1x / 2x / 立即 速度控制),视觉效果与 assistant 消息的流式输出同步,改动展开到哪一行 = 执行到了什么位置。

![工具卡片内嵌 diff](docs/screenshots/tool-card-diff.png)

2. 回合尾部改动汇总

每个已完成的回合尾部追加「📋 本回合改动汇总」卡片:文件级列表(路径、新增/修改/删除状态标签、+N −M 增删统计、头部徽标),点击文件行展开该文件的完整行级 diff;同一文件多次编辑自动合并统计。

![回合尾部改动汇总](docs/screenshots/turn-summary.png)

3. git 优先、参数回退

  • 汇总卡片优先使用真实 git diff(含上下文 hunk,经 Host RPC 获取),非 git 项目或 git 命令失败时静默回退为工具参数 diff(视觉一致,功能不中断);
  • 大文件(>200 行)自动截断,可点击展开全部;
  • diff 卡片自动滚动:动画播放期间自动跟随最新行滚动到底部(手动上滚时暂停跟随);
  • 无文件产出的回合自动让位官方 ProducedFiles 展示(chain 回退),互不干扰;
  • 动画按工具调用 callId 去重,历史回合(刷新后)直接完整显示,不重播。

📦 安装

本插件以独立 npm 包提供,通过 profile 的 cordis.patch.yml 注入,无需修改 dsh 源码。

# 1. 将包放入 web profile 的 node_modules(或 pnpm link 本地路径)
cd ~/.dsh/profiles/web
pnpm add @f-light/dsh-diffstream
# 2. 在 ~/.dsh/profiles/web/cordis.patch.yml 追加插件行
- insert:
    - id: diffstream
      name: '@f-light/dsh-diffstream'
# 3. 重启 dsh web 生效
dsh --profile web

🔧 工作原理

浏览器端 (lib/client.js)
├─ tool.call.toolview (key: edit / write)   ← 接管工具卡片,内嵌行级 diff + 流式动画
└─ conversation.chat.turnTail (chain, priority -1)
   └─ 汇总卡片:参数 diff(会话快照提取)→ git hunk(Host RPC 成功时优先)
Host 端 (lib/index.js)
└─ harness.handle('diffstream/git-status')  ← shell 执行 git status/diff,解析结构化 hunks
  • diff 引擎:纯客户端 LCS 行级对比(零依赖、零延迟、不读磁盘),仅使用工具调用参数(old_string / new_string / content)与 git 输出;
  • 数据回退矩阵
场景工具卡片(内嵌)回合汇总
git 项目参数 diff(实时逐条)git hunk(含上下文)
非 git 项目参数 diff参数累计 diff
git 命令失败/超时不受影响回退参数累计 diff
大文件(>200 行)截断 + 展开同左
工具执行失败错误态,无 diff不计入汇总

🛠 开发

# 动态原型(当前会话):通过 DSH 的 Cordis 动态插件工具定义并运行
# 固化 bundle 结构:
#   lib/index.js   Host 半(git RPC)
#   lib/client.js  浏览器半(window.__ModuleLoader__.load 格式)
#   docs/screenshots/  功能截图(headless Edge 渲染)

License

MIT