前言¶
DeepSeek Harness(DSH)Web 界面左侧边栏顶部,默认会占多行:「插件」「自动化任务」「更多」各占一行,「新会话」再占一整行按钮。工作区列表从更靠下的位置才开始,侧边栏一窄,可见会话数就更少。下面介绍社区客户端插件 dsh-compact-panel-nav(维护者 dyguests):在不改宿主业务逻辑的前提下,把这三项收成一行,并把「新会话」收成品牌行右侧的图标,把大约 130px 高度还给下面的列表。
这是什么¶
dsh-compact-panel-nav 是 DSH 的 profile bundle 客户端插件:package.json 里声明 dsh.bundle.patch,浏览器侧由 ./client 模块注入侧边栏相关 UI。npm 包名与仓库名均为 dsh-compact-panel-nav,许可证 MIT,当前资料中的版本为 1.3.3。分类属于 客户端(只影响 Web UI 布局与样式,不扩展后端能力)。
插件在 DSH Plugin Hub 目录页 与 GitHub 仓库 均可查阅;Hub 为社区独立站点,与 DeepSeek / 幻方无官方从属关系。
核心功能¶
展开态侧边栏¶
- Plugins / Automations / More(中文界面为「插件 / 自动化任务 / 更多」)由默认的三行合并为 一行:高度 32px,三等分单元格,图标与文字居中。
- New Session(新会话) 不再独占整行,变为品牌行最右端的 28×28 纯图标按钮(与侧边栏收起按钮同规格)。tooltip 仍保留可访问名称与 ⌘N 提示;1.3.1 起隐藏行内 ⌘N 文案,避免在 28px 内与图标争抢空间。
收起态(56px 图标栏)¶
收起侧边栏时 不做改动:导航仍为竖排图标栈,「新会话」回到宿主在窄栏中的原位。
其余行为¶
品牌标识、行顺序、hover / 选中态、焦点环、键盘可达性以及 More 菜单均保持宿主默认;配色使用主题 token(如 --dsw-radius-*、--dsw-alias-*),深/浅色模式跟随宿主。
实现方式(便于评估风险)¶
导航行 依赖 纯 CSS:选择器通过导航容器的无障碍名称定位(中文 全局面板、英文 Global panels,来自侧边栏 panels.label),并用 :has() 判断行内是否存在「图标 + 标题」——仅展开态满足,因此收起栏不会被误改。
新会话 采用 不 reparent 的做法:按钮仍在 React 原 DOM 位置;脚本在满足前置条件时将其设为 position: absolute,以按钮父元素为基准测量一次,写入 28×28、垂直居中、右对齐的内联几何。品牌行与其它节点内联样式不被写入,避免「测量挤没品牌区」类问题。图标样式通过脚本设置的 data 属性 作用域限定,避免误伤其它元素。
停用插件或收起侧边栏时,会恢复此前保存的按钮 cssText。
安装与启用¶
插件以 当前 DSH 进程权限 在浏览器侧运行;安装前建议自行查看仓库源码与 MIT 许可证。官方 README 给出的 npm 路线(无需 clone 仓库) 如下。
在 web profile 中安装已发布包:
dsh plugin --profile web add dsh-compact-panel-nav
安装后在 Settings → 插件(设置 → 插件)中确认 bundle 已启用;目录中显示标题 Compact Sidebar Nav / 侧边栏导航压缩。一般即时生效;若侧边栏无变化,刷新页面一次(如 Cmd+R)。
也可通过 Harness agent 一步完成安装与 bundle 选择:
plugin_manager action=install_bundle target=dsh-compact-panel-nav
package.json 声明宿主版本约束:
"engines": {
"dsh": ">=0.2.1-rc.3 <0.3.0"
}
宿主会在加载前校验;不满足时不会按预期装载。
典型用法¶
本插件 无额外配置项:安装并启用后自动作用于 Web 侧边栏。
- 展开侧边栏,确认「插件 / 自动化任务 / 更多」在同一行。
- 在 macOS 桌面端 且品牌条为「上方拖拽条、条内无 button」的布局时,确认「新会话」出现在品牌行最右侧图标位,下方工作区列表起始位置上移。
- 收起侧边栏,确认窄栏布局与未装插件时一致。
- 使用键盘与 tooltip 验证「新会话」仍可访问(含 ⌘N 提示)。
卸载:在插件列表中 停用或移除 bundle;样式表移除,脚本还原按钮内联样式,侧边栏恢复三行导航与整宽「新会话」按钮。
适用场景与注意事项¶
适合:长期在 DSH Web / 桌面客户端中使用侧边栏,希望 多看到几条工作区/会话,且接受仅调整顶栏布局、不增加新功能的用户。
兼容性(以 README 为准):
- 在 DeepSeek Harness 0.2.1-rc.3(Desktop、macOS、中文界面)上验证。
- 依赖面板导航的无障碍名称;若未来宿主改名或出现 README 未覆盖的第三种 UI 语言,插件会 静默不生效,而不是破坏布局。
- New Session 进品牌行 依赖 macOS 品牌条形态。Windows / Linux 上品牌行本身可能是 button,前置校验会 按设计失败——此时仍可使用 一行导航 的压缩效果,但「新会话」不会移到品牌行。
- 三等分单元格在侧边栏很窄时,较长标签(如「自动化任务」)会出现省略;拉宽侧边栏即可完整显示。
结尾¶
dsh-compact-panel-nav 用 CSS 与少量 DOM 几何调整,把侧边栏顶部的固定占用收成一行导航,并在 macOS 布局下把「新会话」收成品牌行图标,为工作区列表让出约 130px。若你在用 DSH 0.2.1-rc.3 且侧边栏顶栏显得「头重脚轻」,可按上文命令从 npm 安装并在插件设置里启用。