dsh-friendly-steps:把 DSH Web GUI 的技术过程折成一条摘要

前言

DSH 的理念是「一切皆插件」。在社区目录里,插件可以围绕 DSH 的界面与能力做局部增强,而不需要改主程序。

DSH Web GUI 的会话消息流会显示 Think、工具调用、重试、压缩等过程行。这些信息对排查有帮助,但对只关心正文的人会造成阅读干扰。

dsh-friendly-stepsdongwenxiu83-web 维护的 DSH 插件,许可证为 MIT。它把上述过程行用纯 CSS 折叠,并在右下角显示一条摘要浮条,面向文字工作者的非技术呈现。

社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。

这是什么

一句话定位:过程精简插件,把 DSH Web GUI 里的 Think / 工具调用等技术过程行折叠成友好摘要。

  • 维护者:dongwenxiu83-web
  • 许可证:MIT
  • 解决的问题:减少 DSH Web GUI 会话消息流中技术过程行对正文阅读的干扰
  • 呈现方式:折叠过程行,并用右下角浮条显示摘要状态

核心功能

1. 折叠过程行

插件把 DSH Web GUI 会话消息流里的以下过程行用纯 CSS 折叠:

  • Think
  • 工具调用
  • 重试
  • 压缩

它不向 React 列表注入外来节点,浮条通过 createRoot 挂在 document.body

2. 浮条摘要

右下角浮条会显示处理状态:

  • 已完成时显示:✓ 已完成 N 步
  • 出错时红色追加:· M 步未成功
  • 运行中显示:⏳ 正在处理…(已进行 N 步)

3. 展开与收起

点击浮条可以在「全部展开 ⇄ 全部收起」之间切换。

4. 三种模式

插件支持三种模式:

  • minimal
  • brief
  • off

5. 低侵入与 fail-open

插件的计数节流为 400ms,仅做几次选择器统计。

如果 DSH 的 DOM 契约发生变化,插件会 fail-open,即按官方原样渲染,不继续强行折叠。

它依赖以下官方 DOM 契约:

data-chat-flow-kind
[data-variant="think"]
[data-tool][data-state]

其中工具状态包括:

running / ok / error / stopped

插件不依赖任何生成的 CSS 类名,也不与 React 争 DOM。

安装与启用

从 GitHub 安装:

dsh plugin --profile web add github:dongwenxiu83-web/dsh-friendly-steps

安装后重启 DSH 生效;升级插件时重新执行安装命令并重启。

如果本机使用 link 安装,先执行构建:

npm run build

lib/ 是构建产物且不入库;prepare / prepack 会构建。

插件的 package.json 声明 client inject @deepseek-ai/dsh-client-runtime,且 platform 为 web;engines 要求:

node ^22.19.0 || >=24.0.0

卸载

1、删除 ~/.dsh/profiles/desktop/cordis.patch.yml 里的 friendly-steps insert 段
2、删除 symlink
3、重启 DSH

典型用法

在浏览器控制台切换模式:

dshFriendlySteps.setMode('minimal')
dshFriendlySteps.setMode('brief')
dshFriendlySteps.setMode('off')

排查输出各行计数:

dshFriendlySteps.debug()

适用场景与注意

适合希望减少 DSH Web GUI 中技术过程行干扰、只通过右下角浮条查看过程状态的读者。

使用前注意以下几点:

  • 插件以当前 dsh 进程权限运行,安装前应检查源码与 MIT 许可证。
  • 插件依赖官方 DOM 契约;DSH 升级后若契约变化,最坏表现是「不再折叠」(fail-open)。
  • 浮条固定在右下角输入区上方,与其他右下角插件可能相邻。
  • 已知取舍:摘要是全局浮条而非每组一行;官方行组件未导出,展开态无法交还官方渲染,故不遮蔽。

链接

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

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

Xiaoye