前言¶
在 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,行为要点如下。
-
会通知的情况
- 当前不可见的会话结束为completed、blocked或error。
- 会话等待approval、question或plan-review。 -
会抑制的情况
- 对应该会话的对话已在当前页面可见且聚焦。
- turn 以max-tokens、aborted、interrupted结束(忽略,不通知)。
- 子 agent 会话(忽略)。
- 重复的 turn 与交互通知(去重)。 -
其它行为
- 多条同时更新会合并为一条(例如英文DSH · 3 updates/1 Waiting, 2 Completed;日文浏览器环境下为对应日文文案)。
- 仅在浏览器通知权限为granted时发送。
- 通知正文语言跟随浏览器首选语言(ja用日文,否则英文),与 DSH 界面语言设置无关;客户端模块加载时确定,改浏览器语言需刷新页面后生效。 -
隐私
- 标题为通用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 进程与页面上下文运行,权限与浏览器同源通知策略一致。
- 在插件仓库根目录安装依赖并构建客户端 bundle:
npm install
npm run build
- 将本地 checkout 加入 Web profile(路径须为绝对路径):
dsh plugin --profile web add <absolute-path-to-this-repository>
- 安装后重启 DSH Web。
修改客户端源码后需重新执行 npm run build(由 esbuild 生成 lib/client.js)。维护者可选用:
npm run check
npm test
设置与典型用法¶
- 打开 Settings → General → Browser notifications。
- 权限未定时:可在此请求浏览器通知权限。
- 权限为 granted 时:可发送测试通知以确认通路。
- 撤销权限:在浏览器对该站点的站点设置中关闭通知。
日常使用无需额外配置项:保持 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。