dsh-session-groups:在 DSH 侧栏里跨工作区自由分组会话

前言

用 DeepSeek Harness(DSH)做智能体或长会话开发时,官方侧栏按工作区组织会话:每个会话绑定一个工作区,日志和归属由宿主管理。实际任务往往跨多个工作区并行——例如同一项目在不同 repo 里各开一条会话——侧栏里只能按工作区切换,很难用「项目 / 阶段」这类维度一眼扫全相关会话。移动会话到别的工作区会动到底层归属,通常也不合适。

下面介绍社区客户端插件 dsh-session-groups(维护者 momijijin):在官方工作区/会话侧栏之上加一层「自由分组」视图,只改插件自己的分组记录和展示位置,不改官方工作区成员关系、不写 workspace.json、不动会话日志。

这是什么

dsh-session-groups 是 DSH 的客户端插件(分类:客户端),当前版本 0.3.0-beta.76。它把侧栏扩展为可在「官方工作区视图」与「自由分组视图」之间切换;同一分组可以收纳来自不同工作区的会话,会话仍属于原工作区。

插件数据与官方数据分离:分组记录落在 <dshHome>/storages/dsh-session-groups.json,UI 偏好写在 localStorage(如 dsh-session-groups.view.v1 等)。卸载后官方侧栏恢复默认视图,分组文件和偏好会保留,重装可恢复。

目录页:skillhub.cn/plugins/momijijin/dsh-session-groups(社区插件目录,与 DeepSeek / 幻方无官方从属关系)。源码:github.com/momijijin/dsh-session-groups,许可证 MIT。

核心功能

视图与布局

  • 自由分组视图与官方工作区视图切换。
  • 侧栏宽度可拖(264px 起,默认 420px,最大视口宽度 80%);双击把手恢复默认。
  • 视图模式、宽度、折叠状态、归档筛选、弹窗几何会持久化;「视图选项」里可 恢复默认布局(不动分组数据)。

分组与会话

  • 根分组与子分组最多 8 层;可重命名、换图标、预设色或自定义 #RRGGBB。
  • 拖拽排序、改父级、子树跟随;空叶分组可直接删,非空分组删除前可选子会话/子组去向。
  • 会话可拖入分组或拖回「未归组」;支持打开、重命名、归档/取消归档、菜单分叉(基于最后已完成轮次)、复制 Session ID。
  • 搜索匹配标题、工作区名、分组路径(最多 20 条);选中后展开祖先并高亮。归档三态:隐藏 / 全部 / 仅归档。

头部状态

三个互斥统计按钮:执行中、等待用户介入、未读;下拉按分组列会话,点击打开。不包含后台 job 计数。

可选 AI 控制

默认关闭。在 Plugins → dsh-session-groups 详情页第一层可开 controlApi 等开关(见下文配置)。开启后 Host 原生工具 session_groups_control 可规划/应用分组变更;改名、归档、破坏性删除分别受 controlSessions、controlDestructive 门禁。普通用手拖分组即可,不必开 AI 控制。

安装与启用

推荐通过 dshmarket 安装。在市场中搜索:

dsh-session-groups

资料说明:市场条目正在准备中;上架后应完全通过 dshmarket 安装与更新。若曾用本地 tarball 安装,上架后需从市场重装一次,让安装来源绑定目录。本地 tarball 与 CLI 仅维护者/调试用,见仓库 docs/RELEASE.md,不要自行拼接未在文档中出现的 dsh plugin add github:... 命令。

兼容性(安装前核对):

  • DSH core/API:engines.dsh 为 >=0.2.0-rc.2 <0.3.0,主要对应 @deepseek-ai/dsh 0.2.1-rc.2 与 0.2.1-rc.5。
  • 已验证桌面壳:社区 DSH Desktop Stable 2.0.18;官方 DeepSeek Harness 桌面版 0.2.1.0。
  • 不官方支持:社区 DSH Desktop Beta、社区 DSH NEXT(-next 通道)。
  • Linux 上 Node/构建经 GitHub Actions 验证,真实 DSH UI 在 Linux/macOS 上资料标注为未验证或 experimental;Windows 本地 UI 已验证。

安装后启用插件,在侧栏切换到自由分组视图;首次会有一次性说明卡(可 dismiss,状态存 localStorage)。

典型用法

手动编排(最常见)

  1. 在自由分组视图新建根分组(无分组且无会话时,空状态也可创建第一个分组)。
  2. 从「未归组」或其它分组把会话拖入目标组;需要跨工作区归类时,直接拖即可,官方工作区归属不变。
  3. 用搜索定位会话;需要时用归档筛选隐藏或只看归档项。
  4. 维护分组结构:拖拽改顺序或父级;删除非空组时按提示选择子项去向。

用 AI 批量建组(可选)

先开启 AI 控制接口(controlApi)。若还要 AI 改名,再开 会话操作(controlSessions)。在会话里发给 AI 的提示词示例(摘自 README,路径按你的项目名替换):

用 session_groups_control 创建或复用以下分组层级:

〈项目名〉项目组 — 图标 server,颜色 blue
- 设计中 — 图标 book,颜色 purple
- 开发中 — 图标 play-circle,颜色 blue
- 已挂起 — 图标 clock,颜色 orange
- 已完成 — 图标 check-circle,颜色 green
- 已取消 — 图标 x-circle,颜色 red

已有分组复用,只补缺失的子组。先查 state/resolve;路径不存在或有歧义就停下来问我。再 plan,把 changes 和 planHash 给我看,最后用同一个 planHash 和 baseRevision 执行 apply。

AI 应通过 plan + apply(带 planHash 与 baseRevision)提交,避免盲目改组。

配置项

插件管理器 Plugins → dsh-session-groups 第一层有五个开关,默认均关闭:

配置 默认 作用
diagnostics 关闭 拖拽 HUD 与本地 NDJSON trace;热生效
debugProbe 关闭 弹窗布局探针;生产勿开
controlApi 关闭 原生 session_groups_control 与调试 HTTP 路由总开关
controlDestructive 关闭 允许 AI 控制执行删除等破坏性操作;开启需二次确认
controlSessions 关闭 允许 AI 改会话名、归档;需同时开 controlApi

诊断写入(仅 diagnostics 开启时):

<dshHome>/storages/dsh-session-groups.diagnostics.ndjson

适用场景与注意

适合谁: 在 DSH Desktop 里同时维护多条跨工作区会话,希望用自定义树形分组做项目/阶段视图,又不想改动官方工作区结构的开发者。

运行与权限: 插件随当前 DSH 进程加载,读写 <dshHome>/storages/ 与浏览器 localStorage;开启 controlApi 后 AI 可在门禁内改分组乃至会话元数据。安装前应阅读源码与 MIT 许可证,确认接受数据路径与可选 AI 控制范围。

数据与多窗口: 分组是单窗口本地状态;多窗口并发写可能遇到 409,需按提示刷新。彻底移除痕迹需手动删除 dsh-session-groups.json、.bak 及上述 localStorage 键。

生态: DSH 主张「一切皆插件」;本插件是侧栏上的展示与分组层,官方工作区与会话管理仍是权威来源。

结尾

dsh-session-groups 解决的是「跨工作区、不动底层归属」的侧栏编排问题:自由嵌套分组、拖拽、搜索与归档筛选,数据本地持久化并带 .bak 恢复;AI 控制为可选项。需要详情与版本说明时,可看社区目录页与 GitHub README(含 docs/COMPATIBILITY.md)。

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

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

小夜