DeepSeek Harness 桌面通知插件

前言

DeepSeek Harness (DSH) 的 Web UI 在运行智能体任务时,会话状态的变化(等待批准、回答问题、计划审查等)需要用户主动检查。当浏览器窗口最小化或切换到其他标签页时,这些状态更新很容易被错过。纯客户端插件 dsh-system-notifications 通过浏览器的桌面通知 API,在状态变化时主动提醒用户,并支持点击通知直接跳转到对应的会话页面。

插件定位

这是一个纯客户端插件,安装在 DeepSeek Harness 的 Web UI 中。它不依赖后端,通过读取会话状态和浏览器权限来工作。维护者 purejiang。

核心功能

  • 状态触发:当会话进入等待批准、回答问题、计划审查等 pendingInteraction 状态,或 running 状态从 true 变为 false 时触发通知。
  • 通知内容:标题为 <项目> · <事件>,例如 harness-plugins · Approval required;正文显示会话标题和原因,如 "Refactor the toolbar" requests to run bash and is waiting for your approval.。完成通知包含插件观测到的运行耗时。
  • 点击跳转:点击通知会激活浏览器窗口并打开对应的会话页面。
  • 图标:使用嵌入的 128×128 DeepSeek 章鱼标记 PNG 数据 URL,不依赖外部请求。
  • 免打扰:当会话的对话面板可见且浏览器窗口有焦点时,不发送通知。
  • 去噪:子代理会话被跳过;同一会话的重复通知会合并(使用 tag);最多保留 6 个未读通知。

安装与启用

安装

插件未发布到 npm,直接从 GitHub 安装:

dsh plugin --profile web add github:purejiang/dsh-system-notifications

或在 Web UI 中:Plugins → Install,粘贴 github:purejiang/dsh-system-notifications。安装后刷新页面即可生效。

启用与权限

  1. 打开 Settings → General → System Notifications 并开启开关。
  2. 首次点击页面或按下按键时,插件会请求浏览器通知权限;也可以点击该设置行的 Authorize 按钮。
  3. 若已拒绝权限,需在 chrome://settings/content/notifications 允许 http://127.0.0.1:3080(或地址栏的站点图标),然后刷新重试。

测试通知

设置行标题为 “System Notifications”(存储在 sessionStorage 中)。双击该标题可触发测试通知。也可以在 URL 后加 ?dshNotificationTest=1 打开页面进行测试。

工作原理

插件通过客户端扩展点实现功能,无需修改 DSH 主程序:

需求 扩展点
检测等待/完成 shell.overlay 组件读取 props.useSessionStatus()
会话标题 props.useSessions() → SessionListState.byId[id].displayTitle
项目名称 props.useWorkspaces()(工作区标题/会话归属),失败时回退到 cwd 目录名
是否正在查看 props.usePanelInfo().activePanelId、document.hasFocus()、visibilityState
发起通知 浏览器 Notification API
点击打开会话 ctx.get('uiWorkspace').openSession(sessionId)
设置控件 settings.general.item

running 状态的转换通过 React 快照和订阅 uiSession.sessionStatus 两种方式观测,以避免后台标签页因渲染节流导致短时运行被合并为无可见变化。

限制

  • 页面必须保持打开:关闭标签页后无法发送通知。
  • 通知布局由浏览器和操作系统控制,无法自定义字体、颜色或额外按钮。
  • 页面刷新后,旧通知点击可能无法打开会话(页面上下文已丢失)。
  • 通知标题会被操作系统截断,项目名放在首位以保持可见。
  • 若浏览器权限被拒绝,插件不会发送任何通知,设置行会说明原因。

适用场景与注意

适合需要长时间运行智能体任务、频繁切换窗口或使用多个标签页的开发者。插件依赖当前 DSH 进程的浏览器权限,安装前应检查源码与许可证(MIT)。

总结

dsh-system-notifications 将 DSH 会话状态变化转化为桌面通知,在无需离开当前工作流的情况下及时提醒用户。通过点击即可跳转到对应会话,减少了对任务进度的遗漏。安装与启用流程简单,无需构建,适合在本地开发环境中使用。

  • 目录页:https://www.skillhub.cn/plugins/purejiang/dsh-system-notifications
  • GitHub:https://github.com/purejiang/dsh-system-notifications
羽毛球分组比赛记分
小程序二维码

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

Xiaoye