dsh-task-notify:DeepSeek Harness 任务通知插件

前言

DSH 会话在运行中会持续产生多类需要人工关注的事件:需要审批、等待回复、后台任务结束、子任务结束、工作流结束。如果只在当前网页里查看状态,切换窗口后容易漏掉。

dsh-task-notify 把这些事件推送到浏览器系统通知中心,并提供应用内铃铛面板、Toast 浮层和清理入口,用于在离开当前页面时仍能感知关键状态。

这是什么

dsh-task-notifykaotusi 维护的 DeepSeek Harness(DSH)客户端插件,许可证为 MIT。

它解决的是 DSH 运行过程中的通知问题:将审批、回复等待、任务结束等事件推送到系统通知中心,并保留应用内铃铛面板、Toast、诊断状态与清理按钮。

核心功能

下面介绍它已提供的主要能力。

  • 监听以下事件:
  • approval/request
  • agent/turn-stopping
  • subagent/end
  • workflow/end
  • 后台任务 onJobDone
  • 将未读通知推送到浏览器系统通知中心,调用 Notification API,并播放分类型 Web Audio 合成提示音。
  • 提供应用内铃铛面板、Toast 浮层、测试通知、重发、全部已读与清理按钮。
  • 面板顶部显示系统通知权限、挂载与轮询状态诊断行。
  • 宿主组合行监听所有会话事件,进程内队列上限 300 条。
  • 客户端通过 /api/taskNotify/pull 等接口轮询,使用 localStorage 去重,每轮最多推送 3 条新通知。
  • 注册 taskNotify Remote 服务,包括 pullackclearpurgediag
  • 注册 ntfy_status 诊断工具。
  • 提供中 / 英双语界面,跟随 DSH locale。

安装与启用

安装前需要 Node.js 和 pnpm。dsh plugin 底层会调用 pnpm。

先运行下面命令安装插件:

dsh plugin --profile web add git+https://github.com/kaotusi/dsh-task-notify.git

如果实际 profile 名不是 web,把 --profile web 换成实际 profile 名。

安装后重启 dsh web,然后刷新页面。

如果所在网络访问 github.com 不稳定,可以先配置代理,或按仓库 README 使用手动拷贝方式。手动拷贝时,目录名需要严格为 dsh-task-notify,并位于 @deepseek-ai/ 作用域下。

典型用法

启用通知权限:

1、重启 dsh web 并刷新页面。
2、点击侧栏底部铃铛。
3、在浏览器通知授权框中选择允许。
4、确认面板顶部诊断行显示 系统通知: granted

验证通知:

1、触发一次后台任务、审批、子任务或工作流。
2、查看浏览器系统通知中心是否弹出对应横幅。
3、确认提示音是否播放。
4、在应用内铃铛面板中查看通知列表。

清理通知:

点击面板中的「清理」按钮,可清空面板与宿主队列中的全部通知。

适用场景与注意

适合在 DSH 中运行需要审批、等待回复、后台任务、子任务或工作流的场景,尤其是页面不在前台、窗口切换较多、需要及时发现“需要我操作”的状态。

使用前注意:

  • 插件以当前 dsh 进程权限运行。安装前应检查源码、依赖和许可证。
  • 需要浏览器通知权限。授权后诊断行应显示 granted
  • 宿主队列上限为 300 条。
  • 客户端每轮最多推送 3 条新通知,已推送 ID 用 localStorage 去重。
  • 修改插件文件后需要重启 Harness 生效;typert 清单按包名缓存。
  • peerDependencies 包括:
  • @deepseek-ai/cordis
  • @deepseek-ai/dsh-tools
  • @deepseek-ai/dsh-typert-protocol
  • react
  • zod
  • 客户端 RPC 刻意走底层 connection seam,例如 /api/taskNotify/pull。不要回退为 ctx.remote.<ns> 调用。

结尾

dsh-task-notify 将 DSH 中需要人工关注的事件扩展为系统通知,同时保留应用内面板、Toast、诊断与清理入口。

仓库地址:

https://github.com/kaotusi/dsh-task-notify
羽毛球分组比赛记分
小程序二维码

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

小夜