Skip to content

refactor(app): give full-screen settings a dedicated route - #45365

Open
Brendonovich wants to merge 3 commits into
settings-tab-focusfrom
settings-route
Open

refactor(app): give full-screen settings a dedicated route#45365
Brendonovich wants to merge 3 commits into
settings-tab-focusfrom
settings-route

Conversation

@Brendonovich

@Brendonovich Brendonovich commented Aug 26, 2026

Copy link
Copy Markdown
Member

Summary

  • Render full-screen settings at /settings instead of hiding the current route behind a separate surface.
  • Remove the settings-specific titlebar guard: settings naturally matches no session or draft tab.
  • Keep the selected section and originating server/directory in the URL, including across reloads. Back/Escape returns to the previous page, with Home as the direct-entry fallback.
  • Share navigation history between settings, app commands, and native browser/desktop traversal. Section changes replace the current entry; browser reload preserves known history without relying on router location state.
  • Preserve the originating directory and selected model when opening a new tab from settings.
  • Keep settings open when closing a background tab and recognize settings URLs during desktop restoration.

Stack

Follow-up to #45361. This PR targets settings-tab-focus; merge the focus fix first, then retarget this PR to v2. Includes the latest focus-fix branch and its draft new-tab regression coverage.

Recording

Session -> settings -> Models -> reload retaining remote context -> Back -> Forward -> Back -> settings -> same-tab return. Recorded from 7d19d78601 using the committed mocked regression test, with temporary Playwright slow motion for readability. Viewport and recording: 1280x720; duration: 11.96 seconds. Later history-command and new-tab fixes are covered by the regression tests below.

video.webm

Validation

  • App and desktop bun typecheck; app bun run typecheck:e2e
  • App unit tests: 543 passed; browser tests: 49 passed, including 4 actual MemoryRouter history tests
  • Desktop route-storage tests: 2 passed
  • Settings, settings-history, nested-dialog focus, and tab-navigation Playwright regressions: 20 passed
  • Coverage includes remote scope, reload, browser and app Back/Forward, same-tab navigation, vertical draft prompt preservation, mobile direct entry, background tab close, and new-tab directory/model preservation
  • App production build passed (existing chunk-size/dynamic-import warnings)
  • Pre-push workspace typecheck: 32 packages passed

# Conflicts:
#	packages/app/e2e/regression/remote-session-settings.spec.ts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant