Skip to content

Conversation

@ibetitsmike
Copy link
Contributor

Implements a generic, extensible Settings Manager accessible via Command Palette and gear icon in title bar.

Features

  • General: Theme toggle (light/dark)
  • Providers: Configure API keys and base URLs for all supported providers
  • Models: Add/remove custom models that appear in the model selector

Implementation

  • SettingsContext manages modal visibility and active section
  • SettingsModal with two-column layout (sidebar + content)
  • Provider display names with proper casing (OpenAI, xAI, OpenRouter)
  • Custom models sync to model selector via providers-config-changed event
  • Clear button for base URL (deletes key from config when empty)

Also fixes

  • TitleBar and WorkspaceHeader height alignment (both use explicit h-8)
  • Settings modal header heights (use explicit h-12)

Generated with mux

- Add SettingsModal with sidebar navigation between sections
- General section: theme toggle (light/dark)
- Providers section: configure API keys and base URLs per provider
- Models section: add/remove custom models per provider
- Command Palette integration: 'Open Settings', 'Settings: Providers', 'Settings: Models'
- New IPC channels: PROVIDERS_GET_CONFIG, PROVIDERS_SET_MODELS
- getConfig returns apiKeySet boolean (not the key value) for security

_Generated with mux_
- Fixed header height inconsistency by using explicit h-12 class for both
  sidebar and content headers
- Custom models from Settings now appear in model selector dropdown
- Added providers-config-changed event to sync models when settings change
- Used useMemo for allModels to avoid unnecessary re-renders
- Use span instead of h2/h3 for headers to ensure consistent heights
- Add PROVIDER_DISPLAY_NAMES constant with proper casing (OpenAI, xAI, etc.)
- Update ProvidersSection and ModelsSection to use display names
@ibetitsmike ibetitsmike force-pushed the plan-mux-settings-manager branch from e60827a to 8ec7895 Compare November 25, 2025 08:21
Changed TitleBar from bg-dark to bg-separator to match WorkspaceHeader
and create visual continuity across the top of the app.
@ibetitsmike ibetitsmike force-pushed the plan-mux-settings-manager branch 3 times, most recently from 6965bb4 to 7b44cdf Compare November 25, 2025 10:26
- Add Storybook stories for Settings modal visual states
  - General, Providers, Models sections
  - ProvidersExpanded with accordion interaction
  - ModelsEmpty showing empty state
  - Interactive tests: overlay close, escape key, X button, sidebar nav

- Add Playwright E2E tests for Settings functionality
  - Open/close modal via gear button, escape, X button, overlay
  - Section navigation
  - Provider accordion expansion
  - Models form visibility

- Extend WorkspaceUI helper with settings methods

_Generated with `mux`_
@ibetitsmike ibetitsmike force-pushed the plan-mux-settings-manager branch from 7b44cdf to 4280105 Compare November 25, 2025 10:31
@ibetitsmike ibetitsmike added this pull request to the merge queue Nov 25, 2025
github-merge-queue bot pushed a commit that referenced this pull request Nov 25, 2025
…750)

Implements a generic, extensible Settings Manager accessible via Command
Palette and gear icon in title bar.

## Features
- **General**: Theme toggle (light/dark)
- **Providers**: Configure API keys and base URLs for all supported
providers
- **Models**: Add/remove custom models that appear in the model selector

## Implementation
- `SettingsContext` manages modal visibility and active section
- `SettingsModal` with two-column layout (sidebar + content)
- Provider display names with proper casing (OpenAI, xAI, OpenRouter)
- Custom models sync to model selector via `providers-config-changed`
event
- Clear button for base URL (deletes key from config when empty)

## Also fixes
- TitleBar and WorkspaceHeader height alignment (both use explicit
`h-8`)
- Settings modal header heights (use explicit `h-12`)

_Generated with `mux`_
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Nov 25, 2025
@ibetitsmike ibetitsmike added this pull request to the merge queue Nov 25, 2025
github-merge-queue bot pushed a commit that referenced this pull request Nov 25, 2025
…750)

Implements a generic, extensible Settings Manager accessible via Command
Palette and gear icon in title bar.

## Features
- **General**: Theme toggle (light/dark)
- **Providers**: Configure API keys and base URLs for all supported
providers
- **Models**: Add/remove custom models that appear in the model selector

## Implementation
- `SettingsContext` manages modal visibility and active section
- `SettingsModal` with two-column layout (sidebar + content)
- Provider display names with proper casing (OpenAI, xAI, OpenRouter)
- Custom models sync to model selector via `providers-config-changed`
event
- Clear button for base URL (deletes key from config when empty)

## Also fixes
- TitleBar and WorkspaceHeader height alignment (both use explicit
`h-8`)
- Settings modal header heights (use explicit `h-12`)

_Generated with `mux`_
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Nov 25, 2025
@ibetitsmike ibetitsmike added this pull request to the merge queue Nov 25, 2025
Merged via the queue into main with commit 08e02a6 Nov 25, 2025
13 checks passed
@ibetitsmike ibetitsmike deleted the plan-mux-settings-manager branch November 25, 2025 14:07
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