Repository navigation
Add collapsible category rail to V2 Admin Settings - #1671
Merged
Paul Lizer (paullizer) merged 3 commits intoOct 6, 2026
Merged
Paul Lizer (paullizer) merged 3 commits into
Paul Lizer (paullizer) merged 3 commits into
Conversation
The Admin Settings categories rail can now collapse to icons, like the workspace section rail, giving its width to the settings cards. Collapsed entries keep their labels as tooltips and screen-reader text. The choice is remembered per admin in a new v2AdminRailCollapsed user preference, kept separate from the workspace and shell rails and allowlisted in /api/user/settings. Bumps the version to 0.261.266 and adds functional and Playwright UI coverage plus feature and admin guide documentation. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…e to 0.261.267 The File Sync single card took 0.261.266, so the collapsible category list moves to 0.261.267: the version, its release notes section, the feature and admin guide docs, and its test headers and version floor. The merge itself was clean; File Sync's own 0.261.266 references are unchanged. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Paul Lizer (paullizer)
merged commit Oct 6, 2026
10fbad9
into
paullizer-react-v2-ui
11 checks passed
14 of 24 tasks
Paul Lizer (paullizer)
added a commit
that referenced
this pull request
Oct 6, 2026
, #1671, #1674) and renumber the Operations settings parity to 0.261.269 Conflict resolutions: - admin_settings_fields.py: keep the full Operations block. The Application Insights and Health Check declarations #1670 added beside Appearance are superseded by it, and its mixed-source telemetry switch moves into the Operations Application Insights section, after the global logging readouts. Keep #1668's on_enable documentation and both sides' V2_ONLY_FIELDS entries. - route_backend_v2.py: fold content_understanding_supported into _build_runtime_flags. - SettingsSection.tsx, AdminSettingsPage.tsx, adminFields.ts: keep both the section guide and runtimeFlags props, and on_enable beside the Operations field properties. - operations.md, release_notes.md and tests: keep both sides. Both enable_dai_debug and enable_mixed_source_development_telemetry are documented rather than exempted, and Workspaces and Operations are both fully described. - Renumber this branch's 0.261.260 references to 0.261.269; the base's own 0.261.260 Web Search fix references are unchanged. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Paul Lizer (paullizer)
added a commit
that referenced
this pull request
Oct 7, 2026
… and actions editors to 0.261.268 The base already uses 0.261.260 through 0.261.267, so this change moves to 0.261.268: config.py, the release notes section, and every version this branch added to its docs and test headers. The generated docs inventory is rebuilt from the merged source, and the category rail keeps both the base's collapsed-rail tooltip and this branch's scroll reset. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
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
aria-expanded/aria-controls, stays usable while unsaved Call agent changes lock the categories, and the width transition honors reduced motion. Belowlgthe existing category drop-down is unchanged.v2AdminRailCollapseduser preference, deliberately separate from the workspace rail (v2WorkspaceRailCollapsed) and the shell rail (v2RailCollapsed) so collapsing one never collapses another. The key is added to the/api/user/settingsallowlist (unlisted keys are dropped silently) and toWRITABLE_USER_SETTING_KEYS.Notes for reviewers
paullizer-react-v2-uiat c968d58 to pick up Consolidate V2 File Sync admin settings into one card #1669, which also took0.261.266. This change is renumbered to0.261.267(version, release notes, docs, test headers). The merge itself was clean, and File Sync's own0.261.266references are untouched.AdminSettingsFixture.open()inui_tests/fixtures/v2_admin_settings.pygains an optionalpreferences=argument to seed saved user preferences. Existing callers are unaffected.trueas expanded.Screenshots
Expanded (default):
Collapsed:
Captured by
ui_tests/test_v2_admin_settings_rail_collapse.pyagainst the built SPA with intercepted APIs and synthetic settings, so the version banner shows fixture data.Linked issue
N/A - no associated issue.
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.266->0.261.267)deployers/version.txtbumped, or not needed becausedeployers/was not changedTesting / validation
Run on the merged tree unless noted:
npm run buildinapplication/v2_ui(runstsc -b, thenvite build) - passedpython functional_tests/test_v2_admin_settings_rail_collapse.py- passed (4/4)python functional_tests/test_v2_settings_and_workspace_tags.py- passed (9/9), including the client-key allowlist checkpython functional_tests/test_v2_admin_settings_layout.py- passed (5/5)python functional_tests/test_v2_admin_knowledge_file_sync.py- passed (11/11)python functional_tests/test_v2_admin_schema_vocabulary.py- passed (13/13)python functional_tests/test_v2_admin_section_shell.py- passed (5/5, 48 TypeScript logic checks)python functional_tests/test_v2_documents_explorer.py- passed (20/20); the workspace rail is unchangedpython functional_tests/test_docs_app_surface_coverage.py- passed (7/7)python functional_tests/test_docs_site_quality.py- passed (6/6)python -m pytest ui_tests/test_v2_admin_settings_rail_collapse.py ui_tests/test_v2_admin_file_sync_single_card.py ui_tests/test_v2_admin_settings_wide_layout.py -q- 34 passed. The new tests cover collapse/expand widths, the save carrying only the admin rail key, persistence across reload, category switching while collapsed, keyboard toggling with focus kept, 200% text, the narrow-screen drop-down, and light/dark.AdminSettingsFixture(13 files) - 108 passed.ui_tests/test_v2_prompt_composer_experience.pyerrors at setup ("Playwright Sync API inside the asyncio loop") only when it runs in one pytest session with other files. It does the same with the original fixture, and passes on its own (56 passed).Docs tests that already fail, unrelated to this change:
python functional_tests/test_docs_release_notes_integrity.py- fails: the generated release-notes pages are stale for about 199 releases. The fix is a fullscripts/build_release_notes_pages.pyregeneration, which is out of scope here.python functional_tests/test_docs_link_integrity.py- fails 3/5 on 26 broken links in other pages. None are in files this PR touches.Documentation
v0.261.267section)docs/explanation/features/V2_ADMIN_SETTINGS_RAIL_COLLAPSE.md, a "Collapsing the category list" section indocs/admin/index.md, and a cross-reference inV2_ADMIN_SETTINGS_LAYOUT_AND_HIERARCHY.md)Security checklist
@swagger_route(security=get_auth_security())(N/A: no new routes)sanitize_settings_for_user()(N/A: no settings payload changes; the only backend change adds one per-user preference key to the allowlist)lucide-react)