mirror of
https://github.com/feigeCode/navop.git
synced 2026-11-06 08:07:31 +00:00
0.22.0 整窗卡死的根因是 UI 事件里同步 `Command::spawn()`:`spawn` 在调用线程里 `fork` 并阻塞读 exec 错误管道,macOS 子进程一旦卡在 atfork 处理器(notify / objc 锁互等)就永远走不到 exec,父线程(GPUI 主线程)也就永远读不到 EOF —— 窗口冻结、无日志、子进程 100% CPU 自旋。 - process-util 新增 `spawn_detached(command, what)`:在独立线程里 spawn 并 `wait` 回收子进程,失败只记 warn;新增单测验证调用线程不阻塞、子进程照常执行。 - remote_file_editor `launch_external_editor`、html-preview `open_html_preview_document_in_browser`(AI 对话里「在浏览器中打开」)改走 `spawn_detached`;ai_chat_view 工作台「在文件管理器中显示」收拢到同一辅助函数。 - 其余 `.spawn()/.output()/.status()` 站点已逐一核对:扩展宿主、ACP、技能安装、 文件关联、git、容器后端都在 tokio / smol 后台线程;RDP helper 需要长期持有 Child 句柄;更新器收尾启动必须同步确认子进程已起,均保持原状。