mirror of
https://github.com/stablyai/orca.git
synced 2026-11-04 02:57:36 +00:00
* fix(wsl-host): boot only the focused WSL host, and keep a stopped one down E9 connect policy, part 1. A stopped distro now boots only for an explicit user action or when its host becomes focused: - Visible work is the active workspace plus workspaces focused earlier in this window that still have tabs. Saved tabs alone no longer count, so a launch with two hosts boots only the focused one. - After a confirmed stop (wsl --shutdown, WSL update) the host is parked. Liveness no longer reboots it even when it is visible, and polls get "<distro> was stopped" instead of a boot. Re-focusing the host, Connect, or the distro running again lifts it. - Liveness recovery always needs a confirmed-running distro, so a distro that stops mid-recovery is never booted again. Co-Authored-By: Claude <noreply@anthropic.com> * test(wsl-host): launch boots one of two hosts; polls never boot; lost contact never parks Co-Authored-By: Claude <noreply@anthropic.com> * fix(wsl-host): only a focus entry or a user action boots a WSL host (E9 review) Review of #33838: - Re-focus never lifted a park: a host focused earlier stayed in the visible set, and the renderer skips unchanged reports. The renderer now sends a separate focus entry (focusHost) each time the user switches to a workspace on a WSL host, including the launch restore; only that, or Connect, lifts a park and may boot. - Runtime calls could boot: ensureForRuntimeCall connected any visible, unparked host. It now reads the host's reachability first: a confirmed-stopped distro parks at once, an unreadable running list refuses, and only a distro confirmed running is reconnected (for visible work). Visible work itself never connects anything. - Turning WSL hosts on no longer boots every visible host, and focus isn't recorded while they're off; the window re-reports its focused host instead. - Each window's visible work is kept apart and unioned, so one window can't drop another's. - wakeForAutomation/isConnected move to the automation PR, which uses them. Co-Authored-By: Claude <noreply@anthropic.com> * fix(wsl-host): a poll waits for liveness's verdict right after an exit (E9 re-review) Right after `wsl --shutdown` WSL can still list the stopping distro as running (the supervisor waits and re-reads for exactly this). A poll's cold probe then read 'unreachable', reconnected, superseded the pending distro-stopped verdict and booted the distro again. The supervisor now reports when it is settling (a verdict in progress, or a watch/holder exit within the last few seconds), and a runtime call refuses instead of reconnecting then; the verdict parks the host as before. Co-Authored-By: Claude <noreply@anthropic.com> * test(wsl-host): a new supervised entry starts with no recorded exit Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>