dsh-sidebar-panel-visibility:左侧栏面板入口显隐开关

前言

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 Web / 桌面端渲染进程里,给左侧栏「更多」菜单增加「侧边栏条目」分区,点一行即可切换对应面板入口的显示或隐藏;状态键 dsh.sidebar.panelPins.v1 存的是被隐藏的面板 id 列表。

核心功能

本插件做两件事,与 README 描述一致:

  1. 向 sidebar.panellist.actions(kind: "list")注册开关行,接上上游留下的 onPinnedChange;
  2. 把用户选择写入 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 许可证,确认符合你的环境策略。

典型用法

  1. 展开左侧栏(窄屏下先展开侧栏)。
  2. 点击左栏底部的「更多」按钮(方形加号图标)。
  3. 菜单最上方「侧边栏条目」分区中,每行左侧为面板名,右侧为「显示中」或「已隐藏」。
  4. 点击一行切换;隐藏后面板入口立即从左栏消失,再次点击可恢复。

若要彻底清空偏好,可在开发者工具中删除键 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 做跨重启持久化,适合需要精简左栏又不想动官方包的场景。

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

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

Xiaoye