dsh-auto-collapse

36Star2Fork2Issue0Watching

把 DSH Web 聊天界面里的工具卡片和 Think 推理块折叠成一行摘要,并把"Deep diving"改成"Deep sleeping"。

机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
JavaScript
License
MIT
分支
main
cordisdeepseekdeepseek-harnessdshdsh-plugin

安装

$ dsh plugin --profile web add github:a179-sanae/dsh-auto-collapse

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 a179-sanae/dsh-auto-collapse:先查看仓库 https://github.com/a179-sanae/dsh-auto-collapse.git 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

一个挂在 DSH Web 聊天界面上的纯前端 DOM 插件,把每一回合里的工具调用卡片和 Think 推理块自动折叠成一行摘要,同时把官方 "Deep diving..." 状态文字替换为 "Deep sleeping...",让聊天视图只保留模型说的话。

核心能力

  • 回合完成自动折叠(一级):回合结束后整段工作过程收成一行 已处理 X秒,点击展开可看到完整的上下文注入 → 思考 → 工具调用 → 过程正文 → 最终正文
  • 工具块与思考块折叠成 chip(二级):展开一级后,工具组和思考块各自折叠成一行 chip(运行中显示 正在运行 {命令},完成后显示 运行了命令已思考
  • 连续思考合并为三级行:多个相邻思考块合成一个标题为 Think · 第一句 的合并行,点击展开显示合并后的内容,原始四级行不出现
  • 折叠态实时显示当前工作:运行中的 chip 实时展示工具名 + 正在执行的命令/路径/查询,或思考的最新一行
  • 替换 "Deep diving" 状态文字:把官方 ChatView 尾部的运行状态行 Deep diving... 改为 Deep sleeping...,流光特效不变
  • 完全可逆:插件卸载(HMR stop)时会还原所有折叠行、被隐藏的 display 和被改写的状态文字,宿主页 DOM 与卸载前一致

技术实现

  • 语言: TypeScript(target es2020)
  • 关键依赖: 仅 devDependency 的 esbuild(构建用),运行时零依赖
  • 架构模式: 纯 DOM 层 MutationObserver + requestAnimationFrame 协调器;host 半体为空 apply() 用于在 cordis 插件树占位;client 半体通过 ctx.effect 注册折叠控制器,卸载时由 cordis 自动调用清理
  • 入口文件: src/client.ts(浏览器端 bundle 入口,构建产物为 lib/client.js),src/index.ts(host half,无行为)

适用场景

当你在 DSH Web 上和模型做多步任务(搜索、写文件、跑命令、复杂推理)时,每一轮的工具调用和思考过程会把屏幕挤满,只看最终结论的人会觉得很乱。这个插件把中间过程折成一行,需要时再点开看详情,适合希望界面"只剩模型说的话"的普通用户,也适合长时间跟模型来回讨论、想快速扫一眼做了哪些工作的用户。

前置依赖与兼容性

依赖最低版本说明
DSH Web client未声明仅作为 dsh.client.platform="web" 的客户端插件运行,需挂在 DeepSeek Harness Web 上
Node.js未声明仓库本身无 engines 字段;构建/部署脚本运行于 Node 环境
浏览器现代浏览器(支持 ES2020、MutationObserver、requestAnimationFrame)插件运行在浏览器 DOM 中,不依赖 Node-only API
平台跨平台通过 DSH Web 客户端使用,操作系统无关
原生模块零原生依赖,纯前端实现

安装方式

dsh plugin --profile web add github:a179-sanae/dsh-auto-collapse

安装后重启 DSH Web 服务(或触发插件 HMR),在页面上按 Ctrl+Shift+R 硬刷新即可生效,无需任何配置。

配置项

本插件无需额外配置。

配置类型说明默认值

所有行为(折叠节奏、动画时长、文本替换规则)已硬编码在源码中,不向用户暴露任何配置项、不读取环境变量、不注入 slot key。

常见问题

Q: 安装后需要任何配置吗?

A: 不需要。插件是纯 DOM 层的 UI 增强,不读取任何环境变量、不暴露配置项、不注册 slot key。安装后重启 DSH Web 服务并硬刷新页面(Ctrl+Shift+R)即可生效。

Q: 它会修改我的消息内容吗?

A: 不会。插件只控制工作过程(工具卡片、思考块、运行状态文字)的显示与隐藏,不会改动模型生成的消息正文,也不会修改官方任何 slot 注册或数据结构。

Q: 卸载插件后页面会恢复正常吗?

A: 会完全恢复。stop() 会把所有被改写的 display 还原、删除插入的折叠行、把 "Deep sleeping..." 改回 "Deep diving...",并清理所有 MutationObserver 与 rAF 定时器,宿主页 DOM 与卸载前一致。

Q: 它和官方 React 渲染冲突吗?

A: 不冲突。插件不修改任何 React slot,只用 MutationObserver 观察 DOM 变化并在 requestAnimationFrame 内合并重放;React 重渲染、节点替换、历史消息乱序挂载都会自动跟上。

Q: 会影响动画和无障碍体验吗?

A: 运行中的呼吸动画在用户系统设置 prefers-reduced-motion 时会自动停止;折叠行的颜色使用 DSH 原生 label token,浅色/深色主题自动适配。

Q: 支持哪些工作节点类型?

A: 顶层 tool-callcommandmanual-compactioncontext(上下文注入)、thinking(推理块)、纯图片 final 都按同一回合语义处理;相邻工具组合并,正文是硬边界(不会跨正文合并)。

上手难度

入门 — 安装一行命令、重启服务、刷新页面即可使用,没有任何需要理解的概念或配置项。

已知问题与限制

  • 状态文案替换是强制的:Deep diving... 会被无条件改写为 Deep sleeping...,且无法关闭(即便用户希望保留原文);插件卸载时会按节点恢复原文
  • 仅支持 DSH Web 客户端:不支持 DSH CLI、桌面端、移动端等其他宿主(dsh.client.platform 声明为 web
  • 依赖宿主 DOM 契约:识别依据是 ChatView 渲染时写死的稳定 data-* 属性(data-chat-flow / data-tool / data-state 等),若官方 Web 客户端 DOM 结构发生变化,折叠功能可能需要适配

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/a179-sanae/dsh-auto-collapse)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录
dsh-auto-collapse — DeepSeek Harness 插件 | deepseek-plugin.org