dsh-dashboard:在 DSH Web GUI 里集中查看会话与 KPI

前言

DeepSeek Harness(DSH)可以同时跑多个会话、后台任务和子智能体。默认 Web 界面里,这些信息分散在不同入口,要判断「谁在等审批、谁在跑、token 用了多少」,往往要在多个页面之间切换。

dsh-dashboard 是社区维护的客户端插件,把会话列表、任务进度、等待状态、后台作业和 token/KPI 指标收进同一面板,直接注入 Harness 的 Web GUI,不需要单独起服务或打开额外页面。下文介绍它的定位、能力与安装用法。

这是什么

  • 包名:@jinhun-tqtteam/dsh-dashboard(npm 当前版本 0.1.0)
  • 维护:GitHub 组织 jinhun-tqtteam,作者 Tran Quang Tien
  • 分类:客户端(仅提供 Web 客户端 bundle)
  • 许可:MIT

README 明确说明:这是非官方第三方插件,与 DeepSeek AI 无隶属、赞助或背书关系。插件目录页在 SkillHub;源码与文档在 GitHub。

核心功能

插件在侧边栏底部提供 Dashboard 入口(侧边栏收起时为图标 rail + tooltip),打开后不遮挡侧边栏的全屏面板,主要能力包括:

  1. KPI 与筛选:18 块 KPI 磁贴,按运行中(蓝)/ 已完成(绿)/ 等待(琥珀)/ 错误(红)配色;磁贴可点击作为筛选器。另有搜索框和状态 chip(All / Running / Approval / Needs input / Errors / Completed / Idle)。
  2. 会话表:带状态 pill、工作区分组;支持键盘(Enter 打开会话,D 打开详情);表头 sticky;等待用户审批或输入的会话有 attention 动效。
  3. 活动与层级:实时 job 活动流、子智能体层级树。
  4. 详情抽屉(slide-over):待办进度、live jobs、会话统计、token 用量构成与图例、context 压力 gauge。
  5. 浮动 live summary:可 Sticky 固定,跨页面跟随;最小化时显示等待计数 pill。
  6. 通知:页内 toast、提示音、系统原生横幅(完成 / 错误 / 等待);通过 requestAnimationFrame 桥接,标签页未聚焦时仍可触发。

状态模型会把 approval / question / plan-review 从 pendingInteraction 中拆开;错误来自崩溃的 producer job。样式使用 DSH 设计 token(--dsw-*),随明暗主题切换,并尊重 prefers-reduced-motion。

安装与启用

前提:已有带 Web GUI 的 DeepSeek Harness 安装;从源码构建时需要 Node.js >= 18。插件变更后需重启 Harness;仅 bundle 变更时浏览器刷新即可。

推荐:CLI 一键安装

包声明了 dsh.bundle.patch,CLI 会将其作为 profile bundle 安装并自动叠加 patch,无需手改 cordis.patch.yml。

从 GitHub 安装(pnpm git 拉取预构建的 lib/):

dsh plugin --profile web add github:jinhun-tqtteam/dsh-dashboard

npm 发布后可用:

dsh plugin --profile web add @jinhun-tqtteam/dsh-dashboard

本地 checkout 目录内执行:

dsh plugin --profile web add .

或使用绝对路径:

dsh plugin --profile web add /path/to/dsh-dashboard

上述命令会把包加入 profile 依赖、写入 dsh.profile.bundles,并由 bundle 内的 patch 注册 loader 入口。

手动安装(无 CLI)

将含预构建 lib/ 的包目录复制到 profile 插件目录,例如:

<profile>/web/node_modules/@jinhun-tqtteam/dsh-dashboard

在 <profile>/web/cordis.patch.yml 中追加:

- insert:
    - id: dsh-dashboard
      name: "@jinhun-tqtteam/dsh-dashboard"

name 必须与包注册 id(包名)完全一致,否则客户端模块图会拒绝该 bundle。完成后重启 Harness。

典型用法

操作 方式
打开面板 侧边栏底部 Dashboard,或收起时的 rail 图标
固定 live summary Sticky 按钮
打开会话 单击表格行
会话详情 双击行、按 D,或在 sticky 中单次点击
筛选 点击 KPI 磁贴或状态 chip
关闭 Esc(先关详情抽屉,再关面板)
通知开关 面板或 sticky 头部的铃铛(绿点=已授权横幅,琥珀=被拦截)

首次点铃铛会预热音频上下文、请求浏览器通知权限并启动 keep-alive,避免后台标签静音。若铃铛仍为琥珀色:在地址栏为 Harness 源站允许通知,并检查操作系统里对该浏览器的通知设置。

工作原理(简要)

包注册一个 host 侧插件(空 apply,仅出现在 Loader)和一个客户端 bundle,路径为 /plugins/@jinhun-tqtteam/dsh-dashboard/client.js。bundle 通过 window.__ModuleLoader__.load 以 DSH 期望的 lazy-CJS 形态自注册,挂载三个 shell.overlay(面板、sticky、通知)和一个 sidebar.footer.action(触发器),并通过标准 inject 接收 openSession 描述符。仓库中 src/ 为源码,lib/ 已提交,便于无构建步骤的手动复制安装。

适用场景与注意

适合:经常在 Harness Web GUI 里并行多个会话、需要一眼看到等待审批/输入、后台 job 与 token KPI 的开发者或运维。

注意:

  • 插件以当前 DSH 进程与浏览器上下文运行;安装前请自行审阅 源码与 LICENSE。
  • SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属,勿当作官方应用商店。
  • 面板为空时,需等 host 发布会话数据,且至少应存在一个会话。
  • 日志若出现 bundle ... loaded without registering "<id>",说明 loader name 与包名不一致。
  • 侧边栏无触发按钮时,检查 cordis.patch.yml 是否已生效并重启 Harness。

结尾

dsh-dashboard 把「所有会话、进度、等待态、后台作业与 token KPI」收敛到 Harness 内置 Web 界面的一页里,适合作为 DSH「一切皆插件」生态下的客户端观测补充。进一步了解可访问 SkillHub 目录页 与 GitHub 仓库。

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

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

Xiaoye