mirror of
https://github.com/stablyai/orca.git
synced 2026-10-01 08:01:56 +00:00
Once quitAndInstall commits, Squirrel's ShipIt (and the Win/Linux installers) wait for the old app process to exit before replacing the bundle and relaunching. The quit path defers exit behind unbounded async teardown (daemon checkpoint RPCs at 30s each per session, SSH disconnects, watcher/emulator shutdown); if any of it wedges, the app looks closed but the process survives, ShipIt stalls, and the update never applies — 'Check for updates closes the app but never relaunches'. Arm a 20s unref'd exit watchdog at the exact install-commit point (where recovery is already forbidden) and disarm it on pre-commit recovery, so the old process is guaranteed to exit and the installer can relaunch. Fixes #4438 Co-authored-by: Orca <help@stably.ai>