dsh-workspace-topbar:把项目切换器放到窗口标题栏

前言

在 DeepSeek Harness(DSH)里同时维护多个工作区(项目)时,左侧会话列表会把各项目的分组和会话混在一起。系统自带的工作区切换器在侧栏中部,视线要在标题区和列表之间来回移动。若你希望「先定当前项目,再只看这一块的会话」,又不想改安装包或动主进程菜单,就需要一个在插件权限内能落地的顶栏方案。

下面介绍社区插件 dsh-workspace-topbar(维护者 AiCoderChenweishi,分类为客户端插件):把工作区切换器挪到窗口标题栏,选中某个项目后,左侧只显示该项目的分组与会话。

这是什么

dsh-workspace-topbar 是 DSH 的客户端 bundle 插件(当前资料中的版本为 0.1.0,MIT 许可证)。它不改 DSH 默认侧栏的整体布局,只在 conversation.header.leading 槽位注册顶栏组件,并用显示层过滤配合侧栏上已有的 data-row-key 标记,实现按项目收窄会话列表。

社区目录页:skillhub.cn 上的 dsh-workspace-topbar。源码与说明见 GitHub 仓库。

核心功能

资料中明确描述的能力如下:

  1. 标题栏胶囊切换器:窗口标题栏左侧出现 ▣ 全部项目 ⌄ 样式的按钮,展开后列出全部工作区,并显示各工作区的会话数。
  2. 按项目过滤侧栏:选定某一项目后,左侧只显示该项目的分组与会话,其他项目隐藏;选「全部项目」恢复原样。
  3. 选择持久化:当前选择写入 localStorage,重启 DSH 后仍生效。
  4. 新建项目联动:新建项目后会自动切换到新项目,顶栏胶囊与左侧列表同步。
  5. 范围克制:视觉与交互仅作用于插件自建的切换器,不改动宿主侧栏的既有结构。

为什么放在标题栏而不是 macOS 菜单栏

README 说明:macOS 菜单栏由 Electron 主进程通过系统菜单 API 绘制,挂在安装包主进程代码中。DSH 插件跑在独立的 Node 进程与网页环境里,无法修改该入口;直接改安装包会被应用更新覆盖,也可能破坏签名。因此插件把选择器放在它能介入的最顶部位置——窗口标题栏(菜单栏正下方、红绿灯右侧那一带)。

安装与启用

官方安装命令(来自仓库 README):

dsh plugin add dsh-workspace-topbar

README 还提到可从源码目录通过 plugin_manager 的 install_bundle 安装(目标为本插件目录的绝对路径);一般用户用上面的 dsh plugin add 即可。

安装完成后重启 DSH 或刷新页面,在插件页应能看到「工作区顶栏」及对应说明。

典型用法

  1. 安装并重启或刷新后,注意窗口标题栏左侧是否出现工作区胶囊按钮。
  2. 点击胶囊,在列表中选择一个工作区;确认左侧会话列表是否只剩该项目的分组与会话。
  3. 需要看全局列表时,在胶囊中选「全部项目」。
  4. 新建工作区后,观察是否自动切到新项目且侧栏同步收窄。

卸载或停用:在插件页停用或卸载本 bundle,然后重启 DSH;此前被隐藏的行会自动恢复显示(隐藏仅为展示层,不删除、不归档会话)。

原理概要

便于排查问题时对照 README:

  • 顶栏:Client 侧向 conversation.header.leading 注册组件,通过槽位提供的 useWorkspaces 读取工作区快照;选中状态存在 localStorage。
  • 过滤:ui-workspace 渲染侧栏时为行打上 data-row-key="workspace:<id>" 或 session:<id>。插件按选中项目隐藏其他分组,并兜底隐藏其他项目的会话行;React 重渲染列表时,用 MutationObserver 重新应用过滤。

适用场景与注意

适合谁:经常在 DSH 里切换多个代码仓库或智能体项目、希望顶栏一键定「当前项目」、侧栏只跟当前上下文走的开发者。

权限与安全:插件与当前 DSH 进程同级运行,会读写界面与本地存储。安装前建议在 GitHub 查看 index.js、client.js、cordis.patch.yml 及许可证(MIT),自行判断是否满足环境要求。

限制:

  • 过滤依赖侧栏的 data-row-key 约定;DSH 大版本若改了侧栏结构,过滤可能失效。失效时插件会安静地不再处理(列表恢复原样),一般不报错。
  • 若与其他改写侧栏的插件(例如带文件树的侧栏插件)同开,过滤仍作用在带工作区/会话标记的行上,不改动文件树区域。

DSH 生态强调「一切皆插件」;skillhub.cn 等为社区目录,与 DeepSeek / 幻方无官方从属关系,本文仅作插件能力说明,不构成官方背书。

结尾

dsh-workspace-topbar 用标题栏胶囊完成工作区切换,并用显示层过滤收窄左侧会话列表,适合多项目并行时的日常切换。查阅说明与提 issue 可走 GitHub;在目录站检索同名插件见 skillhub.cn 条目。

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

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

Xiaoye