前言¶
在 DeepSeek Harness(DSH)里用 Workspace Tree 分组侧边栏时,默认顺序往往是同一 Workspace 下先列出嵌套子 Workspace,再列出该 Workspace 自己的 Sessions。日常开发时,更常点开的是当前 Workspace 下的 Session,而不是先扫一遍子目录。dsh-workspace-sessions-first 只调整 Web 界面上这一块的视觉顺序:每个 Workspace 分组内,先显示其 Sessions,再显示嵌套的 Workspace 文件夹。不改数据、不改分组逻辑,适合已经在用 DSH Web GUI 的开发者。
这是什么¶
dsh-workspace-sessions-first 是 DSH 的客户端类插件,由 mkpoli 维护,当前版本 0.1.0(见仓库 package.json)。它解决的问题很单一:在启用 Group by → Workspace Tree 时,让侧边栏 Workspace Tree 中每个 Workspace 的 Sessions 排在嵌套 Workspace 文件夹之前。
社区目录页:skillhub.cn/plugins/mkpoli/dsh-workspace-sessions-first。源码与说明:github.com/mkpoli/dsh-workspace-sessions-first。
核心功能¶
README 用示意图对比了调整前后的树形顺序:
before after
▾ project ▾ project
├ workspace A ├ Session 1
├ workspace B ├ Session 2
├ Session 1 ├ workspace A
└ Session 2 └ workspace B
实现方式如下:
- Web 服务端在渲染
index.html时注入一段<style>。 - 绘制阶段把每个 group section 当作纵向 flex 容器,把子文件夹块排到该组最后。
- 不修改任何数据;分组、展开状态、拖拽目标、行菜单、悬停卡片以及 flat 分组模式仍沿用浏览器原有行为。
适用范围(README Scope):
- 仅作用于 Web GUI(由 Web 服务端渲染
index.html)。 - 排序发生在 paint time,DOM 仍保持原始顺序,因此键盘焦点与屏幕阅读器仍会先访问子文件夹,再访问该 Workspace 的 Sessions。
- 样式针对浏览器中的
groupSection类及其role="group"子文件夹块编写,并在 DSH 0.2.1-rc.5、0.2.2-rc.1 上对照过;上游 DOM 或类名变化时可能需要跟进插件更新。
安装与启用¶
下面介绍在 web profile 下安装插件的官方命令(来自仓库 README):
dsh plugin --profile web add github:mkpoli/dsh-workspace-sessions-first
安装后需要:
- 重启 DSH 宿主进程。
- 刷新页面。
- 打开 View options → Group by → Workspace Tree,才能看到上述顺序。
插件以当前 dsh 进程权限运行;安装前建议阅读仓库源码与 MIT 许可证(package.json 中 engines.node 为 >=20)。
典型用法¶
没有单独的配置文件或 CLI 子命令。典型流程就是:装好 web profile 插件 → 重启并刷新 → 侧边栏切换到 Workspace Tree 分组。若你平时用 flat 或其他 Group by 模式,本插件不会改变那些模式下的列表顺序。
适用场景与注意¶
适合谁
- 在 DSH Web 界面里用 Workspace 嵌套组织项目,且希望在 Tree 视图里先看到当前层的 Sessions 的开发者。
需要注意
- 纯视觉重排:无障碍遍历顺序与 DOM 顺序未变,若你依赖 Tab 顺序或读屏,行为与「看起来」的顺序可能不一致。
- 绑定特定 DSH 前端结构;大版本升级 DSH 后若侧边栏 DOM 变化,应确认插件是否仍生效。
- DSH 生态遵循「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-workspace-sessions-first 用最小侵入的方式,在 Workspace Tree 分组下把 Sessions 提到子 Workspace 之前,方便在 Web 侧边栏里更快进入当前 Workspace 的对话。需要安装说明与实现细节时,可直接查阅 GitHub 仓库 与 SkillHub 目录页。