Repository navigation
Conversation
Contributor
Author
Contributor
|
Superseded by #26535, which routes folder workspaces by executionHostId before connectionId. Closing. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
























Summary
executionHostIdconnectionIdfallback and use the focused/default host only when neither owner existsRoot cause
PR #15404 introduced a folder-host resolver that checked only
connectionId, then fell back to the focused/default host. Runtime catalog records already carry an optionalexecutionHostId, so changing focus could move a runtime-owned folder to the wrong host. Filtering had separately learned aboutexecutionHostId, leaving ownership rules inconsistent.Proof
Falsifiable invariant: workspace
executionHostId, then groupexecutionHostId, then legacyconnectionId, then default host controls folder grouping/routing regardless of focus.12724068b7: 7 failed / 3 passedorigin/main012e9f410c: 7 failed / 3 passedThe truth table covers workspace/group execution identity, legacy SSH identity, both fields, neither field, focus changes, disconnect/reconnect, and identical folder IDs across hosts.
Paired Electron evidence
A genuinely headful paired-desktop test creates local and runtime folders/groups through their real catalogs, injects only the claimed same-ID collision (including the group ID), focuses local, performs a real disconnect with a failed runtime status refresh, reconnects and rehydrates, then proves both copies render exactly once under their own host headers. Clicking each row must also set the matching
activeWorkspaceExecutionHostIdin every mode:Project mode additionally proves each folder sits beneath the matching local/runtime group header. Result: 1 passed in 17.5s. Eight fresh full-page screenshots cover all four modes before and after reconnect.
Compatibility
No RPC, stream, persistence, or wire schema changes.
executionHostIdremains optional for mixed versions; legacyconnectionIdrecords keep routing to SSH; only records with neither identity use the default host. No Git, provider, path, shell, or platform behavior changes.Validation
pnpm install --frozen-lockfilepnpm run typecheckpnpm exec electron-vite build --mode e2eThree independent gpt-5.6-luna review passes challenged ownership, regressions/compatibility, and proof quality. The first round found virtual-key, card identity, reveal, hydration, and path-status gaps; those were reproduced and fixed. A final fresh round is recorded in the PR comments/status before review.
Full
pnpm run typecheck:e2eremains red from unrelated pre-existing E2E errors.