Skip to content

Move settings into the hub page#402

Merged
Cheggin merged 1 commit intomainfrom
codex/settings-page
May 6, 2026
Merged

Move settings into the hub page#402
Cheggin merged 1 commit intomainfrom
codex/settings-page

Conversation

@Cheggin
Copy link
Copy Markdown
Collaborator

@Cheggin Cheggin commented May 6, 2026

Settings was still modeled as a separate Electron window, which made provider focus, section spacing, and app-level navigation harder to keep coherent. The hub now owns settings as a scrollable in-window page with anchored tabs, Application first, Browser Sync split out, and provider loading skeletons that preserve row height.

Constraint: Preserve unrelated dirty session persistence work in the worktree

Rejected: Keep settings:browsercode:focus-provider IPC | settings focus now travels in the open-settings payload

Rejected: Push current main directly | main already had an unrelated local commit ahead of origin/main

Confidence: high

Scope-risk: moderate

Directive: Keep SettingsSectionId, SETTINGS_TABS, and rendered settings sections in the same order

Tested: git diff --cached --check; task typecheck; npm run test -- ConnectionsPane BrowserCodeModelPicker EnginePicker SettingsPane; task lint

Not-tested: Live Electron visual pass


Summary by cubic

Moved Settings into the Hub as a scrollable in-window page with anchored tabs, replacing the separate Electron window. This simplifies navigation and provider focus, adds a dedicated Browser Sync tab, and prevents layout shift with loading skeletons.

  • New Features

    • New Hub “settings” view with anchored tabs; Application first, Browser Sync split out.
    • Provider lists render skeleton rows to preserve row height while loading.
    • Sidebar + keybindings updated to include the settings view.
    • Provider focus now passes via electronAPI.settings.open({ focusBrowserCodeProvider: '...' }).
  • Migration

    • The Settings BrowserWindow is removed; stop using SettingsWindow.ts.
    • Remove listeners for settings:browsercode:focus-provider; use the open payload instead.
    • Update tests/visuals to new settings tabs and selectors (e.g., settings-providers, settings-connections, settings-shortcuts, settings-privacy, settings-application).

Written for commit 17e2c21. Summary will update on new commits.

Settings was still modeled as a separate Electron window, which made provider focus, section spacing, and app-level navigation harder to keep coherent. The hub now owns settings as a scrollable in-window page with anchored tabs, Application first, Browser Sync split out, and provider loading skeletons that preserve row height.

Constraint: Preserve unrelated dirty session persistence work in the worktree

Rejected: Keep settings:browsercode:focus-provider IPC | settings focus now travels in the open-settings payload

Rejected: Push current main directly | main already had an unrelated local commit ahead of origin/main

Confidence: high

Scope-risk: moderate

Directive: Keep SettingsSectionId, SETTINGS_TABS, and rendered settings sections in the same order

Tested: git diff --cached --check; task typecheck; npm run test -- ConnectionsPane BrowserCodeModelPicker EnginePicker SettingsPane; task lint

Not-tested: Live Electron visual pass
Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 20 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="app/src/renderer/hub/hub.css">

<violation number="1" location="app/src/renderer/hub/hub.css:3274">
P2: Respect reduced-motion preferences for the new settings scroller; `scroll-behavior: smooth` should be disabled for users with `prefers-reduced-motion: reduce`.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review, or fix all with cubic.

min-width: 0;
min-height: 0;
overflow-y: auto;
scroll-behavior: smooth;
Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai Bot May 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Respect reduced-motion preferences for the new settings scroller; scroll-behavior: smooth should be disabled for users with prefers-reduced-motion: reduce.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At app/src/renderer/hub/hub.css, line 3274:

<comment>Respect reduced-motion preferences for the new settings scroller; `scroll-behavior: smooth` should be disabled for users with `prefers-reduced-motion: reduce`.</comment>

<file context>
@@ -3182,272 +3253,191 @@ button:focus:not(:focus-visible) {
+  min-width: 0;
+  min-height: 0;
+  overflow-y: auto;
+  scroll-behavior: smooth;
+  scroll-padding-top: 96px;
 }
</file context>
Fix with Cubic

@Cheggin Cheggin merged commit 1d1bc94 into main May 6, 2026
10 checks passed
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