dsh-notify-xc:DSH 浏览器通知插件

前言

DeepSeek Harness (DSH) 采用插件化架构,允许扩展功能。当 Agent 在后台运行会话或处理任务时,开发者可能无法及时关注会话状态变化。dsh-notify-xc 插件通过浏览器 Notification API,在任务完成、运行出错或需要人工干预时弹出系统级通知,解决遗漏状态更新的问题。

这是什么

这是一个由 xchannel1987 维护的浏览器端插件,基于 dsh-agent-notify 兼容重写,适配 DSH 0.1.2-alpha.4 版本。插件纯运行在浏览器端(host half 为空),不依赖构建步骤,遵循 MIT 协议。

核心功能

任务完成通知

当会话从运行中变为停止时触发。通知内容包含会话标题及最后一条回复摘要。插件会对完成状态进行严格判定:如果会话将任务交给子代理(工作流、Ralph 或后台 job)后“让出回合”,此时不计为完成,需等所有后台任务结束后再判定。常驻的后台 shell 任务(如 dev server)不参与此判定。

运行出错通知

当会话以 session 级错误结束时(lastAgentError),弹出错误通知。通知摘要会展示错误信息(如 429 限流、认证失败)。任务完成与运行出错互斥,同一轮次只发一种通知。

需要输入通知

当 Agent 等待用户操作(question、approval、plan-review)时立即提醒。支持“常驻模式”配置,通知不会自动消失,直到用户处理。

点击直达会话

点击系统通知气泡,浏览器会自动聚焦 DSH 页面并打开对应的会话,方便快速响应。

通知显示工作区归属

开启后,通知标题会带上 [工作区名] 前缀,在多项目并发运行时便于快速定位。

通知类型可配置

任务完成、需要输入、运行出错三类通知拥有独立开关,互不影响。设置项包括“包含子代理通知”、“等子代理时不通知”、“需要输入通知常驻”等。

防误报设计

插件通过基线机制、去重逻辑和宽限期(1.2s)复检来防止误报。页面加载或重连后的首个快照作为基线,不重放历史事件;若会话在宽限期内被后台结果唤醒,则取消完成通知。排查时可使用控制台命令 window.__dshNotifyXc.probe('<sessionId>') 检查会话状态。

一键清空通知

当通知数量超过 3 条时,页面右上角会出现带有计数徽标的“清空通知”浮动按钮,点击即可关闭当前会话内所有本插件发出的通知。

安装与启用

使用 DSH CLI 安装:

dsh plugin --profile web add dsh-notify-xc

安装后重启 DSH,刷新浏览器页面即可生效。

典型用法

  1. 打开 DSH 设置,进入“任务通知”分区。
  2. 检查通知类型开关(默认全开),确认系统通知权限显示“已授权”。
  3. 点击“测试”按钮验证通知链路是否正常。
  4. 在实际使用中,Agent 完成任务、报错或需要你批准时,浏览器通知中心会自动弹出气泡。

注意事项

  • 平台兼容性:依赖浏览器 Notification API,目前支持桌面 Edge 和 Chrome。移动浏览器不支持系统通知时,设置页会自动置灰并提示。
  • iOS 限制:iOS 的系统通知仅支持 Service Worker Web Push,本插件未接入,因此不支持 iOS。
  • 权限请求:首次点击页面会自动请求通知权限。
  • 清理限制:点击通知清空按钮仅能清理当前会话内引用仍存活的系统通知,页面刷新后留在通知中心的历史气泡脚本无法回收,需手动清除。

总结

dsh-notify-xc 为 DSH 提供了标准化的系统级通知能力,帮助开发者及时掌握 Agent 的运行状态。通过防误报机制和灵活的配置,它能在提升开发效率的同时保持通知的准确度。

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

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

小夜