前言¶
DeepSeek Harness(DSH)把能力拆成插件后,带侧栏入口的插件会在左侧 sidebar.panellist 里各占一行,每行大约 46px。装到七八个以后,入口区 alone 就可能占掉左栏三分之一高度,下面的工作区、会话列表被挤得很紧。
外壳对这批入口没有折叠或溢出处理:有几个 panel 就排几行,也没有「隐藏其他插件入口」的接口。要在不改动每个插件的前提下收回纵向空间,只能由客户端插件在现有 DOM 上动手。下面介绍社区插件 dsh-sidebar-fold-zxp(维护者 zengxiangpeng123,分类:客户端)的做法。
这是什么¶
dsh-sidebar-fold-zxp 把 DSH 左侧那一排插件入口收成一行「插件列表」,支持按组归类、自定义顺序,并在折叠时把高度还给工作区与会话列表。插件当前版本为 v0.9.1,许可证 MIT,要求 DSH ≥ 0.2.1-rc.1。
社区目录 SkillHub 与 GitHub 仓库由作者维护;目录站点独立于 DeepSeek / 幻方,并非官方应用商店。
装完以后侧栏长什么样¶
侧栏大致结构如下(README 示意):
▾ 插件列表 ← 点一下,下面全部收起
▾ 日常 2
│ 打开工作台(任务 / 日历 / 知识库 / 点子)
│ 插件市场
▾ 开发 2
│ 任务看板
│ 自动化任务
▸ 统计与记忆 2 ← 收起状态,箭头朝右
(「更多」这类外壳自己的入口会被隐藏)
核心功能¶
折叠与分组¶
- 点击「插件列表」可收起整块插件入口区域。
- 点击某个组标题可单独收起或展开该组。
- 在 设置 → 插件列表 中可新建分组、改名、删除、调整组顺序;条目可拖到其他组或拖到某一行前面换位置;也可用下拉框和 ↑ ↓ 做精确调整。
每条入口的三态显示¶
每行有一个三态选择(README 说明):
- 跟随折叠(默认):折叠时与组一起收起。
- 折叠时仍显示:整块折叠后该条目仍可见。
- 始终隐藏:侧栏中一直不出现。
对外壳行为的边界¶
插件只改自己以外兄弟行的样式(排序、显隐),不改任何插件的注册、图标或点击行为;卸载时会还原改过的行。若 DSH 更换左栏 DOM(行不再是 nav > button),折叠会失效,失效方式是「什么都不做」,不会破坏界面。
安装与启用¶
SkillHub 目录页给出的安装方式为:在 DSH 中安装插件 zengxiangpeng123/dsh-sidebar-fold-zxp(页面文案为「请安装 DSH 插件 zengxiangpeng123/dsh-sidebar-fold-zxp」)。安装前建议阅读 GitHub 源码与 MIT 许可证;客户端插件在当前 DSH 进程权限下运行,与装任何 DSH 插件一样需要自行评估信任边界。
启用后需注意 README 中的缓存行为:改完插件代码要彻底退出桌面端再打开,只刷新页面不够。客户端插件按 ?rev=<文件元数据哈希> 加载,响应头为 immutable(缓存一年),桌面端可能长期沿用旧缓存。
典型用法¶
侧栏操作¶
- 需要专注会话列表时,点「插件列表」收起全部插件入口。
- 常用组保持展开,不常用的组点组标题收起。
- 偶尔才用的入口可在设置里设为「始终隐藏」,避免占视觉和顺序。
设置页维护分组¶
- 打开 设置 → 插件列表。
- 按使用习惯建组(例如「日常」「开发」),把条目拖进对应组。
- 用 ↑ ↓ 或拖拽微调顺序;对需要常驻侧栏的条目选「折叠时仍显示」。
分组与顺序写入本地配置文件:
~/.dsh/dsh-sidebar-fold-zxp/settings.json
折叠状态与设置页交互状态保存在当前页面会话中;写入时先落本地再同步宿主,避免保存失败时点击看起来毫无反应。
实现要点(便于排查问题)¶
外壳用 React 渲染侧栏行,插件据此做了几件非显而易见的事:
- 排序用 CSS
order,不移动 DOM 节点,否则下一次渲染会复原。 - 隐藏用内联
display,不用hidden属性,因为行上的类设置了display: flex,会覆盖浏览器对[hidden]的默认样式。 - 组标题由本插件创建并插入外壳
nav;外壳重渲染冲掉时,由观察者补回。 - 组标题点击在捕获阶段拦截并
stopPropagation,否则外壳会用本插件 id 去selectPanel,而该 id 没有对应面板。
宿主侧暴露三个 HTTP 接口(README):
GET /api/dsh-sidebar-fold-zxp/settings 读配置
PUT /api/dsh-sidebar-fold-zxp/settings 写配置(原子写)
GET /api/dsh-sidebar-fold-zxp/plan?entryIds= 按当前条目算布局
排序规则在 src/plan.js 与 src/edits.js 中实现为纯函数,README 注明 node --test 覆盖 40 项。
适用场景与注意¶
适合:侧栏已装多个带入口插件、希望按场景分组并折叠入口、把纵向空间留给会话与工作区的 DSH 用户。
注意:
- 依赖 DSH ≥ 0.2.1-rc.1;左栏 DOM 结构变化会导致功能静默失效。
- 改插件或升级后,桌面端需完全退出再启动,避免 immutable 缓存旧脚本。
- 安装与配置前请核对 GitHub 仓库与 SkillHub 目录页信息;本文事实以 README v0.9.1 与目录页为准。
结尾¶
dsh-sidebar-fold-zxp 针对 DSH 侧栏「只增行、不折叠」的默认行为,用分组与折叠把插件入口收成可控的一列,并通过设置页维护顺序与显隐策略。需要安装或 issue 时可访问:
- 目录页:https://www.skillhub.cn/plugins/zengxiangpeng123/dsh-sidebar-fold-zxp
- GitHub:https://github.com/zengxiangpeng123/dsh-sidebar-fold-zxp