Agentic UI: Application Settings#3979
Open
shaunandrews wants to merge 5 commits into
Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR brings Studio’s application-level settings into the new agentic UI (apps/ui) by adding a dedicated /settings route with tabbed sections (Settings/Usage/Keyboard/Skills/MCP), wiring the necessary connector/query plumbing, and updating sidebar navigation so the user row acts as the primary entry point to Settings.
Changes:
- Adds a new Settings route and a redesigned SettingsView with tabs, save UX (including unsaved-change blocking), and keyboard shortcut handling.
- Introduces new data-layer capabilities (app globals, snapshot usage + delete-all, WordPress skills, offline detection) across connectors and queries.
- Updates sidebar/user-menu/site-list behavior and styling to treat Settings as a first-class navigation destination.
Reviewed changes
Copilot reviewed 25 out of 25 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| apps/ui/src/ui-classic/router/route-settings/index.tsx | Updates settings route search param parsing to normalize tab ids. |
| apps/ui/src/ui-classic/router/layout-root/index.tsx | Adds root-level listener to open Settings from connector events. |
| apps/ui/src/lib/docs-links.ts | Adds new docs link keys for CLI/MCP/Skills. |
| apps/ui/src/index.css | Adds select z-index token + tweaks highlighted listbox row styling for dark chrome. |
| apps/ui/src/hooks/use-offline.ts | Introduces a hook for online/offline guards in UI flows. |
| apps/ui/src/data/queries/use-wordpress-skills.ts | Adds query + mutations for global WordPress skill status/actions. |
| apps/ui/src/data/queries/use-snapshots.ts | Adds per-user query keys + snapshot usage query + delete-all mutation helpers. |
| apps/ui/src/data/queries/use-app-globals.ts | Adds app globals query (platform/app metadata) with infinite staleness. |
| apps/ui/src/data/core/types.ts | Extends Connector contract + adds new types (AppGlobals, SnapshotUsage, SkillStatus, etc.). |
| apps/ui/src/data/core/index.ts | Re-exports newly added data-core types. |
| apps/ui/src/data/core/connectors/ipc/index.ts | Implements new Connector methods in IPC mode (snapshot usage, prefs, skills, settings events, etc.). |
| apps/ui/src/data/core/connectors/hosted/index.ts | Implements hosted/browser-mode behavior for new Connector methods (mostly no-ops / placeholders). |
| apps/ui/src/components/user-menu/style.module.css | Restyles user menu row to behave like a first-class selected/active navigation row. |
| apps/ui/src/components/user-menu/index.tsx | Makes clicking the user row open Settings directly; adds “active” state and removes theme toggle menu. |
| apps/ui/src/components/user-menu/index.test.tsx | Adds coverage for Settings navigation + active highlighting behavior. |
| apps/ui/src/components/site-list/style.module.css | Aligns site row hover/active colors with new sidebar tokens. |
| apps/ui/src/components/site-list/index.tsx | Prevents MRU auto-expansion when not on the dashboard root (e.g., in Settings). |
| apps/ui/src/components/site-list/index.test.tsx | Adds tests for MRU expansion behavior on / vs /settings. |
| apps/ui/src/components/sidebar-layout/style.module.css | Adds shared sidebar row background tokens; fixes collapsed toggle interaction via pointer-events. |
| apps/ui/src/components/sidebar-layout/index.tsx | Adjusts children rendering order to keep overlay/toggle layering correct. |
| apps/ui/src/components/settings-view/style.module.css | Major styling update for new settings layout (header tabs, panels, rows, meters, code block). |
| apps/ui/src/components/settings-view/preferences.ts | Extracts preferences form normalization/diff logic into helpers. |
| apps/ui/src/components/settings-view/preferences.test.ts | Adds focused tests for new preferences helper behavior. |
| apps/ui/src/components/settings-view/index.tsx | Replaces legacy preferences DataForm with full tabbed settings experience and new panels (Usage/Keyboard/Skills/MCP). |
| apps/ui/src/components/settings-view/index.test.tsx | Adds broad coverage for settings save/dirty-blocking/tab rendering/hosted hiding/usage/skills/mcp copy/account actions. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Collaborator
📊 Performance Test ResultsComparing 0f64d77 vs trunk app-size
site-editor
site-startup
Results are median values from multiple test runs. Legend: 🟢 Improvement (faster) | 🔴 Regression (slower) | ⚪ No change (<50ms diff) |
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.
Related issues
How AI was used in this PR
Codex helped port the existing Studio application preferences into the new agentic UI, iterate on visual polish with repeated light/dark checks, add focused tests, and run code review passes with a subagent and Claude. I reviewed the resulting behavior and asked for targeted revisions throughout the implementation.
Proposed Changes
This PR brings the app-level Studio preferences into the new agentic UI and makes the user menu/settings entry point behave like a first-class part of the product instead of a temporary menu surface.
Settings
Usage
Keyboard
Skills
MCP
Sidebar And Navigation
Data And Infrastructure
--wpds-*tokens inapps/uifor light/dark-safe colors.Tests
Screenshots
The hosted UI screenshots below cover the high-level settings surfaces in both light and dark mode, captured at 900px wide with seeded sites in the sidebar. Native-only desktop controls are hidden in hosted mode and are covered by tests.
Settings
Usage
Keyboard
Skills
MCP
Testing Instructions