dsh-session-dashboard:侧边栏常驻 Session 状态卡片

前言

在 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 形式。

典型用法

  1. 安装并刷新 Web 或 Desktop 界面后,在左侧栏 Settings 上方看到 Session 卡片。
  2. 侧栏较宽时:用 Needs you 筛出待审批/待答复的 Session,点行进入处理;用 Running 看仍在执行的 Session。
  3. 侧栏收折后:看 rail 上图标上的 Needs you 角标,点击图标展开侧栏再继续操作。
  4. 需要更多行时:在卡片内展开到 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__ 工厂,改完刷新即可,无需构建。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye