Repository navigation
Open groups and public workspaces from V2 User Settings - #1706
Merged
Paul Lizer (paullizer) merged 2 commits intoOct 8, 2026
Merged
Paul Lizer (paullizer) merged 2 commits into
Paul Lizer (paullizer) merged 2 commits into
Conversation
Each row on the Groups and Public tabs now has Open next to Set active, so a workspace can be visited from settings instead of only made active. Open navigates by immutable id through WorkspaceKind.openPath, built with the reviewed groupWorkspacePath/publicWorkspacePath builders, and never activates from the tab: the group page activates the group it shows, and a public page leaves the active public workspace alone, as with the directories' Open. It shares Set active's busy gating, and an id the path builder refuses is reported in the tab's error line. Rows now wrap like the directory rows, so on a phone the actions move below the name instead of squeezing the name and role badge. Bump to 0.261.294 with tests, guide, feature doc and release notes. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
The base reached 0.261.295 with the workflow hand-off card (#1683) and the orchestration workflows capability (#1648), so this change moves to 0.261.296. config.py and the release notes conflicted on the version; the base's v0.261.295 section is kept as is, with this change's entry in a new v0.261.296 section above it, and the change's test headers, version floor and docs are renumbered to match. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Paul Lizer (paullizer)
merged commit Oct 8, 2026
f34094a
into
paullizer-react-v2-ui
11 checks passed
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
The Groups and Public tabs in V2 User Settings list the workspaces you own or use, but each row only offered Set active. There was no way to go to a workspace from there. The classic Profile page already has a per-row Manage link; V2 didn't.
/groups/<id>or/public/<id>.WorkspaceKind.openPathinlib/workspaces.tsuses the already-reviewedgroupWorkspacePath/publicWorkspacePathbuilders, which are on the XSS checker's same-origin list. Open shares Set active's busy gating, so two activations can't race. An id the builder refuses shows the tab's inline error instead of throwing.Linked issue
N/A - no issue was filed for this change.
Release Notes & Latest Features
Is this visible to end users?
Is this admin-facing (Admin Settings, governance, deployment, config)?
Should this become a Latest Feature card?
Screenshot needed for the card?
Version bump
application/single_app/config.pyVERSIONthird segment bumped, or not needed because this is docs-only (0.261.295->0.261.296. The base reached0.261.295with Show workflow hand-offs under a chat answer in V2 (Phase 7b) #1683 and Update roadmap status: 6b-2 and 7a done, with the #1647 lineage follow-up #1648, so this change was renumbered when the base was merged in.)deployers/version.txtbumped, or not needed becausedeployers/was not changedTesting / validation
All of these were run on the merged head (
072e2ca16, basecd333de9dmerged in) and passed:npm ci, thennpm run buildinapplication/v2_ui(tsc -b, then Vite) - passed (only the existing chunk-size warning)node functional_tests/test_v2_group_workspace_context_logic.mjs- passed, 28 checks (new: groupopenPath, id encoding, refused ids, no server call)node functional_tests/test_v2_public_workspace_context_logic.mjs- passed, 4 checks (new: the same for public)python functional_tests/test_v2_settings_tabs.py- passed, 7/7 (new contract test: reviewed builders, real routes, an Open handler that never activates)python functional_tests/test_v2_user_settings_layout.py- passed, 6/6python functional_tests/test_v2_settings_and_workspace_tags.py- passed, 9/9python functional_tests/test_v2_public_directory_list_route_pin.py- passed, 4 testspython scripts/check_xss_sinks.py application/v2_ui/src/components/settings/WorkspaceListTab.tsx application/v2_ui/src/lib/workspaces.ts- passed for 2 filespython functional_tests/test_docs_app_surface_coverage.py- passed, 7/7python functional_tests/test_docs_site_quality.py- passed, 6/6PYTHONPATH=ui_tests/fixtures,PLAYWRIGHT_SERVICE_URL=''):python -m pytest ui_tests/test_v2_settings_workspace_open.py -q- passed, 11 tests (new). They cover Open on an inactive group (the group page activates it exactly once), on the active group (no setActive), and on a public workspace (no setActive), plus row layout in light and dark at 1440px and 390px.python -m pytest ui_tests/test_v2_group_workspace_shell.py ui_tests/test_v2_public_directory.py ui_tests/test_v2_group_directory.py -q- passed, 109 testsFailing, but not caused by this PR (rechecked on the merged head):
python functional_tests/test_v2_stats_parity.py- 6/7.test_charts_use_the_shared_vendored_runtimefails with "InlineChart must use the shared loader". This PR doesn't touchInlineChart.tsx.python -m pytest functional_tests/test_group_picker_fixture_parity.py- setup errors in my local environment (werkzeughas no__version__under the installed Flask test client).python functional_tests/test_docs_link_integrity.py- 2/5. None of the broken links are in files this PR changes.python functional_tests/test_docs_release_notes_integrity.py- 0/1. The generated release-notes pages are already behind the source on the base, missing 223 releases including v0.261.295. This PR adds the v0.261.296 source entry but doesn't runscripts/build_release_notes_pages.py, to keep the diff focused.Documentation
V2_USER_SETTINGS_REDESIGN.md, plus theupdate-profile-preferences.mdguide, which now also names the rail tab Public as the UI does)Security checklist
@swagger_route(security=get_auth_security())(N/A: no routes added or changed)sanitize_settings_for_user()(N/A: no settings payloads changed)node_modulesstay gitignored)