概览
@moonsand/dsh-desktop-restart
README / ZH
插件文档
目录摘要
dsh.pub 核对固定版本的组合包契约、运行时事实与分发语义;完整 README 请查看源仓库。
在 GitHub 阅读完整 READMELIMITATIONS
已知限制
- **重启是硬杀**(`TerminateProcess`),正在进行的回合会中断。会话历史与已落盘内容不受影响。 - **包管理器正在往 profile 里装东西时拒绝重启**(`409 installing`)。三路信号都查:①插件管理器自己广播的 `plugin-manager/install-state`(`installing` / `cancelling` / `applying`)——这条最权威,但它不发“完成”事件,所以相位十分钟后自动过期;②lockfile 或 `node_modules/.modules.yaml` 在最近 10 秒内被写过,抓的是安装**刚结束**那一刻(lockfile 是最后才写的);③兜底是有命令行里带 `pnpm` 的 `node` 进程在跑。10 秒这个窗口故意留得短:已经装完的安装不该继续挡住重启。三路都是尽力而为,判不出来就放行。 - 只支持 Windows 桌面端。在普通 `dsh web` 下路由回 `409 not-desktop`,按钮退化为刷新页面。 - 计划任务通道被策略禁用时,帮手会退化为直接启动 PowerShell,可能闪一下控制台窗口;日志标记 `(direct powershell)`。 - 没有键盘快捷键。桌面端会把快捷键组合交给可信原生桥、在页面处理器之前拦截,页面级监听看不到;改走产品快捷键服务又会引入本插件并不需要的依赖。 - 进程检测**不用** `tasklist.exe`:实测该上下文下它返回 `Access denied`(退出码 1),若拿它判断存活,每次轮询都会报告"应用已消失",进而拉起多份应用。改为先按镜像名过滤(`Get-Process -Name`)再校验 `.Path`。
