前言¶
在 DSH Web 里跑完一轮工具调用后,对话流末尾通常会有一行「本次产出」chip:能点到文件,但文件数、增删行数和 diff 往往要再点开别处才能看清。若工作区本身不是 git 仓库,或改动只存在于会话日志里的 applied diff,单靠 git 统计也不可靠。
下面介绍社区客户端插件 dsh-better-summary(维护者 yaodongH):它不改 DSH 源码,在轮次尾部 顶替 自带的产出行,换成类似 Codex 的改动汇总卡片——文件数、合计与逐文件的 +新增 −删除、折叠展开、按文件内联 diff,以及「在文件夹中显示」。行数来自每轮成功工具结果里的 applied diff,不依赖 git。
这是什么¶
dsh-better-summary 是 DSH Web 的 profile bundle 插件(分类:客户端)。当前版本 0.2.0,要求宿主 DSH ≥ 0.1.6-alpha.2(MIT 许可证)。它以 conversation.chat.turnTail 的 list 槽注册(priority 默认 -2),同一单元格内优先级更低的一条会渲染,从而接管 ui-deliverables(0)等自带行;关闭设置或卸载后恢复原样。
目录页:skillhub.cn/plugins/yaodongH/dsh-better-summary
源码与说明:github.com/yaodongH/dsh-better-summary
核心功能¶
卡片展示什么¶
- 头部汇总:例如「已编辑 N 个文件」及总计
+a −d。 - 文件列表:每个文件一行增删计数;可折叠(默认折叠时显示 3 个文件行,可在设置里改 1–20)。
- 「审查」:展开全部文件的内联 diff(单文件默认最多 200 行,可调 20–2000)。
- 行点击:走 DSH 既有的文件打开逻辑。
- 「在文件夹中显示」:插件自研 Host 侧实现,用 argv 数组 spawn,不经过 shell;含 WSL 分支(
wslpath+ Windows 资源管理器 /Invoke-Item),失败时在卡片上显示原因,不再静默。
数据从哪来¶
- 插件注册
ConversationNodeDefinition(kindbetter-summary),折叠turn/start、tool/call与 append 语义的tool/result,把成功结果的{name, argsRaw, meta}按日志顺序挂到 Turn 数据上;并读取 DSH 自带的deliverables作文件顺序与兜底。 - 变更通过「来源」策略推导:内置
dsh.tool-result-diff-meta(读工具自报的 applied diff)与dsh.tool-call-args(新建文件时由调用参数补齐)。 - 与 DSH 显示模式无关:不发布视图节点,紧凑模式下工具节点被折叠时仍能从折叠定义里读到数据。
设置(DSH → 任务产出)¶
| 配置项 | 默认 | 说明 |
|---|---|---|
| 折叠行数 | 3 | 折叠时显示的文件行数 |
| 内联差异行数上限 | 200 | 单文件 diff 最多渲染行数 |
| 文件夹按钮 | 图标加文字 | 或「仅图标」「隐藏」 |
| 卡片字号 | 跟随正文 | 或固定 11–18px |
| 槽位优先级(高级) | -2 | 同格内数值越小越优先 |
| 启用 | 开 | 关闭后恢复自带产出行 |
保存即生效,无需刷新页面。部署级还可通过 cordis.patch.yml 覆盖「在文件夹中显示」的 opener(参数 {path} 为打开目标)。
已知限制(v1)¶
- 覆盖范围与 DSH 自带产出清单一致:
write/edit/str_replace_editor;bash等非工具途径改动的文件不在清单内。 - 无撤销(README 中列为后续计划)。
- v1 状态:README 写明已通过 typecheck、143 项单元与组件测试、5 条 E2E lane。
安装与启用¶
插件以 profile bundle 方式挂载到 Web profile。安装前请自行查看仓库源码与 MIT 许可证;插件与 DSH 以当前进程权限运行,与任何官方应用商店无从属关系。
官方 CLI(推荐,本地 tarball)¶
在 DSH checkout 内(本机 dsh 不在 PATH 时):
pnpm -C <deepseek-harness 路径> dsh plugin --profile web add file:<绝对路径>/dsh-better-summary-0.2.0.tgz
命令会在 profile 目录执行 pnpm add,并按包的 dsh.bundle.patch 把 dsh-better-summary 追加进 dsh.profile.bundles。
从 GitHub 安装¶
dsh plugin --profile web add github:yaodongH/dsh-better-summary
仓库不含预构建的 lib/,安装依赖 prepare 构建。pnpm 10 默认不执行依赖构建脚本时会出现 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED,需在 ~/.dsh/profiles/web/pnpm-workspace.yaml 放行,例如:
allowBuilds:
dsh-better-summary: true
安装成功以 dsh.profile.bundles 中出现 dsh-better-summary 为准;可能出现 missing peer 警告,profile 侧由 DSH 应用提供 peer,一般可忽略。
兼容性¶
| 插件版本 | 适用 DSH |
|---|---|
| 0.2.0(当前) | ≥ 0.1.6-alpha.2(turnTail 为 list 槽,需 options.id) |
| 0.1.1 | 0.1.5-alpha.1(chain 槽,需 options.select) |
装错版本时客户端在装载期报错,卡片不出现,自带产出行仍显示,例如:
list slot "conversation.chat.turnTail" requires options.id
回滚¶
从 dsh.profile.bundles 移除该包或关闭「启用」后重启 dsh web,原有产出行恢复。
典型用法¶
- 按上一节安装并重启
dsh web。 - 在 Web 对话中让智能体通过
write/edit等工具改文件;轮次结束后在对话末尾查看汇总卡片而非 chip 行。 - 需要细看改动时点「审查」看内联 diff;要在系统文件管理器中定位时点「在文件夹中显示」。
- 在 DSH 设置 → 任务产出 调整折叠行数、字号等;若需自定义打开命令,在部署的
cordis.patch.yml中配置opener。
扩展其他工具时,可在客户端向 ctx.betterSummary 注册来源(README 提供 registerNodeSource 示例),无需改卡片本体。
适用场景与注意¶
适合谁: 经常在 DSH Web 里看单轮文件改动、希望末尾一眼看到增删行与 diff、且工作区未必是 git 仓库的开发者。
注意:
- 仅统计插件覆盖的工具路径;与 git status 不一致时以卡片口径为准。
- DSH 与插件版本必须匹配上表,否则装载失败。
- 从 GitHub 安装等于拉取并构建第三方代码,安装前请审查仓库。
- 社区目录 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-better-summary 把对话末尾的产出 chip 换成可折叠的改动汇总卡片,统计不绑 git,设置集中在「任务产出」页。需要细节、截图与设计说明见 GitHub README 与 docs/design.md。
- 目录页:https://www.skillhub.cn/plugins/yaodongH/dsh-better-summary
- GitHub:https://github.com/yaodongH/dsh-better-summary