前言¶
DeepSeek Harness (DSH) 采用插件化架构,默认的 Web 客户端侧边栏仅展示两层结构:项目(Projects)与会话(Sessions)。当工作区数量增多或项目结构复杂时,这种扁平列表难以管理。dsh-workspace-groups 是一个客户端插件,旨在将侧边栏的视图层级提升为三层:分类(Category)文件夹 → 项目(Project)文件夹 → 会话(Session)。
该插件通过侧边栏 YAML 配置文件定义分类规则,并支持完全的手动分组、拖拽排序与持久化保存,在提供良好交互体验的同时,对核心存储实现零侵入。
插件概览¶
- 名称: dsh-workspace-groups
- 维护者: z-col
- 分类: 客户端
- 许可证: MIT
- 定位: DSH Web 客户端的侧边栏分组管理器
核心功能¶
-
三级树状浏览
将原本的两级列表扩展为“分类 → 项目 → 会话”的三级结构。分类文件夹和项目文件夹均可折叠,展开状态会独立保存并随刷新/重启保留。 -
分组管理
支持手动创建、重命名和删除任意分组。规则分类(由 YAML 定义)同样支持重命名和隐藏操作。 -
规则自动分类
通过插件侧载的 YAML 文件定义分类规则(支持pathPrefix、nameContains、basenameContains等)。修改 YAML 即可调整分组逻辑,无需修改代码。 -
拖拽交互
支持将项目拖入或拖出分组,并在拖拽过程中通过插入指示线(2px 线条)精确显示落点位置。支持在分组内及顶层项目之间进行拖拽排序。 -
零侵入持久化
所有手动操作(分组创建、排序、重命名等)均写入插件自身的覆盖层文件(~/.dsh/workspace-groups.manual.json),使用原子写入保证数据完整性。插件绝不触碰 DSH 核心存储文件(~/.dsh/storages/workspace.)。
安装与启用¶
在安装前,请确保已安装 DeepSeek Harness (dsh 命令可用) 并初始化了目标配置文件(如内置的 web)。
- 安装插件
执行以下命令将插件添加到 Web 配置文件中:
dsh plugin --profile web add github:z-col/dsh-workspace-groups
- 重启服务
插件加载依赖打包层,安装后必须重启 Web 配置文件才能生效:
dsh web
- 验证安装
通过检查配置输出确认插件已被识别:
dsh --profile web --dump-config | grep -A3 workspace-groups
预期输出应包含 `id: workspace-groups` 和相关配置信息。
配置与用法¶
- 配置文件位置
默认配置文件位于用户主目录下的.dsh文件夹中:
~/.dsh/workspace-groups.yaml
也可以通过环境变量 `$DSH_HOME` 指定其他路径。
- YAML 规则配置
配置文件定义了分类名称及其匹配规则。规则之间为“或”关系,分类按顺序匹配,优先匹配第一条规则。
categories:
- name: DSH 插件
rules:
- pathPrefix: /path/to/special/folder
- nameContains: plugin
- basenameContains: plugin
- name: 个人项目
rules:
- pathPrefix: /path/to/personal
- 分类优先级
插件遵循以下优先级逻辑:- 手动覆盖: 通过拖拽菜单或操作直接指定的分组优先级最高。
- YAML 规则: 符合规则的自动归类。
- 顶层: 不符合任何规则的项目将显示在顶层(没有“未分类”桶)。
注意事项¶
- 重启要求: 插件的安装、卸载以及配置文件的修改,都需要重启 Web 配置文件才能完全生效。
- 数据安全: 插件使用原子写入机制,错误的配置写入会返回 400 错误并保留原有文件,不会导致数据丢失。
- 许可证: 该插件遵循 MIT 许可证开源。
结尾¶
dsh-workspace-groups 插件通过引入分类层级和规则化的管理方式,解决了 DSH Web 客户端在多项目场景下的管理混乱问题。它保持了 DSH 的插件化生态特性,同时通过零侵入的设计保证了系统的稳定性。
- 目录页: https://www.skillhub.cn/plugins/z-col/dsh-workspace-groups
- 源码地址: https://github.com/z-col/dsh-workspace-groups