dsh-desktop-alerts:审批与任务完成时的 Windows 系统通知

前言

DeepSeek Harness(DSH)里需要人工审批或提权时,审批卡片只出现在应用窗口内。切到浏览器、全屏看视频,或系统开着「请勿打扰」时,卡片可能长时间无人看见,任务会一直挂着。某轮对话跑完,若窗口不在前台,同样容易错过结束时机。

下面介绍社区插件 dsh-desktop-alerts(维护者 Gusheng-GS):把审批请求和任务完成事件转成 Windows 原生 toast,在允许的系统场景下穿透勿扰与全屏;DSH 在前台时不打扰;点击通知可切回 DSH。插件分类为客户端,当前在 GitHub 上可见 2 stars;详细说明与安装以 仓库 README 为准。社区目录页:SkillHub 条目。

这是什么

dsh-desktop-alerts 是 DeepSeek Harness 的 Windows 桌面通知插件(npm 包名 dsh-desktop-alerts,当前版本 0.5.2,MIT 许可证)。它监听 DSH 的审批与回合结束事件,通过 PowerShell 5.1 调用系统 toast API 发通知,不改变审批语义;通知失败只记日志,不影响审批链路。

非 Windows 平台插件会静默禁用(系统没有对应通知通道)。

环境要求

  • Windows 10 1809+ 或 Windows 11
  • DeepSeek Harness 桌面版 0.2.1+
  • 宿主侧仅使用 Node 内置模块;发通知依赖系统自带的 PowerShell 5.1,无额外 npm 依赖

核心功能

审批通知

  • 穿透「请勿打扰」:Windows 11(22H2+)使用 scenario="urgent",Windows 10 使用 scenario="alarm"——这两类是系统里允许越过勿扰与专注助手规则的提醒之一。
  • 穿透全屏:专注助手「全屏时」规则通常不拦截 urgent / alarm(独占全屏的 DirectX 游戏除外,见下文限制)。
  • 前台不打扰:默认开启「DSH 在前台时不提醒」;通过渲染进程焦点心跳与 Win32 前台窗口双重判断,只有切走后才弹。
  • 点击切回 DSH:点击横幅或通知中心条目,将最小化或被挡住的 DSH 提到前台;DSH 已退出时通过用户级注册的 dshalerts: 协议重新启动,无需管理员权限。
  • 重复提醒:审批未处理时可按设置追加提醒;回答或取消后停止。
  • 提示音:可选闹钟声(循环)、系统提示音、自定义音频文件或静音;响 1–60 秒后自动停止(声音由 lib/sound.ps1 播放,toast 本体为 silent)。

任务完成通知

每轮任务以 completed 结束时(不含子代理会话、不含 aborted 等),可单独开关是否通知;正文带对话标题,图标为绿色对勾,几秒后自动收起。完成通知可用 toast 自带的一声系统提示音(非循环闹钟)。

通知中心

以 DeepSeek Harness 相关 AUMID(DeepSeek.Harness.DesktopAlerts)登记,通知留在操作中心,便于事后查看。

安装与启用

从 GitHub 安装(推荐)

在 DSH「插件」页选择从 Git 安装,或在桌面端执行:

dsh plugin add git+https://github.com/Gusheng-GS/dsh-desktop-alerts.git

若使用本地源码开发,需复制到 %USERPROFILE%\.dsh\plugins\dsh-desktop-alerts,在 desktop profile 中 pnpm add link:...,并把 "dsh-desktop-alerts" 追加到该 profile package.json 的 dsh.profile.bundles 数组末尾,然后重启 DSH。仓库提供 node tools/deploy.mjs 可一次性完成复制、bundles 补全等步骤。

从旧名升级(0.4.x → 0.5.0)

0.4.2 及以前包名为 dsh-approval-toast,0.5.0 起改名为 dsh-desktop-alerts。先卸旧包再装新包,避免两条通知各弹一遍:

dsh plugin remove dsh-approval-toast
dsh plugin add dsh-desktop-alerts

旧配置与日志会在首次启动时迁移到新文件名;旧版 dshapproval: 协议与旧 AUMID 会被清理,通知中心里旧版发出的条目点击可能失效,可手动清除。

设置与诊断

打开 设置 → 桌面通知 即可配置总开关、前台静音、点击激活、通知强度、提示音与时长、重复提醒次数与间隔、工具冷却、文案,以及任务完成相关选项。页面提供「测试审批通知」「测试完成通知」,会绕过焦点判断立刻弹一条,用于确认系统通道是否正常。

配置文件与设置页读写同一份:

%USERPROFILE%\.dsh\dsh-desktop-alerts.json

诊断日志(每行 JSON,超过 256 KB 时保留最近约 400 行):

%USERPROFILE%\.dsh\dsh-desktop-alerts.log

插件未弹窗或设置页未出现时,可先查看日志中的 load / capture / approval / task 等记录;设置页「状态」会分别显示事件钩子与服务钩子的命中次数。

典型用法

  1. 按上文命令安装并重启 DSH,确认设置里出现「桌面通知」分组。
  2. 保持默认「DSH 在前台时不提醒」,切到其他窗口后触发一次需审批的操作,观察右下角 toast 与提示音是否符合预期。
  3. 点一次通知,确认 DSH 窗口回到前台;若 DSH 已退出,确认能否被重新拉起。
  4. 跑完一轮对话后,若开启了「任务完成时也通知」,应看到带对话标题的完成 toast。
  5. 排查问题时用测试按钮验证系统层,并对照 dsh-desktop-alerts.log 与设置页「上次结果」。

适用场景与注意

适合:主要在 Windows 上使用 DSH 桌面版、经常多窗口或全屏工作、希望审批与任务结束有系统级提醒的用户。

运行方式:插件随当前 DSH 进程加载,发通知与注册协议均在用户权限下完成;安装前建议浏览 GitHub 源码 与 MIT 许可证,自行评估是否满足环境策略。

已知限制(摘自 README):

  • 仅 Windows 有系统通知通道。
  • 独占全屏 DirectX 游戏里横幅可能被系统压掉;无边框全屏与普通全屏一般正常。
  • 若用户在系统设置中彻底关闭本应用通知,toast 会被静默丢弃。
  • 远程会话或锁屏下前台判断可能不准,会按「未在前台」处理从而仍可能弹通知。
  • DSH 安装路径变更后,若点击通知无法启动,重启一次 DSH 让插件重写 dshalerts: 注册即可。

卸载示例:

cd $env:USERPROFILE\.dsh\profiles\desktop
pnpm remove dsh-desktop-alerts

再从 dsh.profile.bundles 删除同名条目并重启 DSH。

结尾

dsh-desktop-alerts 把 DSH 窗口内的审批与完成事件映射到 Windows 原生通知,在系统规则允许范围内尽量穿透勿扰与全屏,并在你不在看 DSH 时再提醒;细节与更新见 CHANGELOG 与 Issues。

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

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

小夜