前言¶
DeepSeek Harness(DSH)侧边栏用工作区把多条 Session 收拢在一起。折叠后,组内的会话行不再可见,标题行却通常仍显示同一个文件夹图标——里面有会话在等你批准或回答、有 turn 正在跑、或刚跑完还没打开看过,从标题上很难区分。展开工作区才能看到各行自带的黄色等待圆点、进行中加载动画和绿色完成圆点,日常会多一步操作。
下面介绍社区插件 dsh-workspace-running-indicator(维护者 icrefin,分类为客户端)。它在折叠状态下,把工作区标题行 16×20 图标格上的文件夹图标替换成与原版会话行一致的三种标记,逻辑与 DSH 0.2.1-rc.5 侧边栏已有规则对齐。
这是什么¶
插件全名 dsh-workspace-running-indicator,当前发布版本为 v0.3.0,MIT 许可证。官方简介是:在 dsh 侧边栏里,为已折叠的工作区镜像其内部 Session 的状态——等待圆点、进行中 loader、完成未读圆点,相当于把折叠藏起来的标记还原到标题行上。
它不接管整个 sidebar.workspaces 浏览器面板,也不改会话行、折叠水位或分组顺序;只在页面侧装饰工作区标题那一格,并通过 Cordis patch 注入客户端脚本。
核心功能¶
折叠标题上的三种状态¶
仅当工作区行满足 role="treeitem"、data-row-key="workspace:<id>" 且 aria-expanded="false" 时,插件在图标格覆盖对应标记:
- 等待回答(黄色圆点):组内任一成员 Session 在
ctx.uiSession.sessionStatus中存在待答交互,类型为approval、plan-review或question(与dsh-client-ui-session/ui-workspace一致)。 - 进行中(加载动画):成员 Session 在目录中
running为真,或有正在运行的直属子代理(external子代理排除,与侧边栏一致)。 - 完成未读(绿色圆点):成员 Session 一轮从运行变为结束,且该 Session 不是当前主栏正在查看的那一个;打开 Session 或再次开跑会清除,仅展开工作区不算「已读」。
优先级与原版会话行一致:等待 > 进行中 > 完成未读。悬停标题行时,原版会把图标格换成折叠箭头,覆盖层随之隐藏。
边界行为(README 已说明)¶
- 只统计直接属于该工作区的 Session,嵌套子工作区在跑不会点亮父行(0.1.3 起修复目录包含误传播)。
- 父工作区不会借用子代理的待答交互,只会反映子代理运行时的 loader,与原版父行一致。
- 展开的工作区标题保持文件夹图标,因为各行已在原位显示标记。
- 三个标记为装饰性(
aria-hidden),读屏仍只读工作区名称。
实现要点(便于排查)¶
插件读取 ctx.sessions.list、ctx.workspaces.list 与 ctx.uiSession.sessionStatus,用 MutationObserver 跟随折叠、展开与列表重挂载。图形尺寸、关键帧与主题 token(如 --dsw-alias-state-warn-primary)按原版 StateDot 在插件类名前缀下重声明,不 import 宿主组件。
安装与启用¶
环境要求(来自 README 简体中文):
- 运行 DSH 0.2.1-rc.5(桌面版或 Web UI)。
- 从源码构建需 Node.js ≥ 22.17 与 pnpm 11。
官方步骤是先在本仓库构建打包,再在 DSH 里安装 .tgz:
pnpm install
pnpm check # 类型检查 · 构建 · vitest
pnpm run pack # -> dist/dsh-workspace-running-indicator-0.3.0.tgz
然后在 DeepSeek Harness 桌面版打开 设置 → 插件,安装 dist/dsh-workspace-running-indicator-0.3.0.tgz,并重启应用。文档说明:加入运行中 profile 的 bundle 在重启前模块解析可能失败;重启后 Web 端还需刷新页面。
package.json 中声明的 dsh 引擎范围为 >=0.2.1-rc.5 <0.2.2-0,与上述版本一致。
社区目录页 skillhub.cn/plugins/icrefin/dsh-workspace-running-indicator 可查看插件条目与来源链接;该站点为社区目录,与 DeepSeek / 幻方无官方从属关系,安装前仍建议对照 GitHub 源码与许可证。
典型用法¶
插件没有设置项或宿主路由配置。安装并重启、Web 端刷新后即可生效:
- 折叠一个内有 Session 正在等待你回答的工作区,标题图标格应显示黄色等待圆点;处理完待答交互后,标题会交给下一层状态标记。
- 折叠内有 Session 正在运行(或符合规则的直属子代理在跑)的工作区,文件夹位置显示进行中加载动画。
- 某 Session 跑完且你尚未在主栏打开它时,折叠标题显示绿色完成圆点;打开该 Session 或让它重新运行后圆点清除。
开发与本地组合验证可使用仓库内 scripts/dev-profile.sh(隔离 DSH home),属于贡献者流程,日常使用者按上一节安装即可。
适用场景与注意¶
适合谁:侧边栏里常折叠多个工作区、又需要扫一眼「有没有在等、在跑、刚跑完没看」的 DSH 用户;依赖 0.2.1-rc.5 侧边栏 DOM 约定(data-row-key、aria-expanded 等)的当前一代客户端。
务必注意:
- 插件以当前 DSH 进程权限运行,安装前应阅读 GitHub 仓库 源码与 MIT 许可证,自行评估信任边界。
- 不组合 Session UI 的壳可能没有
uiSession投影,等待圆点无法推导,但目录侧的进行中与完成逻辑仍可按 README 说明工作。 - 插件挂载前已结束的运行不会产生完成提醒;未来 dsh 若改动行标识,徽标可能静默失效而非报错(README「不做的事」一节)。
结尾¶
dsh-workspace-running-indicator 解决的是折叠工作区「标题行信息丢失」这一具体 UI 缺口,用与原版一致的三种标记补回标题格,减少为看状态而反复展开的操作。更多细节与测试说明见仓库 README(含 README.zh-CN.md)。