前言¶
在 DeepSeek Harness(DSH)里同时开多个 Session 时,要判断「哪条在等你审批、哪条还在跑、哪条已完成但未读」,往往得先切页面或翻列表。官方 Web GUI 左侧栏在 Settings 之上并没有一块始终可见的 Session 摘要。dsh-session-dashboard 是社区维护者 blanit 发布的客户端插件:在左侧栏固定一块 Session 卡片,用筛选和一行一点击的方式把上述状态收拢到侧边栏,无需单独打开 Session 管理页。
这是什么¶
dsh-session-dashboard 是标准 DSH bundle 插件(MIT 许可证,当前 package 版本 0.4.3),仅面向 Web 客户端(dsh.client.platform: "web"),不向 Host 发请求、不持久化 Session 状态,也不提供 Host 侧配置或后台任务。README 写明在 DSH 0.2.1-rc.2(Web profile)与 0.2.1-rc.3(Desktop profile)上,通过官方 dsh plugin 安装后,--dump-config 可见 # == dsh-session-dashboard 配置层,client-modules 能加载 bundle,卡片位置、筛选、跳转与新建 Session、窄栏角标等行为正常且无插件控制台报错。兼容范围:engines.dsh 为 >=0.2.0 <0.3.0。
目录页:https://www.skillhub.cn/plugins/blanit/dsh-session-dashboard
源码与说明:https://github.com/blanit/dsh-session-dashboard
核心功能¶
下面介绍卡片在界面上的具体能力,均来自 README 功能列表与数据结构说明。
布局与窄栏¶
- 卡片占根级 sidebar footer 席位,位于 Settings 上方;侧栏收折为 56px rail 时,变为带 Needs you 角标的图标按钮。
- 点击卡片标题区的 disclosure 箭头可折叠/展开卡片;折叠后标题仍显示当前各状态计数,折叠状态在本浏览器内记住。
- 默认显示 5 行 Session,可展开到 10 行;切换筛选时卡片高度保持不变。
每一行 Session¶
- 每行包含:状态图标、标题、当前活动文案(Waiting for approval / Working / Completed unread / Idle 等)与相对时间。
- 需要用户介入、运行中、未读完成项会排在前面;运行中行带有 sweep 动画。
- 点击某行打开对应 Session;点击
+调用ctx.uiWorkspace.startSession()新建 Session。
筛选¶
- 提供 All / Needs you / Running / Done 四个筛选,并显示实时数量。
- 「Needs you」对应
useSessionStatus中的pendingInteraction(如 approval、plan-review、question);Running 对应running;Done 侧包含completionUnread等逻辑(与 Host 提供的 seat 一致)。
设置¶
在 Settings → Sessions card 中可配置:
- 卡片语言:English / 中文
- 默认行数
数据从哪来¶
插件不自行维护 Session 目录,而是读取 DSH 根 slot 向各客户端模块开放的 seat(README「Data sources」表):
| Seat / 数据 | 用途 |
|---|---|
useSessions |
Session 目录、displayTitle、updatedAt、blank/origin、projectionsBySession |
useSessionStatus |
running、pendingInteraction、completionUnread |
useWorkspaces |
archivedSessionIds(归档 Session 默认隐藏) |
projectionsBySession[*].values |
当前 todo、turnOutline、prompt 与轮次、sessionStats 等 |
打开 Session 使用 ctx.uiWorkspace.openSession(id);窄栏图标点击会 ctx.layout.toggleSidebar() 展开侧栏。
安装与启用¶
安装与卸载均通过官方 dsh plugin(pnpm + profile manifest),不要手改 profile 或 node_modules。插件为预构建 plain JS,无 install 时 build 步骤。
Web profile¶
在插件目录或已打包路径下执行:
dsh plugin --profile web add <plugin dir>
dsh --profile web --dump-config
可选验证:--dump-config 输出中应出现 # == dsh-session-dashboard 层。生效方式:重启 dsh web 或刷新页面。
卸载:
dsh plugin --profile web remove dsh-session-dashboard
Desktop profile¶
Desktop 的 desktop profile 由 Electron 应用管理,全局 npm CLI 不能直接操作;需使用桌面应用自带的 runtime 里的 dsh.cmd。维护者发布的流程是先在本机插件目录 pnpm pack --pack-destination <output dir> 得到 dsh-session-dashboard-<version>.tgz,再:
$dsh = "<DeepSeek Harness install dir>\resources\runtime\cli\bin\dsh.cmd"
& $dsh plugin --profile desktop add <output dir>\dsh-session-dashboard-<version>.tgz
& $dsh plugin --profile desktop --dump-config
安装会把 tarball 记入 profile 的 dependencies(file:...tgz)并追加 bundle;请保留 tarball,移动或删除后需重新 add。升级: bump 版本 → 重新 pnpm pack → 对新 tgz 再执行 add。卸载:
& $dsh plugin --profile desktop remove dsh-session-dashboard
Reload 桌面窗口(Ctrl+R)或重启应用;若仅 live patch,刷新页面即可。
说明:SkillHub 目录页上的安装命令若与 README 不一致,以 GitHub README 为准;不要凭仓库名拼接未在文档出现的 dsh plugin add github:owner/repo 形式。
典型用法¶
- 安装并刷新 Web 或 Desktop 界面后,在左侧栏 Settings 上方看到 Session 卡片。
- 侧栏较宽时:用 Needs you 筛出待审批/待答复的 Session,点行进入处理;用 Running 看仍在执行的 Session。
- 侧栏收折后:看 rail 上图标上的 Needs you 角标,点击图标展开侧栏再继续操作。
- 需要更多行时:在卡片内展开到 10 行,或在 Settings → Sessions card 调整默认行数与界面语言。
截图中的 Session 标题为示例数据(README 已注明)。
适用场景与注意¶
适合谁:经常在 DSH Web GUI 或多 Session 并行下工作、希望「扫一眼侧边栏就知道该点哪条」的开发者;仅客户端增强,不改变 Host 权限模型。
运行方式:插件 UI 在浏览器/Electron 渲染进程内运行,与当前 DSH 进程及已加载的其他 bundle 共享同一前端环境;安装前建议阅读仓库源码与 MIT 许可证,并查看 docs/limitations.md(含中文版 limitations.zh.md)中的已知限制。
生态说明:DSH 采用「一切皆插件」的扩展方式;SkillHub(skillhub.cn)为社区插件目录,与 DeepSeek / 幻方无官方从属关系,本文介绍的是该目录收录的第三方 bundle,而非官方应用商店条目。
结尾¶
dsh-session-dashboard 把 Session 的待办、运行与未读完成状态收到左侧栏一块常驻卡片里,用筛选和单击跳转减少切页成本。若需要自行修改 UI,README 指出 client/client.js 为手写 __ModuleLoader__ 工厂,改完刷新即可,无需构建。