Repository navigation
修复:焦点不在 DSH 时收不到通知 / Fix: no notifications unless DSH is focused
Windows 要求桌面程序在开始菜单有一条携带 System.AppUserModel.ID 的快捷方式,否则 toast 会被间歇性静默丢弃(尤其存在前台窗口时)。只写 HKCU\Software\Classes\AppUserModelId\<id> 只提供显示名,不构成投递身份。
本版让插件在 apply() 启动时幂等自建这条快捷方式。
Windows requires a Start-Menu shortcut carrying
System.AppUserModel.ID, otherwise toasts are intermittently dropped silently. Registering theAppUserModelIdregistry key only supplies a display name, not the delivery identity. The plugin now creates that shortcut idempotently fromapply().
为什么走运行时而不是安装脚本 / Why runtime instead of an install script
- 快捷方式必须落在用户机器上,不可能打包进 npm 包;
- DSH 的
dsh-package-manifest没有提供任何安装生命周期钩子; - npm
postinstall会被 pnpm ≥10 拦下,要求用户授权任意代码执行。
放进 apply() 后:包内零安装脚本,npm 分发走普通路径无需授权,且快捷方式被删会自动重建,无需管理员权限。
实测 / Measured
| 修复前 Before | 修复后 After | |
|---|---|---|
| toast 落库 delivery | 间歇(12 条 vs 大量 code=0) |
5/5、3/3,用户目视确认 |
另实测:快捷方式的 target 指向什么不影响投递(换成 powershell.exe 仍 2/2 送达),故包内不硬编码任何机器特有的浏览器 app-id。
一并修复 / Also fixed
审批通知改挂 session/event → approval/asked,不再被 approval/request 瀑布抢答吞掉(cordis 瀑布语义:监听器不调 next() 即否决整条链,此前该钩子从未触发过一次)。
安装 / Install
dsh plugin --profile web add dsh-helper@latest包内含预构建产物,无需任何构建授权。
Full Changelog: v0.3.0...v0.5.0