dsh-helper-plugin-notify-away:DeepSeek Harness 离开才响的系统通知

前言

在 DeepSeek Harness(dsh)里跑一轮较长的任务时,开发者常会切到别的窗口、标签页或另一个 helper 实例。Web UI 侧边栏在你盯着看时,会用绿色「完成」点提示状态;一旦视线移开,回合结束或 agent 停下来等你审批、回答问题,就容易被漏掉。

下面介绍社区插件 dsh-helper-plugin-notify-away(维护者 x102201):把「会话已空闲」或「在等你操作」转成操作系统级 toast;在 dsh-helper 里通过宿主 chrome.webview.postMessage 弹出,在系统浏览器里走 Notification API。默认在你正在看这场会话时也会通知;打开卡片上的「Only when away / 离开才通知」后,仅在你盯看该会话的本实例时保持安静。

这是什么

dsh-helper-plugin-notify-away 是面向 DeepSeek Harness Web 配置文件的 客户端(system-notification)插件,分类为客户端组件。它不写入自有 session-event 词汇,只读取与侧边栏相同的 sessions 列表快照和 pendingInteractions;不负责代你点审批或答 question。

仓库:github.com/x102201/dsh-helper-plugin-notify-away
目录页:skillhub.cn 插件页
许可证:MIT(README 徽章);包版本 0.1.0,README 标注兼容 dsh 0.1.5-rc.2。

核心功能

何时弹出通知

触发 行为
完成边沿(completion) 列表里某会话的 running 从 true 变为 idle 时触发。首次观测只记录状态,加载时已 idle 的会话不会补 toast。
等待边沿(wait) 该会话的 uiSession.pendingInteractions newly 出现待你处理的请求时触发。等待期间 running 仍为 true,完成监视器不会误报。已知类型:approval、question、plan review;其余类型走 otherWait,可在配置里单独关闭。

「离开才通知」门控(away gate)

  • 默认关闭(onlyWhenAway: false):无论焦点在哪,满足上述边沿即 toast。
  • 打开后:仅当本实例里你正在看该会话(面板在屏、helper 在前、list.current 匹配)时保持静音;隐藏标签、另一实例、失焦窗口、后台会话结束或阻塞仍会通知。
正在本实例看该会话     → 静音
其他实例 / 其他窗口 / 其他标签 → 系统通知(完成或等你)

根会话与子 agent

  • 完成边沿默认忽略子 agent 行(origin: 'subagent' 或有 parentId),避免并行子任务刷屏;配置 includeSubagents: true 可一并通知。
  • 等待边沿不受该开关约束:子 agent 阻塞在你这边时仍会 toast。

其它行为

  • 去重:每条 toast 标签为 notify-away:<sessionId>,重复会替换而非堆叠。
  • 点击:聚焦窗口并 ctx.sessions.open(sessionId);helper 侧通过 dsh-helper-notify-click 事件回跳。
  • 权限:dsh-helper 内嵌面板无需额外权限;系统浏览器首次点击或按键时请求通知权限(Safari 仅手势触发时可授予),macOS 还需在系统设置里允许对应浏览器通知。

安装与启用

前提:dsh plugin 会把参数转给 pnpm,需保证 pnpm 在 PATH 上(例如 corepack enable pnpm),否则 CLI 会报 pnpm not found on PATH 并以 127 退出。

包为纯 ESM + ModuleLoader 客户端工厂,无构建步骤、无运行时依赖,安装时无需 pnpm allowlist 构建脚本。

从 GitHub 安装

dsh plugin --profile web add github:x102201/dsh-helper-plugin-notify-away

需要可复现版本时可固定修订号:

dsh plugin --profile web add github:x102201/dsh-helper-plugin-notify-away#<tag-or-commit>

从本地目录链接安装

路径须为绝对路径,或相对于执行命令时的工作目录:

dsh plugin --profile web add link:/absolute/path/to/dsh-helper-plugin-notify-away

link: 会符号链接到 checkout,改 index.js / client.js / lib/*.js 后重启 dsh web 即可生效,无需重装。

挂载与验证

安装后重启 Web 配置:

dsh web

检查 composed 配置里是否出现 notify-away 宿主行:

dsh --profile web --dump-config | grep -A2 notify-away

在系统浏览器中首次使用时按页面提示授予通知权限;dsh-helper 嵌入面板不需要这一步。

卸载

dsh plugin --profile web remove dsh-helper-plugin-notify-away

典型用法

  1. 按上文命令为 --profile web 安装插件并执行 dsh web。
  2. 在 Web UI 发起一条会跑较久的任务,切到其它应用或标签。
  3. 根会话变为 idle,或出现 approval / question / plan review 等等你操作时,应出现以会话名称为标题的系统通知;点击应聚焦 Web UI 并打开该会话。
  4. 若希望「盯着这场会话时不要弹窗」,打开侧边栏 Plugins → dsh-helper-plugin-notify-away 卡片上的 Only when away(离开才通知);在本实例前台看该会话时不应再 toast,切走或后台完成仍应通知。

配置项 intended 修改方式:同一卡片上的七个开关,点击即写入,无 Save 按钮;写入 profile 的 cordis.patch.yml 用户层,立即生效,无需重启。宿主加载时也会校验相同键(未知键或类型错误会导致启动失败)。

默认配置示例(均可选,空映射即用默认):

- id: notify-away
  config:
    onlyWhenAway: false
    includeSubagents: false
    body: Task finished.
    completion: true
    approval: true
    question: true
    planReview: true
    otherWait: true
键 类型 默认 含义
onlyWhenAway boolean false 为 true 时,仅在本实例盯看该会话时静音
includeSubagents boolean false 完成通知是否包含子 agent
body string Task finished. 通知正文(完成类;等待类有各自文案逻辑)
completion boolean true 会话 idle 完成是否通知
approval boolean true 审批等待是否通知
question boolean true question 等待是否通知
planReview boolean true plan review 等待是否通知
otherWait boolean true 其它等待类型是否通知

不安装完整包、仅试宿主行时,checkout 内提供 examples/standalone.patch.yml;浏览器侧仍须能通过 link: 解析包名 dsh-helper-plugin-notify-away(依赖 package.json 的 dsh.client 声明)。

适用场景与注意

适合:长时间用 dsh web 或 dsh-helper 跑 agent,经常多窗口协作、希望「人不在会话前时才用系统托盘/通知中心提醒」的开发者。

注意:

  • 插件随当前 DSH Web 进程与用户配置加载运行;安装前请自行查看仓库源码与 MIT 许可证,确认符合你的环境策略。
  • 社区目录 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本插件是其中一条客户端通知链路。
  • Node 引擎要求 >=20(见 package.json)。

结尾

dsh-helper-plugin-notify-away 把 Harness 里「回合结束」和「在等你」映射成可点击的系统 toast,并用「离开才通知」对齐「正在看就不吵、切走才提醒」的使用习惯。需要细节时以仓库 README(含 README.zh.md)为准。

  • 目录页:https://www.skillhub.cn/plugins/x102201/dsh-helper-plugin-notify-away
  • GitHub:https://github.com/x102201/dsh-helper-plugin-notify-away
羽毛球分组比赛记分
小程序二维码

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

小夜