前言¶
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 等记录;设置页「状态」会分别显示事件钩子与服务钩子的命中次数。
典型用法¶
- 按上文命令安装并重启 DSH,确认设置里出现「桌面通知」分组。
- 保持默认「DSH 在前台时不提醒」,切到其他窗口后触发一次需审批的操作,观察右下角 toast 与提示音是否符合预期。
- 点一次通知,确认 DSH 窗口回到前台;若 DSH 已退出,确认能否被重新拉起。
- 跑完一轮对话后,若开启了「任务完成时也通知」,应看到带对话标题的完成 toast。
- 排查问题时用测试按钮验证系统层,并对照
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。