From b3b9f0d2b8f25e4f47ddfa005ac9c8de5ca0d59c Mon Sep 17 00:00:00 2001 From: Neil <4138956+nwparker@users.noreply.github.com> Date: Sun, 23 Aug 2026 19:09:02 -0700 Subject: [PATCH] fix(runtime): preserve unparseable local worktree sessions --- src/main/runtime/orca-runtime.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/runtime/orca-runtime.ts b/src/main/runtime/orca-runtime.ts index 181d83e1b52..653a6cdf421 100644 --- a/src/main/runtime/orca-runtime.ts +++ b/src/main/runtime/orca-runtime.ts @@ -5989,11 +5989,16 @@ export class OrcaRuntimeService { } } const resolvedWorktreeId = scope?.type === 'worktree' ? scope.worktreeId : worktreeId + const resolvedOwnerIndex = ownerIndex ?? this.buildWorkspaceExecutionOwnerIndex() const parsed = splitWorktreeIdForFilesystem(resolvedWorktreeId) if (!parsed) { - return null + const ownerHostIds = resolvedOwnerIndex.exactHostIdsByWorktreeId.get(resolvedWorktreeId) + return ownerHostIds?.size === 1 + ? ownerHostIds.values().next().value! + : ownerHostIds?.size === 0 || ownerHostIds === undefined + ? LOCAL_EXECUTION_HOST_ID + : null } - const resolvedOwnerIndex = ownerIndex ?? this.buildWorkspaceExecutionOwnerIndex() const ownerHostIds = new Set( resolvedOwnerIndex.exactHostIdsByWorktreeId.get(resolvedWorktreeId) ?? [] ) @@ -6189,7 +6194,8 @@ export class OrcaRuntimeService { } const parsed = splitWorktreeIdForFilesystem(worktreeId) if (!parsed) { - return true + // Unparseable IDs have no path-based owner candidates to compare. + return (ownerIndex.exactHostIdsByWorktreeId.get(worktreeId)?.size ?? 0) > 1 } const ownerHostIds = new Set(ownerIndex.exactHostIdsByWorktreeId.get(worktreeId) ?? []) const repoOwners = ownerIndex.repoOwnersById.get(parsed.repoId) ?? []