feat(console): ProviderHealthPanel — inline login action + inactive provider collapse#295
Open
feat(console): ProviderHealthPanel — inline login action + inactive provider collapse#295
Conversation
…ollapse
Adds a shared ProviderHealthPanel component used by both Dashboard and
Gateway pages to surface provider health with actionable UI.
- New component: console/src/components/provider-health.tsx
- Shared ProviderHealthPanel with ProviderRow
- Resolves status (healthy / warning / inactive / down) per provider
- Inactive local providers (ollama, lmstudio, llamacpp, vllm) that are
not running collapse into a single footer line instead of red rows
- Warning rows get an amber left-border accent + pulsing status dot
- "Log in →" appears inline as an action chip when loginRequired is true
(no provider name hardcoding — driven by backend flag)
- Backend: adds loginRequired?: boolean to GatewayProviderHealthEntry
and sets it in buildGatewayProviderHealth when codex.reloginRequired
- Console types: propagates loginRequired onto the providerHealth record
- gateway.tsx and dashboard.tsx replaced their list-stack provider rows
with <ProviderHealthPanel>
After #289 added confirmation dialogs for destructive actions, the restart-gateway and forget-token tests needed an extra click to confirm through the dialog before the underlying action fires.
6e3a5cb to
2ed5759
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ProviderHealthPanelcomponent (provider-health.tsx+ CSS module) used by both Dashboard and Gateway pagesloginRequired: truefrom the backend, its row gets an amber left-border accent, a pulsing warning dot, and an inline Log in → action chip — no provider name hardcodingloginRequired?: booleantoGatewayProviderHealthEntryand set it inbuildGatewayProviderHealthwhencodex.reloginRequiredVisual states
ollama · lmstudio not running locallyTest plan
codex.reloginRequired = true: amber row + pulsing dot + "Log in →" chip appears; clicking navigates to/confignpm run typecheckpasses inconsole/