前言¶
DeepSeek Harness(DSH)桌面客户端在工作区侧栏里,同一会话组默认只展示有限条会话;官方 UI 每次点击「展开其余」会按固定步长(SESSION_WATERMARK_BASE = 5)抬高可见数量,会话多时要连点多次。若你经常在同一工作区切换大量历史会话,这种交互会拖慢操作。下面介绍的插件通过修改客户端 bundle 里与会话 watermark 相关的两处表达式,实现「展开全部剩余会话」一次到位,以及「收起」时严格只显示 5 条,而不是在运行中或未读会话抬高基线后再收拢。
这是什么¶
dsh-sidebar-expand-all 由社区维护者 mzjqwq 发布,分类为客户端插件,许可证 MIT(package.json 版本 1.0.0)。它针对 DSH 打包在 app.asar 内的 @deepseek-ai/dsh-client-ui-workspace 中的 client.js,做等长替换并更新 asar 头里的 integrity hash,不改变文件体积,避免破坏归档后续条目。
插件不替代 DSH 本体;安装与打补丁在 desktop profile 下进行,要求 DSH 引擎版本 >=0.2.1-rc.2 且 <0.3.0-0(见 package.json 的 engines.dsh)。
核心功能¶
DSH 为每个工作区维护一组「watermark」:表示该组里可见会话数。官方逻辑在每次展开时按 watermark + SESSION_WATERMARK_BASE 递增;收起时用 Math.max(SESSION_WATERMARK_BASE, requiredWatermark(...)),运行中或未读会话会把基线抬高。
本插件内置两个等长 patch(路径:app.asar → dsh/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/client.js):
| 行为 | 效果 |
|---|---|
| expand-all | 将展开时的上限改为 Number.POSITIVE_INFINITY,一次点击露出该组全部剩余会话 |
| collapse-to-5 | 将收起时的计算改为固定的 SESSION_WATERMARK_BASE,收起后严格只显示 5 条 |
若 patch 锚点在当次 DSH 版本的 client.js 中找不到,插件会报告 unsupported 且不会写入,避免猜测替换。
除 Web 与 CLI 外,插件还会把一份 user-level skill 安装到 ~/.dsh/skills/dsh-sidebar-expand-all/,便于在智能体会话里执行同样的检查、应用与恢复。
安装与启用¶
从插件市场 / npm(发布后)安装:
dsh plugin --profile desktop add dsh-sidebar-expand-all
本地目录或 GitHub 仓库:
dsh plugin --profile desktop add ./dsh-sidebar-expand-all
dsh plugin --profile desktop add github:mzjqwq/dsh-sidebar-expand-all
插件以当前 DSH 进程的权限运行;安装前请自行查看 GitHub 仓库 源码与 MIT 许可证。DSH 社区插件目录站点 skillhub.cn 与 DeepSeek / 幻方无官方从属关系,属于社区生态里的独立收录。
安装后需要应用 patch 才会改 asar;且 必须完全退出 DSH 再启动——主机启动时会缓存 client bundle,dsh-client-hmr 对 asar 内文件的 stat 停留在启动时刻,仅刷新页面无法加载修改后的 client.js。
典型用法¶
Web 页面¶
DSH 启动后,在浏览器打开(端口替换为本机 DSH 端口):
http://127.0.0.1:<your DSH port>/dsh-sidebar-expand-all
页面展示当前 patch 状态,并提供 Apply、Restore、Refresh。
CLI¶
在插件目录下执行(与 README 一致):
node scripts/patch-workspace-expand-all.mjs --check # 仅检查
node scripts/patch-workspace-expand-all.mjs # 应用(幂等)
node scripts/patch-workspace-expand-all.mjs --list # 列出内置 patch
node scripts/patch-workspace-expand-all.mjs --restore # 恢复官方文件
退出码:0 成功;2 asar 或备份缺失;3 文件/头 integrity 不一致(拒绝写入);4 检查发现头不一致。
安全与升级¶
首次写入前,原始 client.js 与 asar 头会备份到 ~/.dsh/dsh-sidebar-expand-all/.asar-bak/(环境变量 DSH_BAK 可覆盖路径)。Restore 会写回备份并校验头与内容。若当前内容与 header integrity 不符(例如已被其他工具改过 asar),apply 会直接中止。
DSH 整包升级会替换整个 app.asar,patch 会消失;升级后需重新 Apply 或跑 CLI。若新版本 client.js 中锚点变化,状态会变为 unsupported,需要在新版源码里重新定位上述两处表达式后再更新插件。
结尾¶
dsh-sidebar-expand-all 面向经常在侧栏管理大量会话的 DSH 桌面用户:用一次点击展开工作区全部会话,收起时回到固定的 5 条可见项,并在等长 patch、备份与 integrity 校验的前提下操作 asar。更多信息见社区目录 skillhub.cn/plugins/mzjqwq/dsh-sidebar-expand-all 与源码 github.com/mzjqwq/dsh-sidebar-expand-all。