feat: Add provider health and per-provider controls#1289
feat: Add provider health and per-provider controls#1289huxcrux wants to merge 28 commits intopingdotgg:mainfrom
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
|
Changed this PR from modifying settings (after the settings change where merged) to only focus on provider health/controls instead |
c0aedc6 to
ed8c49b
Compare
There was a problem hiding this comment.
use effect/Schema and Schema.fromJsonString(expectedschema) instead of ad-hoc parse helpers and try-catch wrapped JSON.parse/stringify
There was a problem hiding this comment.
This is now fixed :)
|
i tihnk we should have the custom models for each provider under the same collapsible component, so it's not spread out so widely |
6439f12 to
4a6cb6a
Compare
4888b5e to
64a6f91
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.






What Changed
Added provider health visibility and per-provider enablement across Settings and provider selection.
Why
As more providers are added, provider availability needs to be explicit and predictable across the app.
This change makes provider health visible in one place, gives users a direct way to disable providers individually, and ensures the picker only allows selecting providers that are actually usable.
UI Changes
Added aa few extra pictures to show the different states when a provider is not found, unauthed or working fine.
Provider picker:
Settings:
Checklist
Note
Add provider health monitoring, per-provider enable/disable controls, and CLI login/logout to settings
ProviderHealthservice that probes Codex and Claude CLI binaries for version, auth status, and account plan; results are cached and refreshable on demand via new WebSocket RPC methods (server.refreshProviderStatuses,server.refreshProviderStatus,server.providerLogin,server.providerLogout).enabledProvidersfield (defaulting totrue) and addsisProviderEnabled/patchProviderEnabledhelpers inappSettings.ts.Providerssection to the Settings page (_chat.settings.tsx) where users can view status, refresh detection, toggle enabled, log in/out, override binary paths, and manage custom models per provider.ChatView.tsxto disable the composer and send actions when the selected provider is not usable, show an inline issue banner with an "Open Settings" shortcut, and filter provider options to only enabled providers.ProviderModelPicker.tsxto visually disable and label unusable providers and prevent switching to them.wsServerandGitActionsControl.serverGetConfignow queries provider health on every call instead of returning a cached snapshot, adding probe latency to that request path.Macroscope summarized d52b1b1.
Note
Medium Risk
Touches provider readiness/auth probing and WebSocket RPC surface area (new refresh/login/logout flows) and changes how clients select/disable providers, which could impact session start and settings UX if statuses/options are miscomputed.
Overview
Adds a richer
ProviderHealthservice that probes Codex/Claude CLIs for version, auth status, and optional plan info, including a Codex fallback that reads the plan viacodex app-serverwhenlogin statusomits it.Extends the server WebSocket API to support on-demand provider status refresh and provider login/logout, and updates
wsServerto always read provider statuses dynamically (vs. snapshotting once at startup).Introduces per-provider enable/disable settings (
enabledProviders) and threads this through the UI: provider/model pickers now hide or disable unusable providers (disabled/not found/unauthenticated), the chat composer blocks sends when the selected provider isn’t usable and links to Settings, and the Settings page is reworked into per-provider panels showing status, refresh, auth actions, and CLI overrides.Also adjusts tests for new provider plan parsing (including snake_case fields), Bun/node sqlite compatibility, and removes the client-side subscription to git action progress events.
Written by Cursor Bugbot for commit d52b1b1. This will update automatically on new commits. Configure here.