前言¶
在 DSH 里同时开多个 workspace 时,侧边栏只维护一份 Host 工作区顺序,默认只能靠拖拽调整。哪个会话正在跑、哪个在等你点批准或回 plan,要靠自己扫一遍活动点,容易漏看。下面介绍社区插件 @lixiangzhong/dsh-active-chat:它根据与侧边栏活动点相同的「进行中」信号,自动改写 Host 顺序,让仍有会话在跑或等你回复的工作区排在前面。
这是什么¶
@lixiangzhong/dsh-active-chat 由维护者 lixiangzhong 发布,npm 包名与 DSH 插件标识一致,分类为客户端(Web profile)。一句话定位:把仍有进行中会话的 workspace 钉在 DSH 侧边栏顶部,便于一眼看到哪些 chat 还在干活或等你操作。
「进行中」与侧边栏自带的活动点一致:会话处于 running,或处于 waiting for your reply(审批、plan 审阅、提问等)。
核心行为¶
插件写入的顺序就是 Host 的真实 workspace 顺序(与手动拖拽相同),会随页面重载和其他会话保留。
- 首次安装 / 启动 — 对齐一次:最近变为 active 的工作区排第一,其余保持当前相对顺序;若已与规则一致则不写入。
- 新的激活 — 该 workspace 跳到顶部;若多个同时 active,最近激活的排在最上。
- 工作结束 — 该 workspace 沉到仍 active 的工作区之下,不会回到你以前手动拖过的旧位置。
- 全部 idle — 插件停止写入,你手动拖拽的顺序保留,直到下一次激活。
无设置项、无独立 UI:安装即启用;禁用或卸载插件并 reload 即关闭。
安装与启用¶
需要 DSH >= 0.2.1-rc.2,且使用 Web profile。这是常规 DSH bundle,README 说明不声明 npm 依赖。
在 DSH 插件管理界面安装,或在 CLI 执行:
dsh plugin --profile web add @lixiangzhong/dsh-active-chat
若从本地 checkout 开发,可改为 link 路径:
dsh plugin --profile web add /path/to/dsh-active-chat
安装后 reload 页面。移除时禁用或卸载插件并 reload。
当前 npm 版本为 0.1.1(以 package.json 为准),许可证 MIT。
典型用法¶
没有额外配置步骤:装好并 reload 后,只要某个 workspace 里还有 running 或等你回复的 session,它就会自动上浮;你仍可手动拖拽,但在有 active 集合变化时插件会按上述规则再次写入顺序。
全部会话 idle 之后,侧边栏顺序会停在你最后一次手动排列(或插件最后一次写入后的状态),直到又有 workspace 变为 active。
实现要点(供核对源码)¶
README 说明:client.js 在浏览器侧运行,注入 workspaces、sessions、uiSession 客户端服务,订阅 snapshot,在 active workspace 集合变化时调用文档化的 ctx.workspaces.insertBefore(workspaceId, beforeWorkspaceId?) 调整 Host 顺序;变更会做合并,仅在 active 集合实际变化时写入。Host 侧入口 index.js 为空插件条目。
适用场景与注意¶
适合在 Web 版 DSH 里并行多个 agent / chat、又希望「还在跑或等我点一下」的 workspace 始终出现在侧边栏顶部的开发者。
插件以当前 DSH 进程与浏览器客户端上下文运行;安装前建议阅读 GitHub 仓库 源码与 MIT 许可证。社区目录页 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系,不要当作官方应用商店。
结尾¶
dsh-active-chat 不改变 DSH 的会话逻辑,只自动维护侧边栏 Host 顺序,减少在多 workspace 下漏看 active chat 的情况。目录与源码:
- 目录页:https://www.skillhub.cn/plugins/lixiangzhong/dsh-active-chat
- GitHub:https://github.com/lixiangzhong/dsh-active-chat