dsh-sidebar-fold:把 DSH 侧栏附加项收进「More」一行

前言

DeepSeek Harness(DSH)左侧「Global panels」会随插件增多而变长:调度、Agent 团队、插件市场、上下文页等条目逐行堆叠。侧栏本身没有「只保留常用项、其余折叠」的官方开关时,开发者往往只能忍受滚动,或靠记忆在冗长列表里找入口。下面介绍的 dsh-sidebar-fold 是维护者 drscrewdriver 发布的客户端插件:在宿主自带的 「More」 行右侧增加 28×28 的箭头切换,一键收起附加行、再点展开;还可指定折叠时仍保留的行,以及管理行的左/中/右对齐。插件不修改 app.asar,卸载后侧栏恢复出厂 DOM。

这是什么

dsh-sidebar-fold(npm 包名同名)把侧栏里除「More」以外的附加 panel 行折叠到 More 这一行之下。它是 DSH 生态里的客户端 bundle:只注入 DOM 与样式,不 patch 宿主 bundle。分类为客户端;社区目录页见 skillhub.cn/plugins/drscrewdriver/dsh-sidebar-fold,源码与说明见 GitHub(MIT,当前 package 版本 0.1.2)。目录页星标为 1,与 GitHub 公开数据一致。

核心功能

折叠与展开

宿主「Global panels」导航里,带 aria-haspopup="menu" 的 panelRow 被识别为 More 行(与语言、插件注册顺序无关)。插件在该行右端挂载切换按钮:展开时箭头为 ▲(可收起),折叠后只保留 More 行及你配置为「始终可见」的行,箭头变为 ▼(可展开)。折叠状态按窗口写入 localStorage,刷新后保持。

非侵入与降级

卸载时移除自有的 <style> 与 data-dshsf-* 标记,侧栏与未装插件时一致。若宿主 DOM 变化导致锚点找不到,插件不注入、不破坏侧栏;控制台会出现 dsh-sidebar-fold: fold installed { mounted: false }。

侧栏收为图标轨时

侧栏缩成 36px 图标轨(rail)时,切换按钮会被移除,所有行重新显示,避免挤压或半隐藏。

对齐与配置

受管理的行(含 More 行)可在设置里选 左 / 中 / 右 对齐图标与标签;选 右 时,切换钮改到行左端,避免挡住文字。默认折叠状态、对齐方式、以及「折叠时仍显示哪些行」均在插件设置卡片中配置(宿主 Config,.volatile(),改完无需重启 DSH)。

「始终可见」列表在打开设置时从当前侧栏 DOM 读取,后装的 panel 会自动出现在开关列表里,无需手改配置。默认仅保留 插件 / Plugins 一行可见。若每一行都设为可见,切换钮会变暗并设 aria-disabled="true",因为列表已无折叠空间。

安装与启用

插件以当前 DSH 进程权限运行;安装前请自行查看源码与 MIT 许可证,确认可接受其行为。

官方 README 给出的安装方式如下(<profile> 换成你的 profile 名):

# npm channel (after release)
dsh plugin --profile <profile> add dsh-sidebar-fold

# local build
npm run build && npm run verify
npm pack --pack-destination .
dsh plugin --profile <profile> add ./dsh-sidebar-fold-0.1.2.tgz

接着把 dsh-sidebar-fold 加入该 profile 的 dsh.profile.bundles(或在应用里启用对应 bundle),然后重启。桌面 profile 若在 Electron 应用仍在运行时改 package.json,运行中的进程可能回滚外部编辑,应先退出应用再改。

典型用法

  1. 完成安装与 bundle 启用并重启后,打开侧栏 Global panels,在 More 行右端应看到方形箭头钮。
  2. 单击收起附加行;再单击恢复。需要默认一打开就折叠时,在 Plugins → dsh-sidebar-fold 打开「Folded by default」。
  3. 在设置卡片中调整 Row alignment(左/中/右),观察 More 与受管理行的图标标签对齐;选右对齐时注意切换钮移到行左侧。
  4. 在 Entries kept visible 里为需要常驻的行打开开关(例如除默认的插件行外,再保留调度等);其余行在折叠时隐藏。

设置入口:Plugins → dsh-sidebar-fold(卡片注册在 plugins.bundle.config seat,键为包名)。字段含义与默认值:

字段 含义 默认
Folded by default 窗口尚无本地记录时的初始折叠状态 关
Row alignment 受管理行的左/中/右对齐 left
Entries kept visible 折叠时仍显示的行(每行一个开关) 仅 插件 / Plugins

适用场景与注意

适合谁: 装了很多 DSH 插件、侧栏 Global panels 过长,又希望保留 More 与少数常用入口在一屏内的开发者。

宿主版本: README 写明当前仅支持 DSH 0.2.1-rc.3。更早的 dsh-client-ui-sidebar 线有的没有 panel 列表,有的没有宿主自带的 More 行;在不满足条件的版本上插件会安静降级、不注入 UI。宿主升级后 CSS module hash 会变,维护者建议升级后重新做浏览器 smoke,确认折叠仍能挂载——回归时表现往往是「没有任何变化」而非报错。

生态说明: DSH 强调「一切皆插件」;skillhub.cn 上的插件目录是社区站点,与 DeepSeek / 幻方无官方从属关系,本文仅作技术介绍,不代表官方应用商店背书。

结尾

dsh-sidebar-fold 用 More 行上的一个小切换,把侧栏附加项收成可展开的一行,并支持按行保留可见与对齐方式,适合在 0.2.1-rc.3 上长期装多插件的使用方式。进一步了解可打开 目录页 与 GitHub 仓库 README。

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

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

Xiaoye