前言¶
DeepSeek Harness(DSH)的左侧栏面板入口由各个插件自行注册:装得越多,左栏图标就越挤。上游 SidebarRoot 虽然把 onPinnedChange 传进了 sidebar.panellist.actions 槽位,但内置的 entry-customization 在左侧栏区域并不消费这组钩子,官方也没有提供「关掉某个面板图标」的界面;即便有内存态,注释写明 held in memory until plugin reload,插件一重载就会复位。
社区插件 dsh-sidebar-panel-visibility(维护者 hZsFN,分类:客户端)通过 DSH 槽位契约补上这块能力:在左栏底部「更多」菜单里为每个面板提供显隐开关,并把选择写入 localStorage,重启后仍生效。它不修改 node_modules 里的官方包。
这是什么¶
- 名称:
dsh-sidebar-panel-visibility(npm 包名与插件 id 一致) - 版本(资料来源 package.json):0.1.1
- 许可证:MIT
- 仓库:https://github.com/hZsFN/dsh-sidebar-panel-visibility
- 目录页:https://www.skillhub.cn/plugins/hZsFN/dsh-sidebar-panel-visibility
一句话:在 DSH Web / 桌面端渲染进程里,给左侧栏「更多」菜单增加「侧边栏条目」分区,点一行即可切换对应面板入口的显示或隐藏;状态键 dsh.sidebar.panelPins.v1 存的是被隐藏的面板 id 列表。
核心功能¶
本插件做两件事,与 README 描述一致:
- 向
sidebar.panellist.actions(kind: "list")注册开关行,接上上游留下的onPinnedChange; - 把用户选择写入
localStorage,插件重载后按隐藏列表回放。
行为要点(均已核实):
- 与内置 entry-customization 并列渲染,注册时
order: -10,排在「浏览更多插件 / 创建你的插件」之前。 - 「插件」面板受上游
FIXED_PANEL_ID保护,无法隐藏(避免卸光插件后无法进入插件页)。 - 异常或不可用 storage 时按空隐藏列表降级,默认等价于「全部显示」。
- 不提供条目排序;仅显隐,排序需另一套契约。
- 仅作用于左侧栏「更多」菜单;会话头、右侧栏的「更多」不显示这组开关。
安装与启用¶
安装命令以仓库 README 为准:
dsh plugin --profile <你的 profile 名> add dsh-sidebar-panel-visibility
本地开发可链到目录:
dsh plugin --profile <profile> add link:/绝对路径/dsh-sidebar-panel-visibility
桌面版若使用 desktop profile 且 CLI 拒绝直接写入,需按 README 说明改 profiles/desktop/package.json:把包名加入 dependencies(link: 或版本号)和 dsh.profile.bundles,再在 profile 目录执行 pnpm install。
装完后重启 DSH。插件以当前 DSH 进程及浏览器上下文权限运行;安装前建议浏览源码与 MIT 许可证,确认符合你的环境策略。
典型用法¶
- 展开左侧栏(窄屏下先展开侧栏)。
- 点击左栏底部的「更多」按钮(方形加号图标)。
- 菜单最上方「侧边栏条目」分区中,每行左侧为面板名,右侧为「显示中」或「已隐藏」。
- 点击一行切换;隐藏后面板入口立即从左栏消失,再次点击可恢复。
若要彻底清空偏好,可在开发者工具中删除键 dsh.sidebar.panelPins.v1,或在控制台执行:
localStorage.removeItem("dsh.sidebar.panelPins.v1")
存储值示例(隐藏 files 与 jobs):
["files", "jobs"]
适用场景与注意¶
适合:经常在同一 DSH 实例里启用多个带侧栏面板的插件,希望按个人习惯收起不常用入口,又不愿改官方 node_modules 或等上游补 UI 的用户。
兼容性(README 表格):
| 项目 | 值 |
|---|---|
| DSH | 0.2.2-rc.1 实测通过 |
| 平台 | Web / 桌面端(Electron)渲染进程 |
| 浏览器 | 支持 localStorage 的现代浏览器 |
| 依赖槽位 | sidebar.panellist.actions |
| 依赖服务 | slots、locale |
已知限制:
- 设置按浏览器 / 站点隔离,换浏览器或清站点数据会丢失;未写入 profile 配置文件。
- 插件卸载后,
localStorage里可能仍保留对应面板 id,一般无影响;装回插件后规则仍生效。 - 社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系;本稿事实以 GitHub README 与 package.json 为准。
peer 依赖包括 @deepseek-ai/dsh-client-ui-primitives(多个 rc 段)与可选 react >=18.2.0。
结尾¶
dsh-sidebar-panel-visibility 用槽位契约把上游已预留的 pinned 钩子接上 UI,并用 localStorage 做跨重启持久化,适合需要精简左栏又不想动官方包的场景。