dsh-web-notify:DSH Web 会话完成与待办时的浏览器通知

前言

在 DSH Web 里跑长会话时,页面切到别的标签或最小化后,很难及时知道某次 turn 已经结束、报错、被阻塞,还是在等审批、提问或计划审阅。靠手动刷新或盯着会话列表,既打断手头工作,也容易漏掉需要立刻处理的交互。

下面介绍社区插件 dsh-web-notify(维护者 Wepoi9,分类:客户端)。它在宿主侧注册会话投影,由 Web 客户端监听状态,在合适时机通过浏览器 Notification API 弹出系统级通知;当前会话已在可见且聚焦时不打扰。插件不属于 DeepSeek Harness 核心发行版,需自行从源码构建并加入 Web profile。

这是什么

dsh-web-notify 是面向 DeepSeek Harness Web UI 的社区插件:在会话以 completed、blocked、error 结束,或处于 approval、question、plan-review 等待用户操作时,向浏览器/OS 通知中心发送提示。通知文案刻意通用,不暴露会话标题、模型输出或路径,点击通知会打开优先级最高的相关会话。

核心功能

宿主侧注册名为 notifyTurn 的 session projection;Web 客户端观察会话状态并调用 Notification API,行为要点如下。

  1. 会通知的情况
    - 当前不可见的会话结束为 completed、blocked 或 error。
    - 会话等待 approval、question 或 plan-review。

  2. 会抑制的情况
    - 对应该会话的对话已在当前页面可见且聚焦。
    - turn 以 max-tokens、aborted、interrupted 结束(忽略,不通知)。
    - 子 agent 会话(忽略)。
    - 重复的 turn 与交互通知(去重)。

  3. 其它行为
    - 多条同时更新会合并为一条(例如英文 DSH · 3 updates / 1 Waiting, 2 Completed;日文浏览器环境下为对应日文文案)。
    - 仅在浏览器通知权限为 granted 时发送。
    - 通知正文语言跟随浏览器首选语言(ja 用日文,否则英文),与 DSH 界面语言设置无关;客户端模块加载时确定,改浏览器语言需刷新页面后生效。

  4. 隐私
    - 标题为通用 DSH 前缀加固定状态标签(如 Completed、Error、Waiting for approval 及日文对应项),聚合时仅显示计数。
    - 不展示会话 display title、LLM 输出、命令或完整路径;不向外部服务发送通知数据,仅本地通过 Notification API 创建。

兼容的 DSH 版本

package.json 中 engines.dsh 声明了多个版本区间;README 记录了逐项验证情况。截至资料中的说明,0.2.1-rc.2 为最新且做过 live Web UI 运行时验证的 DSH 版本(2026-10-17)。0.2.1-alpha.2 在 manifest 中声明兼容,但 README 标明插件加载、测试通知与真实会话触发尚未在该版本上做运行时验证。DSH 预发布版本迭代快,未在表中列出的新版本不应默认兼容。

插件当前包版本为 0.1.2,许可证 MIT。

安装与启用

安装前请自行审阅仓库源码与许可证;插件随当前 DSH Web 进程与页面上下文运行,权限与浏览器同源通知策略一致。

  1. 在插件仓库根目录安装依赖并构建客户端 bundle:
npm install
npm run build
  1. 将本地 checkout 加入 Web profile(路径须为绝对路径):
dsh plugin --profile web add <absolute-path-to-this-repository>
  1. 安装后重启 DSH Web。

修改客户端源码后需重新执行 npm run build(由 esbuild 生成 lib/client.js)。维护者可选用:

npm run check
npm test

设置与典型用法

  1. 打开 Settings → General → Browser notifications。
  2. 权限未定时:可在此请求浏览器通知权限。
  3. 权限为 granted 时:可发送测试通知以确认通路。
  4. 撤销权限:在浏览器对该站点的站点设置中关闭通知。

日常使用无需额外配置项:保持 DSH Web 页面已加载且与后端连接,在权限 granted 且会话不满足「已可见聚焦」抑制条件时,完成或待交互事件会自动触发通知;点击通知跳转到对应会话。

适用场景与限制

适合:长时间在 DSH Web 中并行或多会话工作、需要离开当前标签仍能感知「跑完了」或「需要你点一下」的开发者。

限制(来自 README):

  • 必须授予浏览器通知权限,且权限绑定浏览器 origin。
  • 仅在 DSH 页面已打开并保持连接时有效;本插件不实现离线 push。
  • DSH 扩展契约在预发布版本间可能变化,需对照 README 兼容表。
  • 真实环境中 error / blocked 结束态的通知触发,在部分版本的验证记录中未全部重测;若依赖这类提示,建议在目标 DSH 版本上自行验证。

社区插件目录页:https://www.skillhub.cn/plugins/Wepoi9/dsh-web-notify(独立社区站点,与 DeepSeek / 幻方无官方从属关系)。源码与详细兼容矩阵见 GitHub:https://github.com/Wepoi9/dsh-web-notify。

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

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

小夜