dsh-plugin-browser-notify

August 14, 2026 · View on GitHub

DSH 浏览器通知插件:任务完成或需要审批时,通过浏览器系统通知 + 页内 toast 提醒用户

  • 需要审批 → 🖐 需要审批(含操作 / 原因)
  • 子代理结束 → ✅ 子任务完成 / ✖ 子任务失败
  • 工作流结束 → ✅ 工作流完成 / ✖ 工作流失败
  • 后台任务结束 → ✅ 后台任务完成 / ✖ 后台任务失败
  • 设置页可手动「发送测试」

安装(官方 bundle 插件)

方式一:从 npm 安装(推荐)

dsh plugin --profile web add dsh-plugin-browser-notify

方式二:从 GitHub 安装

dsh plugin --profile web add "github:Caxson/dsh-plugin-browser-notify#main"

方式三:本地路径试装

git clone https://github.com/Caxson/dsh-plugin-browser-notify.git
dsh plugin --profile web add ./dsh-plugin-browser-notify

装完重启 dsh web,刷新浏览器页面。

使用

  1. 打开 设置 → 通用,找到「🔔 浏览器通知」一行
  2. 点「开启」授权浏览器通知(浏览器会弹出权限请求)
  3. 授权后最小化窗口,点「发送测试」——屏幕角落应弹出系统通知
  4. 之后任务完成 / 需要审批时会自动提醒(系统通知 + 页内 toast 双通道,不会漏)

注意:macOS / Windows 上若系统通知不显示,请检查系统设置里该浏览器的通知权限与横幅样式(如 macOS「系统设置 → 通知 → Chrome」的「横幅」开关、勿扰/专注模式)。

设置行下方的小字是诊断信息(API 支持、权限状态、最近一次通知结果),排查问题时可用。

架构

  • Node halfindex.mjs):监听 approval/requestsubagent/endworkflow/endjobs.onJobDone 事件,把通知压入队列;通过官方 webServer 服务注册两个路由:
    • GET /api/notify/drain — client 轮询取走队列
    • POST /api/notify/test — 手动测试
  • Browser halflib/client.js):官方 client 契约 window.__ModuleLoader__.load({id, factory});每 1.5s fetch 轮询 /api/notify/drain,用浏览器 Notification API 弹系统通知(每次唯一 tag,避免合并/刷屏),同时渲染页内 toast 兜底(shell.overlay slot),设置页开关注册在 settings.general.item slot。

发布维护

  • npmdsh-plugin-browser-notify@0.1.0 已发布(npmjs.com)。发新版本时:改 package.json 版本号 → npm publish --registry=https://registry.npmjs.org(若账号开启 2FA,用带 bypass 权限的 granular token 或 --otp=)。
  • GitHub:仓库 Caxson/dsh-plugin-browser-notify,topics 建议:dshdsh-bundledeepseek-harnessnotification

License

MIT