Repository navigation
dsh-notify 0.3.1
⚠️ 本版有缺陷,请改用 0.3.2。
本版的包名改造只做了一半:cordis.patch.yml的 specifier 与客户端模块 id 仍是裸名dsh-notify,装完后插件会在 DSH 启动时加载失败。npm 上对应的@having5548/dsh-notify@0.3.1同样受影响。
dsh-notify 0.3.1
DeepSeek Harness 通知插件 — 新会话 / 待审批 / 待回答 / 任务完成 / 任务中断 / 后台任务,一个都不错过。
⚠️ 如果你在用 0.2.x,这次升级是必须的
0.2.x 的「批准 / 拒绝」按钮和「待回答 / 计划审阅」通知,在当前 DSH 上是静默失效的:
- 客户端读的是
SessionSnapshot.pending和会话列表行的pendingInteraction字段; - 这两个字段在当前 DSH 客户端 API 里都已经不存在了。
后果是:审批通知照弹,但按钮点了没有任何反应(内部轮询 6 秒后悄悄放弃),而且「待回答 / 计划审阅」两类通知从来不触发。因为每一步都吞掉了异常,界面上看不出任何报错。
本版把这条链路整体迁移到官方事实源 ctx.uiSession.pendingInteractions —— 也就是 DSH 自己的审批面板和侧边栏角标用的同一个数据源。
修复
- 「批准 / 拒绝」真正可用 — 直接调用
PendingApproval.answer('allowed-once' | 'rejected'),不需要先打开会话、不需要轮询。请求已被其它界面应答时会明确报错,不再静默失败。 - 「待回答 / 计划审阅」通知恢复 — 由
pendingInteractions的kind: 'question'/'plan-review'驱动,通知正文带上第一个问题的内容。 - 待办解决后 Toast 自动撤下 — 你在审批面板里处理掉之后,右上角那条通知会自己消失,不用手动关。
- 消除重复通知 — 服务端 SSE 不再广播
approval/asked。客户端本地已经有权威事实源,两条路径并存会让同一次审批弹出两条通知(tag 不同,服务端那层 800ms 去重拦不住)。 - 不再硬依赖
uiSession— 改用ctx.inject延迟接线。万一该服务缺席或形状变化,只损失审批/问答这一类通知,其余功能照常,而不是整个插件不加载。 - 修正通知日志在失焦时的通道标注(此前会误标成「应用内+系统」)。
变更
- 移除 wscript +
dsh-activate.vbs+dsh-notify://自定义协议激活链路。
原生通知现在只负责提醒:不注册自定义协议、不创建.lnk、不调用脚本宿主、不做点击回调 / 一键审批 / 带回前台。这是为了避开 360 / 火绒这类安全软件对「脚本宿主 + 自定义协议」组合的误报。待审批请回到 DSH 界面,在应用内通知或审批面板里处理。
安装
dsh plugin --profile web add dsh-notify-0.3.1.tgz安装后重启 DSH Web GUI 生效(重启会中断当前会话,先保存手头任务)。
环境
- Windows 10+ / macOS,DSH Web GUI(
dsh web) - 全部所用 API 已在 dsh 0.1.5-rc.2 上逐条核对:
ctx.settings.register、ctx.on('session/event')、turn/end的reason.kind、ctx.sessions.list快照结构、ctx.uiSession.pendingInteractions、ctx.slots的settings.section、ctx.settingsScope.bind、ctx.locale - 原生通道:Windows 走 PowerShell 5.1 + 内置 WinRT(只写 HKCU 的 AUMID,无需管理员);macOS 走系统自带
osascript
完整改动
协议与内部实现细节见 25e72fa。
Assets
dsh-notify-0.3.1.tgz— 插件安装包(dsh plugin add直接用这个)- SHA256(
dsh-notify-0.3.1.tgz) =40863E9FB985D241B67A8ED184C7E4852F15B6B3574EB90A283BEA9FDDFB4C0D