Skip to content

feat: update provider row after saving credentials#8914

Merged
kalvinnchau merged 1 commit intomainfrom
kalvin/provider-entry-state
Apr 29, 2026
Merged

feat: update provider row after saving credentials#8914
kalvinnchau merged 1 commit intomainfrom
kalvin/provider-entry-state

Conversation

@kalvinnchau
Copy link
Copy Markdown
Collaborator

Category: fix
User Impact: Provider settings now show edit and disconnect controls immediately after users save credentials.
Problem: After entering an API key for a model provider, the expanded row stayed in a disabled saved state until the user collapsed and reopened it. That made the successful setup feel incomplete and hid the next available actions.
Solution: The provider row now follows the connected provider status immediately after setup save, so the expanded view switches directly to edit and disconnect. A regression test covers the Google Gemini API key setup flow.

File changes

ui/goose2/src/features/settings/ui/ModelProviderRow.tsx
Removes the local setup-layout preservation state that kept newly configured providers in the saved setup panel. Connected providers with fields now always render the connected field controls once their status updates.

ui/goose2/src/features/settings/ui/tests/ModelProviderRow.test.tsx
Adds a first-time Google Gemini setup test that saves an API key, updates the row to connected, and verifies edit and disconnect appear without reopening the provider row.

  1. Open goose2 provider settings.
  2. Expand Google Gemini while it is not configured.
  3. Enter an API key and save.
  4. Confirm the expanded row immediately shows Edit and Disconnect instead of a disabled Saved button.

Screenshots/Demos

Before: saving a new API key left the row showing a disabled Saved button until the provider accordion was collapsed and reopened.

After: saving a new API key switches the open row directly to the connected state with Edit and Disconnect visible.

Verification: ./bin/pnpm --dir ui/goose2 test src/features/settings/ui/__tests__/ModelProviderRow.test.tsx

switch first-time provider setup from the saved state directly to the connected controls after credentials are saved. this avoids requiring users to collapse and reopen the provider row before edit and
disconnect are available.
@kalvinnchau kalvinnchau changed the title update provider row after saving credentials feat: update provider row after saving credentials Apr 29, 2026
Copy link
Copy Markdown
Collaborator

@baxen baxen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@kalvinnchau kalvinnchau added this pull request to the merge queue Apr 29, 2026
Merged via the queue into main with commit 59c5693 Apr 29, 2026
24 checks passed
@kalvinnchau kalvinnchau deleted the kalvin/provider-entry-state branch April 29, 2026 18:09
lifeizhou-ap added a commit that referenced this pull request Apr 30, 2026
* main: (24 commits)
  fix: copy and content improvements in goose2 (#8886)
  feat: make ollama host configurable in goose2 (#8912)
  polish sidebar navigation and project icons (#8896)
  fix: model picker stays usable during provider loading (#8900)
  feat: update provider row after saving credentials (#8914)
  feat: support google model inventory refresh (#8913)
  chore: Added goose 2 UI refactor review skill (#8903)
  blog: goose with peekaboo (#8884)
  blog: Built-in Local Inference blogpost. (#8808)
  perf: parallelize provider resolution and eagerly init SQLite pool (#8899)
  refactor: update goose2 credential management behind provider-scoped ACP/core API (#8887)
  fix: handle acp requests concurrently (#8781)
  build: set LLAMA_STATIC_CRT for Windows CUDA (#8901)
  perf: deduplicate _goose/providers/list RPC call at startup (#8873)
  chore: add a bit more instructions in the release pr (#8890)
  chore: disable spellcheck in model search (#8889)
  add skills to the chat composer (#8881)
  mergeable configs + cleanup (#8378)
  refactor: agent provider to use explicit type states (#8879)
  [goose2] MCP Apps: hydrate and replay app payloads in Goose2 (#8632)
  ...
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.

2 participants