mirror of
https://github.com/stablyai/orca.git
synced 2026-10-20 08:03:28 +00:00
#11346 made `activeWorkspaceExecutionHostId` authoritative for the active workspace, but the short-circuits that read it never see the owner record, so a project reached through a paired runtime HUB (`hostId: ssh:<target>` plus `runtimeOwnerEnvironmentId: <hub>`) loses its transport and its repo: - `resolveWorktreeOperationRouteResult` returned `runtimeEnvironmentId: null` for any non-`runtime:` selection, bypassing the HUB recovery in `resolveExactWorktreeRoute` — every owner-routed terminal/git/filesystem operation on the active workspace lost the HUB that proxies the SSH target. - `selectRepoByIdForActiveWorkspace` filtered `state.repos` by the selected host with no fallback, but `withRepoHostOwnership` deliberately keeps the SSH host on the worktree while the repo row stays HUB-owned — so the active repo read as `null` and `useGitStatusPolling` stopped polling the whole workspace. Route resolution now recovers the HUB owner from the owner rows on the selected host, and drops it only when rival HUBs project the same host. The repo selector opens exactly one hole in #11346's fail-closed rule — an `ssh:` selection over a `runtime:` repo row — and every other host mismatch still returns `null`. `worktree-owner-route.ts` is a pure extraction of the existing owner-route helpers; no behavior moved with it.