前言¶
DeepSeek Harness(DSH)在后台运行时,一个被审批阻塞、因错误终止,或悄悄停止进展的轮次,看起来和还在“思考”的轮次完全一样。这导致你错过需要介入的时机。DSH Notify 插件将每种状态变化转换为 Windows 11 的原生 toast,点击即可把 DSH 窗口带到前台。
插件定位¶
u-fw/dsh-notify 是一个客户端插件,为 DSH 提供 Windows 11 原生通知能力。它由 u-fw 维护,负责将 DSH 的关键事件(审批、提问、错误、完成、卡住)转化为系统通知,并支持点击唤醒窗口。
核心功能¶
插件支持以下场景的 toast 通知:
- DSH 需要你的授权:工具调用等待审批,显示工具名与原因,按钮为“打开 DSH / 知道了”
- DSH 需要你的选择:DSH 提问结构化问题,显示问题标题与内容
- DSH 出错了:轮次或会话失败,显示错误文本
- DSH 账号需要处理:账号需要登录
- DSH 已完成:运行超过
minRunSeconds的轮次结束,显示耗时 - DSH 可能卡住了:运行超过
stallSeconds仍无进展,显示沉默时长
审批和提问使用长寿命 toast,停留在 Action Center 中,即使错过请求,回来时仍在那里。
默认策略与配置¶
默认策略只在你需要介入时打断你:审批、提问、登录、失败。后两条(完成、卡住)默认关闭。
基础配置¶
locale: zh # zh 或 en
notifyOnIdle: false # 长轮次完成通知,默认关闭
notifyOnStall: false # 无进展卡住通知,默认关闭
minRunSeconds: 20 # 低于此时长的轮次不触发“完成”通知
stallSeconds: 240 # 多少秒无进展才触发“卡住”提示
启用完成或卡住通知:
notifyOnIdle: true
notifyOnStall: true
minRunSeconds: 20
stallSeconds: 240
提醒与静音¶
默认 90 秒未处理时,阻塞通知会被重绘为“仍未处理”,并播放提醒音。escalateAfterSeconds: 0 可关闭此行为。
静音是临时命令,适合会议场景:
/notify mute [分钟] # 静音;不带分钟数则直到 unmute
/notify unmute
/notify status # 查看静音状态与传输统计
/notify test # 立即发送一条自检通知
静音不阻止已存在的 toast 被重绘,只阻止新通知。
批量与进度¶
批量与进度通知默认关闭,插件默认在事件发生时立即通知你。
aggregateWindowSeconds: 20 # 短时间内多个事件合并为一个 toast,显示计数
progressAfterSeconds: 120 # 长轮次宣布仍在运行
progressRefreshSeconds: 60 # 定时刷新进度 toast 的已用时长
批量 toast 使用类别标签,新事件替换旧条目而非堆叠。阻塞请求(需要你的操作)不会进入批量窗口,始终立即弹出。
前台静音¶
DSH 窗口在前台时,toast 被抑制,避免重复提醒。插件通过 Win32 GetForegroundWindow + GetWindowThreadProcessId 直接检查前台进程,不额外 spawn。
quietWhenFocused: true # 默认:前台时静音
focusPid: null # 可覆盖对比的 PID
已处理 toast 行为¶
已处理的审批或提问会被重绘为“已处理 / Answered”。Action Center 不提供删除 API,只能通过重绘替换。因此:
- 已处理 toast 会短暂重新出现为 banner
- 未处理的 toast 永远不会被移除,直到你操作或手动关闭
settleResolvedToasts: false可保留原始 toast 不被重绘
安装与启用¶
作为 DSH 插件,需通过 DSH 插件系统安装。插件目录:https://www.skillhub.cn/plugins/u-fw/dsh-notify,源码仓库:https://github.com/u-fw/dsh-notify。安装前应检查源码与许可证。
适用场景¶
适合在 Windows 11 上使用 DSH 的开发者,尤其是需要频繁查看审批、错误和进度变化的场景。插件以当前 DSH 进程权限运行,安装前应核对源码与许可证。
结尾¶
DSH Notify 将状态变化转化为系统通知,让你在处理其他任务时也能掌握 DSH 的进展。点击 toast 即可唤醒窗口,无需频繁切回 DSH。插件地址:https://www.skillhub.cn/plugins/u-fw/dsh-notify