guide users to connect a model provider when Goose needs one#8537
Open
guide users to connect a model provider when Goose needs one#8537
Conversation
When no model provider is connected, Goose's agent card now shows a "+" button that smooth-scrolls to the model providers section. Credential changes surface a floating notification card below the settings modal instead of an inline restart banner. Local providers (Ollama, local_inference) are now correctly marked as configured. Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a5204b668e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Reset the dismissed ref when navigating back to Providers so new credential changes surface the restart notice again. Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
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.
Category: improvement
User Impact: When no model provider is connected, Goose's agent card now guides users to the model providers section instead of appearing ready to use. Credential changes surface a floating notification card below the settings modal.
Problem: When a user had no model provider configured, the Goose agent card still showed a green checkmark — implying everything was ready — even though Goose can't function without a model provider. The restart banner was inline and included a restart button that wasn't needed.
Solution: Added a
needs_modelstatus that shows a "+" button with a tooltip on the Goose card when no model provider is connected. Clicking it smooth-scrolls to the model providers section. Replaced the inline restart banner with a floating card below the settings modal (message only, no restart button). The card fades in on credential changes and dismisses when navigating away from providers.Known limitation: Local providers (Ollama, local_inference) don't save credentials, so
configuredIdswon't include them — users running only a local provider will still see the "+" indicator on Goose. This exists because the Tauri app has its own provider config layer (goose_config.rs/provider_defs.rs) that checks status independently from the goosed backend. The backend'scheck_provider_configuredincrates/goose-server/src/routes/utils.rsalready handles local providers correctly (returnstruefor zero-config providers), but the Tauri frontend doesn't use it. Resolving this will likely need engineering support to consolidate the two provider systems so the frontend routes through the backend API.File changes
ui/goose2/src/shared/types/providers.ts
Added
needs_modelto theProviderSetupStatusunion type so agent cards can express that they need a model provider to function.ui/goose2/src/features/providers/hooks/useCredentials.ts
Removed the
restartcallback andrestartAppimport since the floating card no longer has a restart button.ui/goose2/src/features/settings/ui/AgentProviderCard.tsx
Added tooltip-wrapped "+" button that appears when the agent's status is
needs_model, callingonScrollToModelsto guide the user to the model providers section.ui/goose2/src/features/settings/ui/ModelProviderRow.tsx
Removed the
preserveSetupLayoutstate that was preventing the connected panel from rendering after saving — the layout now always reflects the current connection state.ui/goose2/src/features/settings/ui/ProvidersSettings.tsx
Added
scrollToModelscallback with custom eased scroll animation targeting the model providers section. ComputeshasModelProviderfrom configured IDs to drive theneeds_modelstatus for Goose. SignalsonNeedsRestartto the parent when credentials change. AcceptsscrollContainerRefprop for accurate scroll targeting within the settings modal.ui/goose2/src/features/settings/ui/SettingsModal.tsx
Added
contentScrollRefon the scrollable content container and passes it toProvidersSettings. Wraps the modal in a stacked layout container to accommodate the floating restart card below the modal. The card fades in when credentials change and auto-dismisses when navigating away from providers.ui/goose2/src/shared/ui/tooltip.tsx
Added optional
showArrowprop (defaults totrue) so consumers can hide the tooltip arrow when it doesn't suit the context.ui/goose2/src/shared/i18n/locales/en/settings.json
Updated section titles to "Agent Providers" / "Model Providers" for clarity. Revised descriptions to explain the relationship between Goose and model providers. Added
connectModelLabelandconnectModelTooltipkeys. RemovedrestartButtonkey.ui/goose2/src/shared/i18n/locales/es/settings.json
Spanish translations matching the revised English copy.
How to verify