move settings into app shell - #9047
Conversation
gemini-cli/qwen-code/crush/goose coverage: - google-gemini/gemini-cli#26551 externalize https-proxy-agent (man) - QwenLM/qwen-code#3865 persist channel sessions across restarts (man) - charmbracelet/crush#2807 oauth refresh in summarize path (man) - aaif-goose/goose#9047 settings moved into app shell with URL state (man)
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
d2b820b to
49c110c
Compare
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e11288985c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 020953e917
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
DOsinga
left a comment
There was a problem hiding this comment.
Code is clean and well-structured. Codex P2 issues were addressed in follow-up commits. Tests cover real user-facing behavior. All CI green. Approving.
Signed-off-by: Douwe Osinga <douwe@squareup.com>
Signed-off-by: Douwe Osinga <douwe@squareup.com>
* main: (66 commits) Switch GH pages deploy to actions/artifact workflow (#9025) fix(summon): re-apply canonical limits when delegate overrides model (#9183) Split code signing from build (#8587) refactor(logging): consolidate logging setup into shared helper in goose crate (#8817) fix(cli): report cumulative total_tokens in stream-json/json output (#8910) plugins: add open plugins (just skills for now) (#9063) fix(providers): refresh GCP metadata server token on expiration (#8929) chore(deps): bump the cargo-minor-and-patch group across 1 directory with 14 updates (#9178) chore(deps): bump bzip2 from 0.5.2 to 0.6.1 (#8964) chore(deps): bump tauri from 2.10.3 to 2.11.1 in /ui/goose2/src-tauri (#9066) chore(deps): bump hono from 4.12.14 to 4.12.18 in /evals/open-model-gym/mcp-harness (#9073) localize hardcoded strings in provider settings UI (#8931) chore(deps): bump @babel/plugin-transform-modules-systemjs from 7.28.5 to 7.29.4 in /documentation (#9122) move settings into app shell (#9047) Add Location column to CLI skills table (#8785) (feat): add routstr as a declarative provider (#9175) Add FuturMix provider (#8840) fix: convert quoted numeric config values to numbers if needed (#8844) fix(ui): keep SSE reconnect loop alive on long disconnects (#8717) (#8846) fix(openai): apply request_params to outgoing API payload (#9151) ...
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com> Signed-off-by: Douwe Osinga <douwe@squareup.com> Co-authored-by: Douwe Osinga <douwe@squareup.com>
Category: improvement
User Impact: Users can open Settings as a full-page app surface with a dedicated settings navigation inside the existing sidebar.
Problem: Settings was constrained to a modal that had its own side navigation, which competed with the main app sidebar and made the settings IA feel separate from the app shell. The modal also made it harder to deep link to a specific settings section.
Solution: Settings now uses the app shell as a first-class view. The sidebar keeps its frame in place while its internal navigation switches to a settings surface with a back button, and settings sections are reflected in
/settings?section=...URL state.File changes
ui/goose2/src/app/AppShell.tsx
Adds Settings as an app-shell view, tracks the last non-settings view for the back action, and keeps the active settings section in URL state.
ui/goose2/src/app/ui/AppShellContent.tsx
Renders the full-page settings view alongside the other app views.
ui/goose2/src/features/settings/ui/SettingsModal.tsx
Removes the modal implementation now that settings is an app-shell surface.
ui/goose2/src/features/settings/ui/SettingsView.tsx
Adds the full-page settings content switcher for each settings section.
ui/goose2/src/features/settings/ui/settingsSections.ts
Centralizes the settings section metadata so the sidebar and content can share one source of truth.
ui/goose2/src/features/sidebar/ui/Sidebar.tsx
Adds a settings navigation surface inside the existing sidebar shell, including the back control and section selection.
ui/goose2/src/features/sidebar/ui/tests/Sidebar.test.tsx
Covers the settings sidebar surface, active section state, back action, and section selection.
ui/goose2/src/shared/i18n/locales/en/settings.json
Adds the settings navigation label for accessibility.
ui/goose2/src/shared/i18n/locales/en/sidebar.json
Adds main navigation and back-to-main-navigation copy.
ui/goose2/src/shared/i18n/locales/es/settings.json
Adds the Spanish settings navigation label.
ui/goose2/src/shared/i18n/locales/es/sidebar.json
Adds Spanish copy for main navigation and the settings back action.
ui/goose2/src/shared/ui/SettingsPage.tsx
Removes modal-specific right padding so settings page headers align correctly in the full-page layout.
Reproduction Steps
/settings?section=general.Screenshots/Demos
