现象(Win11 ARM64 真机):点「检查更新」等满 45 秒报「check_update 超时」。 对照:同一台机器手工拉起 sidecar 跑同一请求 6.989s 成功;现场 node.exe 只有被控端一个 —— 控制台的 sidecar 进程根本不存在。 根因:ensure_sidecar 只判「缓存里有没有实例」,不判「那个实例还活着没」。 往已退出进程的管道写,在 Windows 上未必立刻报错(缓冲区吞下即返回成功), 于是请求既不报错也永远等不到响应,只能干等到 request 的超时。 修法: - Sidecar 增 dead: Arc<AtomicBool>,三处置死(stdout EOF / 写入或 flush 失败 / shutdown 主动关闭);stdout 关闭时唤醒所有在等的请求,让它们立刻失败。 - 新增 is_alive():dead / child.try_wait() / 已被 take 走,拿不准一律按不可用。 - request() 入口先判存活,不可用即秒失败。 - ensure_sidecar 取到缓存实例先判存活,已退出则丢弃重建。 - 新增 3 条单测(含「对已退出的 sidecar 发请求必须秒失败」——给 30s 超时但 断言耗时 < 5s,因为修复前的表现正是干等到超时)。注入故障实测守卫变红。 - pnpm test:rust 14/14;test:unit 321/321。 属控制台上壳变更,不触发 release patch;但需重建控制台安装包才能让用户拿到修复。
Tauri + Vue + TypeScript
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 <script setup> SFCs, check out the script setup docs to learn more.