Skip to content

feat: Refine provider settings and picker availability states#1289

Open
huxcrux wants to merge 2 commits intopingdotgg:mainfrom
huxcrux:feat/provider-settings-cleanup
Open

feat: Refine provider settings and picker availability states#1289
huxcrux wants to merge 2 commits intopingdotgg:mainfrom
huxcrux:feat/provider-settings-cleanup

Conversation

@huxcrux
Copy link
Contributor

@huxcrux huxcrux commented Mar 21, 2026

What Changed

Refined the provider settings and picker experience.

  • Reworked the Providers section in Settings into a cleaner expandable list.
  • Added an app-level enabled/disabled toggle for each supported provider.
  • Surfaced not found and unauthed states more clearly in provider settings.
  • Improved the expanded provider panel so status, errors, and controls are easier to scan.
  • Prevented disabled, missing, or unauthed providers from being selected in provider pickers.
  • Updated related tests and browser fixtures to cover the new provider settings behavior.

Why

The provider settings were getting long and repetitive, and that will become more noticeable as more providers are added.

Grouping each provider into its own expandable section makes the settings easier to scan now and gives us a better place to add provider-specific options later. It also makes provider availability more explicit and predictable: if a provider is disabled, not found, or unauthed, it should not appear selectable elsewhere in the app.

UI Changes

Added aa few extra pictures to show the different states when a provider is not found, unauthed or working fine.

Provider picker:

Before After
image image
image
image

Settings:

Before After
image image
image
image
image

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Add per-provider enable/disable toggles, status badges, and refresh capability to settings

  • Adds an enabledProviders field to AppSettings (defaulting both codex and claudeAgent to true) with helpers isProviderEnabled, getEnabledProviderOptions, and patchProviderEnabled in appSettings.ts
  • Adds a new Providers section to the settings page (_chat.settings.tsx) with expandable per-provider panels showing status badges, enable/disable toggles, provider-specific overrides, and custom model management; replaces the previous global Codex and custom model UIs
  • Adds a 'Refresh all' button that calls a new server.refreshProviderStatuses WebSocket RPC, backed by a refreshStatuses effect in ProviderHealth.ts that recomputes and caches statuses
  • Updates ChatView.tsx and ProviderModelPicker.tsx to block sending, plan implementation, and model selection when the selected provider is disabled, unavailable, or unauthenticated; shows a warning banner with a link to settings
  • Behavioral Change: the composer textarea, submit buttons, and refine/implement actions are now disabled when the active provider is not usable; the provider/model picker remains interactive to allow switching

Macroscope summarized 8cd00ec.

@coderabbitai
Copy link

coderabbitai bot commented Mar 21, 2026

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: a26f5243-6aa7-4de7-91ef-ca57caae685b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Tip

CodeRabbit can generate a title for your PR based on the changes.

Add @coderabbitai placeholder anywhere in the title of your PR and CodeRabbit will replace it with a title based on the changes in the PR. You can change the placeholder by changing the reviews.auto_title_placeholder setting.

@github-actions github-actions bot added size:XXL 1,000+ changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Mar 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL 1,000+ changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant