fix(web): distinguish remote workspace navigation targets - #2732
Merged
bobleer merged 1 commit intoSep 1, 2026
Merged
Conversation
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
/workspaceType and Areas
Type: regression fix
Areas: Web UI, remote workspace navigation
Motivation / Impact
Two remote workspaces can legitimately expose the same POSIX root path. The sidebar previously used path equality as an active-state fallback, which marked both rows active. Clicking the folder action on the non-current row then skipped
setActiveWorkspaceand opened the file view for the previously active remote workspace.Remote workspaces now match only by stable workspace id; path matching remains local-only for worktree projection.
Verification
pnpm --dir src/web-ui run test:run src/app/components/NavPanel/sessionNavigationProjection.test.ts src/app/components/NavPanel/sections/workspaces/WorkspaceListSectionLayout.test.ts— 14 tests passedpnpm run check:web— passedpnpm --dir src/web-ui exec eslint src/app/components/NavPanel/sessionNavigationProjection.ts src/app/components/NavPanel/sections/workspaces/WorkspaceListSection.tsx— passedgit diff --check— passedRemote-scenario coverage:
/workspacepath and different connection/host identities.Reviewer Notes
AI-assisted change; fully tested at the focused Web UI level. No persisted shape, Tauri command, remote transport, or user-visible copy changes.
Checklist