Skip to content

dsh-notify 0.3.1

Choose a tag to compare

@having5548 having5548 released this 12 Sep 11:48
· 6 commits to main since this release

⚠️ 本版有缺陷,请改用 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