dsh-workspace-categories:给 DSH 工作区侧边栏加自定义分类

前言

DeepSeek Harness(DSH)侧边栏默认只有「工作区」一层:项目一多,列表平铺成一长条,找某个仓库或会话往往只能靠记名字。原生浏览区按工作区分组,没有插入自定义分组的接口。burningg 维护的 dsh-workspace-categories 在工作区之上再加一层命名分类,在侧边栏就地浏览、拖拽改归类,并附带类似编辑器标签页的 Ctrl+Tab 最近会话切换。下面介绍它做什么、怎么装、怎么用,以及和原生列表的取舍。

这是什么

dsh-workspace-categories(npm 包名 @burningg/dsh-workspace-categories,当前版本 2.0.0,MIT)是面向 DSH 0.2.x 的客户端 bundle 插件:把平铺的工作区列表拆成自定义分组,分类与文件夹层级无关,同一分类内顺序仍由 Harness 工作区顺序决定。维护者为 burningg;社区目录页见 skillhub.cn,源码与说明见 GitHub。

核心功能

分类侧边栏

分组头可折叠;工作区行显示会话数,展开后是会话列表(标题 + 相对时间)。无分类时插件不占位,列表保持原生;有至少一个分类后,左侧列表自动变为分组视图。列表示意:

▾ 产品                      3
    📁 项目一                 12
    📁 项目二                  4
▾ 研发                      2
    📁 项目四                  8
▾ 未分类                    2

归类与管理

两种归类方式:把工作区行拖到别的分组,或在分类管理面板里用下拉框选择。管理面板支持新建、重命名、删除分类,并一览每个分类下的工作区。面板开关 「侧边栏按分类分组」 关闭后,原生列表立即恢复,无需刷新。

收起与外观

侧边栏工具栏 收起(双箭头向上)一次折叠全部分类及分类下的工作区,只留分组标题;需内容时点单个分组或工作区箭头逐层展开(仅收起,无一键全部展开)。工具栏 外观 可调三层字号、工作区与会话文字颜色、分组/卡片/面板底色,以及分类名是否用强调色;每个分类左侧色点可单独改色并一键恢复默认。

搜索与保留操作

按工作区名、路径、会话标题过滤。仍保留:打开工作区 / 打开会话 / 新开对话 / 工作区 ⋯ 菜单(打开所属目录、用 VS Code 打开、重命名、删除工作区)/ 添加工作区 / 归档会话 / 搜索。行内 ⋯ 与「新开对话」与原生列表一致,使用 Harness 自带图标与 Menu 组件。

最近会话切换(Ctrl+Tab)

打开过的会话按使用顺序维护一份历史(上限 12 条),Ctrl+Tab(macOS 为 Control+Tab)在最近会话间切换,手感类似 VS Code 切标签:

操作 结果
按住 Ctrl 再按 Tab 浮出最近会话卡片,高亮落在上一个会话
继续 Tab / Shift+Tab 列表内向下 / 向上移动高亮
松开 Ctrl 切到当前高亮会话
Esc 关闭卡片,不切换

只接管 Ctrl+Tab 与 Ctrl+Shift+Tab;输入框内普通 Tab 不受影响。浏览器版中 Ctrl+Tab 由浏览器占用,网页拿不到该组合;可用分类面板右上角 Ctrl+Tab 小胶囊打开同一张卡片。桌面版(Electron)可正常使用快捷键。

用 VS Code 打开

工作区 ⋯ 菜单中可将该工作区目录交给本机 VS Code。宿主先按系统登记的「能打开文件夹」应用列表查找(macOS 走 Launch Services),找不到再退回宿主自带的 open-in-app;路径经宿主校验后才启动,未安装 VS Code 会提示而非静默失败。

安装与启用

插件为 Harness bundle(dsh.bundle.patch + 浏览器半),官方安装命令:

dsh plugin --profile web add github:burningg/dsh-workspace-categories

也可写入 profile 依赖后启用:

# ~/.dsh/profiles/<profile>/package.json → dependencies
"@burningg/dsh-workspace-categories": "github:burningg/dsh-workspace-categories"

装完后必须重启 DSH:包路径在进程启动时确定,安装或更换来源后不重启不会生效。不要用 link: 指向之后会被移动或改名的目录,否则易出现 ENOENT 扫描 locale 等包元信息错误;改回 github: 安装并重启即可。

启用后侧边栏图标栏会出现 工作区分类(文件夹 + 三个点)。插件以 priority: -10 占用 sidebar.workspaces 同一占位槽渲染分组视图;渲染异常时会 abdicate,原生列表自动回退。

典型用法

  1. 点侧边栏 工作区分类,打开分类管理。
  2. 新建分类并命名(例如 产品、研发、归档)。
  3. 在侧边栏把工作区行拖进对应分组,或在管理面板用下拉框选择。
  4. 列表过长时点右上角 收起,需要时再逐层展开。
  5. 临时恢复原生列表:关闭 「侧边栏按分类分组」。
  6. 层级不清晰时打开 外观 调整字号与颜色。
  7. 桌面端按住 Ctrl 连按 Tab 在最近会话间跳转;浏览器可用面板右上角胶囊打开同一张卡片。

数据、权限与和原生列表的取舍

分类、归类、开关与外观存在当前页面 localStorage(键 dsh.workspace-categories.v2,自 v1 迁移);最近会话顺序在 dsh.workspace-categories.mru.v1,仅存会话 id。不修改工作区注册、不移动文件、不改会话归属;换浏览器或清站点数据会丢分类与 MRU,工作区与会话本身不受影响。

插件不联网,无遥测与远程请求;Host 半 index.js 的 apply() 为空。「打开所属目录」与「用 VS Code 打开」由宿主校验路径后启动本机程序,插件不直接执行命令。

开启分组视图后,原生浏览区内部部分能力无对外接口,因而不再提供:会话置顶、会话右键菜单中的重命名/分叉/复制 ID、归档筛选、悬停卡片、拖拽排序、Mod+K 等。需要这些能力时关闭 「侧边栏按分类分组」 即可。

适用场景与注意

适合在 DSH 中同时维护多个工作区、希望按业务线或阶段(产品、研发、归档等)在侧边栏分组浏览的开发者。安装前建议阅读 GitHub 源码 与 MIT 许可证;插件逻辑主要在浏览器半运行,仍以当前 DSH 进程与宿主提供的会话/工作区快照为准。

DSH 生态强调「一切皆插件」;skillhub.cn 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-workspace-categories 在不改动工作区与文件的前提下,用本地分类与拖拽归类整理侧边栏,并用 Ctrl+Tab(桌面端)或面板胶囊在最近会话间跳转。安装命令见上文,细节以 README 为准。

  • 目录页:https://www.skillhub.cn/plugins/burningg/dsh-workspace-categories
  • GitHub:https://github.com/burningg/dsh-workspace-categories
羽毛球分组比赛记分
小程序二维码

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

Xiaoye