dsh-deliverables-toggle
为 DeepSeek Harness 对话产物列表增加主动展开与收起功能的 Web UI 插件。
- Stars
- 1
- Language
- TypeScript
- Created
- Aug 24, 2026
- Updated
- Aug 24, 2026
Introduction
dsh-deliverables-toggle
让 DeepSeek Harness 对话结束时的“产物”列表支持主动展开和收起。
English | 简体中文
它解决什么问题?
DeepSeek Harness 在一轮对话结束后,会在回复下方展示本轮生成或修改过的文件,例如 package.json、tauri.conf.json、Cargo.toml 等。
当产物数量较多或文件名较长时,内置产物列表会自动收缩成一行,并显示类似 + 3 个文件 的提示。默认界面可以告诉你还有更多文件,但不能主动展开查看完整列表。
dsh-deliverables-toggle 会替换这块产物列表 UI,增加明确的展开和收起操作:
- 默认仍保持一行自适应展示。
- 超出一行时,点击
+ N 个文件展开全部产物。 - 展开后所有产物文件都以 chip 形式显示,并支持换行。
- 展开后点击
收起恢复自动折叠。 - 文件 chip 仍然可以点击打开文件。
在文件夹中显示仍然保留。
效果预览
折叠态:

展开态:

安装
在 DeepSeek Harness 项目中安装本地插件:
dsh plugin --profile web add dsh-deliverables-toggle
如果使用 pnpm dsh 启动 DSH,也可以执行:
pnpm dsh plugin --profile web add dsh-deliverables-toggle
安装后重启 DSH Web 服务,并刷新现有 Web 页面。
默认 Web 地址通常是
http://127.0.0.1:3080。不要启动新的替代 Web 服务来验证此插件;应让当前 DSH Web profile 加载该插件。
本地开发
pnpm install
pnpm run typecheck
pnpm run build
pnpm run check
构建产物输出到 lib/:
lib/index.js:Host 侧插件入口。lib/client.js:Web 客户端插件入口。lib/types/:TypeScript 声明文件。
实现方式
DSH 内置产物列表由 @deepseek-ai/dsh-client-ui-deliverables 提供。它注册到 Web 客户端的 conversation.chat.turnTail chain slot。
本插件同样注册到 conversation.chat.turnTail,并使用更高优先级:
priority: -100
因此,当某轮对话存在产物文件时,本插件会先于内置产物列表被选中并渲染。没有产物文件的轮次不会被本插件接管,会继续交给后续 chain entry 处理。
本插件复用 DSH 现有 turn-scoped deliverables 数据,不新增模型可见信息,不修改 session log,也不新增工具。
Model Experience
| 项目 | 影响 |
|---|---|
| Token 成本 | 无。插件只改变 Web UI 展示,不进入模型请求。 |
| 工具调用 | 无。插件不注册新工具。 |
| Session log | 无。插件只读取现有 deliverables turn data。 |
| Prompt | 无。插件不注册 system prompt 内容。 |
已知限制
- 这是一个覆盖型 UI 插件,会复制 DSH 内置产物列表的选择和测量逻辑;如果上游
ui-deliverables行为发生变化,本插件可能需要同步调整。 - 插件依赖
conversation.chat.turnTailchain slot 和 turn-scopeddeliverables数据;如果 DSH 后续重命名这些内部接口,需要更新插件。 - 插件只改变对话尾部产物列表,不改变 assistant 正文中的文件引用链接行为。
许可证
MIT