dsh-desktop-notifier:DSH 最小化时的审批通知与任务栏角标

前言

DeepSeek Harness(DSH)桌面版的审批卡片只出现在窗口内。你切去浏览器、全屏看视频,或把窗口最小化后,待审批的请求无人看见,任务会一直挂着;一轮跑完也不一定能及时察觉。

dsh-desktop-notifier 是社区维护的客户端插件(qmzh-zyz),把两类提醒挪到 Windows 系统层:审批请求在桌面右下角弹通知,任务完成时在任务栏图标上叠红色数字角标并响提示音。DSH 在前台时可按配置少打扰;切走后再提醒。

这是什么

插件全名 dsh-desktop-notifier,归类为客户端工具,当前 package 版本为 0.2.0,MIT 许可。宿主侧只用 Node 内置模块,通知与角标通过系统自带的 PowerShell 5.1 调用,不额外安装运行时。

适用环境:Windows 10 1809+ 或 Windows 11;DeepSeek Harness 桌面版 0.2.1 及以上。非 Windows 平台会静默禁用。

目录页:https://www.skillhub.cn/plugins/qmzh-zyz/dsh-desktop-notifier
源码:https://github.com/qmzh-zyz/dsh-desktop-notifier

核心功能

下面按事件说明插件已核实的能力。

审批请求:右下角通知

监听 approval/request(waterfall,prepend + global)。同一 callId 5 秒内去重;默认在 DSH 不在前台时,于桌面右下角弹出通知,标题、工具名、申请原因一并展示。通知走 WinRT toast,可按 scenario 尝试穿透「请勿打扰」与全屏;拿不到包标识时自动降级为托盘气泡。监听器只透传审批语义,不代为回答。

任务完成:任务栏角标与提示音

在 session/event 的 turn/end(reason.kind === 'completed')路径上计数。子代理回合不计入;短于 completion.minTurnMs 的回合可过滤。完成时可在任务栏 DSH 按钮上显示红色数字角标(经 ITaskbarList3::SetOverlayIcon,非 Electron 自绘),并播放提示音;可选再弹一条完成 toast。切回 DSH 后角标可在约 2 秒内清掉。

其它行为

  • 点击通知可将 DSH 拉到前台(dshnotifier: 协议,用户注册表,无需管理员)。
  • 审批与完成的声音由插件合成,不依赖系统通知音。
  • 可选 debugLog 路径,便于排查「没弹」类问题。

安装与启用

方式一:由 DSH 安装(推荐)

在 DSH「插件」页选「从 Git 安装」并填仓库地址,或调用内置 plugin_manager:

install_bundle  target = github:qmzh-zyz/dsh-desktop-notifier

桌面端 profile 由客户端管理;命令行 dsh plugin --profile desktop add ... 可能被拒绝,走插件页或 plugin_manager 更稳。

方式二:本地源码(开发 / 调试)

  1. 将仓库复制到固定目录,例如 %USERPROFILE%\.dsh\plugins\dsh-desktop-notifier。
  2. 在 %USERPROFILE%\.dsh\profiles\desktop 执行:
pnpm add link:$env:USERPROFILE\.dsh\plugins\dsh-desktop-notifier
  1. 把 "dsh-desktop-notifier" 追加到该 profile package.json 的 dsh.profile.bundles 数组末尾。
  2. 重开 DeepSeek Harness。

第 3 步不能省:pnpm add 只装进 node_modules,未写入 bundles 的包不会被加载。

装完后可用仓库内 demo 自检(不必先重启客户端):

node tools/demo.mjs focus
node tools/demo.mjs toast approval
node tools/demo.mjs badge 3
node tools/demo.mjs chime

配置

在 profile 的 cordis.patch.yml 中按 id desktop-notifier 覆盖,例如:

- id: desktop-notifier
  config:
    badgeColor: '#f5455c'
    approval:
      repeat: 2
      scenario: urgent
    completion:
      minTurnMs: 5000

常用项包括:enabled 总开关;windowMatch 匹配任务栏按钮的进程名(默认 DeepSeek Harness);badgeColor 角标颜色;approval.skipWhenFocused 前台时不弹审批;approval.repeat / repeatIntervalSec 未处理时的追加提醒;completion.minTurnMs 短回合不计数;appPath 在 DSH 已退出时用于点通知重新拉起。完整键与默认值见仓库 README 配置表。

典型用法

按 README 描述的验收路径操作即可复现:

  1. 最小化 DSH,触发需要审批的操作 → 右下角出现「DSH 需要你审批」类通知。
  2. 在 DSH 或通知流程中完成「允许一次」→ 任务继续。
  3. 任务仍在后台跑完、你停留在其它窗口 → 任务栏 DSH 图标出现红色角标并响提示音。
  4. 切回 DSH → 角标消失,计数清零。

需要强提醒审批时,可将 approval.scenario 设为 urgent;希望过滤随手改句造成的短回合完成提醒时,调高 completion.minTurnMs。

适用场景与注意

适合谁: 经常在 DSH 跑长任务、又会切换窗口的 Windows 用户;希望审批与完成态不依赖「一直盯着 DSH 窗口」。

平台与限制: 仅 Windows 具备任务栏角标与完整通知通道。托盘气泡降级不能穿透独占全屏,也不支持点击跳回;多实例 DSH 时助手默认按进程名匹配第一个窗口,可用 windowMatch 调整。通知文案目前以中文为主,approval.title 可改。

安全与权限: 插件在 DSH 进程权限下运行,会写用户级协议注册表并调用 PowerShell。安装前建议阅读源码与 MIT 许可证,确认符合你的环境策略。DSH 插件生态以「一切皆插件」为理念;SkillHub 等目录为社区站点,与 DeepSeek / 幻方无官方从属关系。

卸载:从 dsh.profile.bundles 删除 dsh-desktop-notifier,pnpm remove dsh-desktop-notifier,重开客户端。

结尾

dsh-desktop-notifier 针对「窗口外看不见审批、不知道任务已跑完」做了系统层补强:审批 toast、完成角标与提示音,且不改动审批本身的处理逻辑。若你只想要通知或只要角标,README 中也列出了同类插件供组合或替换。

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

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

小夜