Feat/Add multiple provider keys in BYOK onboarding (task 5)#631
Merged
prakhar1605 merged 2 commits intoJun 22, 2026
Conversation
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.
What
Lets users add multiple provider keys during BYOK onboarding. After saving a
provider, they can either finish or add another provider's key; all saved keys
persist together and their models are available in the chat picker. (Addresses
BYOK task 5. Builds on #629 — please review/merge that first.)
Why
Previously onboarding saved one provider and immediately advanced, so a user could
only configure a single provider during setup. Some users want several (e.g. an
Anthropic key for chat and a Gemini key as well).
How
advances in one click.
testAndSaveActiveProvider()helper withtwo wrappers:
handleTestAndSaveLlmConfig(save + advance, unchanged behavior) andhandleTestAndAddAnother(save + stay).connectedFlavorsset tracking which providers have been saved this session;connected provider cards show a checkmark.
provider the user hasn't connected yet (so the form is fresh and the buttons re-enable
for the next key).
so the user can finish even from an empty form (no dead-end).
repo.setConfigalready merges each provider into theconfig's
providersmap without overwriting the others.Files changed
apps/x/apps/renderer/src/components/onboarding/use-onboarding-state.tsapps/x/apps/renderer/src/components/onboarding/steps/llm-setup-step.tsxHow to test
the form switches to a fresh provider, and the primary button reads "Continue".
~/.rowboat/config/models.json→ theprovidersmap contains BOTH providers,each with its own key + models.
Known follow-ups
image / video / embedding entries). The model-filtering follow-up will clean these
up across all providers.