Windows 消息通知(DSH 插件)

前言

DeepSeek Harness(DSH)在后台运行时,任务需要审批或一轮任务跑完,你可能不会注意到界面变化。这个插件会在相应时刻弹出一条 Windows 原生通知,但只在 DSH 不是当前前台程序时触发,避免打扰正在操作的用户。

这是什么

这是一个 DSH 插件,由 DEVVE-1 维护。它的职责是:当 DSH 任务需要授权或正常结束时,向用户发送 Windows Toast 通知。插件本身只做转发,不参与授权决策,也不改变审批结果。

核心功能

插件在两种场景下发送通知:

  1. 有操作请求授权
    - 触发事件:approval/request(兜底 approval/asked)
    - 通知标题:DSH 需要提权

  2. 一轮任务正常结束
    - 触发事件:session/event 的 turn/end,且 reason.kind === 'completed'
    - 通知标题:DSH 任务完成

通知只在 DSH 不是当前前台程序时弹出。前台抑制逻辑在 foreground.ps1 中实现:当前台窗口标题包含 DeepSeek Harness 时,直接跳过通知。

安装与启用

把仓库克隆(或解压发布包)到任意目录,在 DSH 里执行:

plugin_manager install_bundle target = <本目录的绝对路径>

例如:

plugin_manager install_bundle target = D:\plugins\dsh-windows-approval-notify

安装后插件行立即生效,无需重启 DSH。卸载:

plugin_manager remove_bundle target = dsh-windows-approval-notify

实现细节

  • 常驻一个 PowerShell 通知宿主,插件激活即预热;之后每条通知只写一行 JSON。
  • PowerShell 侧先读前台窗口标题判断是否前台(Win32 GetForegroundWindow + GetWindowText),需要真正弹窗时才加载 WinRT Toast API。
  • 弹窗延迟:预热后约 5–10ms;进程被回收/被杀时退化为一次性弹窗并退避重启宿主。
  • 通知标签:授权 dshApproval、完成 dshTaskDone,同组 dshNotify;同类通知互相替换,不同类各自保留一条。
  • 授权正文优先用 DSH 自己的 displayReason(优先中文),其次 reason;都没有时显示 <工具名> 正在请求你的授权。
  • 完成正文为 「<会话标题>」已完成,没有标题时显示 当前会话的这一轮任务已完成。
  • 正文最多 220 字符,超出截断。

环境要求

  • Windows 10/11,系统通知未关闭。
  • powershell.exe(Windows 自带)。
  • 通知宿主以 com.deepseek.dsh(DSH 桌面端的 AppUserModelID)发布,所以通知卡片显示为 DeepSeek Harness。

适用场景与注意

适合需要在后台持续监控 DSH 任务进度的场景。插件以当前 DSH 进程的权限运行,安装前应检查源码与许可证。

结尾

这个插件用原生 Toast 机制解决了 DSH 在后台运行时的状态可见性问题,通过前台抑制逻辑避免打扰。查看目录页和源码:https://www.skillhub.cn/plugins/DEVVE-1/dsh-windows-approval-notify | https://github.com/DEVVE-1/dsh-windows-approval-notify

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

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

Xiaoye