#16388: Fix: Show model selector during onboarding for all auth choices
size: XS
Cluster:
Image Model Enhancements
Fixes #16386
Problem
When running openclaw onboard --install-daemon, the default-model selector did not appear during onboarding. In particular, choosing “Custom (API key)” (or any path that ended up as custom-api-key) skipped the model step, so users had to run openclaw configure --section model afterward.
Cause
The model selector was only run when auth was chosen interactively and auth was not custom-api-key, so custom-API-key users never saw the step.
Change
Always run the default-model selector when auth was chosen interactively, for all auth choices (including Custom API key).
Users can now pick or confirm their default model during onboarding without a separate configure step.
Testing
Run openclaw onboard --install-daemon, choose “Custom (API key)” (or any provider), and confirm the “Default model” step appears before gateway/channel setup.
<!-- greptile_comment -->
<h3>Greptile Summary</h3>
This PR removes the `authChoice !== "custom-api-key"` guard from the model selector step during interactive onboarding. Previously, users who chose "Custom (API key)" during `openclaw onboard --install-daemon` were skipped past the default-model prompt, even though other auth paths showed it. The fix ensures `promptDefaultModel` runs for all interactive auth choices.
- The custom API flow (`promptCustomApiConfig`) already sets a primary model via `applyCustomApiConfig`, so the model selector (with `allowKeep: true`) lets users confirm or override that choice — no duplicate or conflicting model writes occur.
- The change is minimal (one condition removed, one comment added) and correctly scoped to interactive onboarding only (`authChoiceFromPrompt` guards non-interactive/CLI-flag paths).
<h3>Confidence Score: 5/5</h3>
- This PR is safe to merge — it's a minimal, well-scoped condition change with no risk of regressions.
- The change removes one guard condition from a single if-statement. The custom-api-key path already sets a model via `applyCustomApiConfig`, and the model selector uses `allowKeep: true` so users can simply confirm the existing choice. The `preferredProvider` resolves correctly for `custom-api-key`. No new code paths, no API changes, no configuration schema changes.
- No files require special attention.
<sub>Last reviewed commit: 4b8c650</sub>
<!-- greptile_other_comments_section -->
<!-- /greptile_comment -->
Most Similar PRs
#16033: fix: add model configuration step to onboard command
by MisterGuy420 · 2026-02-14
82.0%
#13079: feat: Add OpenAI-compatible API option to CLI for self-hosted models
by MikeWang0316tw · 2026-02-10
79.7%
#9163: Fix: Save Anthropic setup token to config file
by vishaltandale00 · 2026-02-04
77.8%
#6673: fix: preserve allowAny flag in createModelSelectionState for custom...
by tenor0 · 2026-02-01
77.2%
#23286: fix: use configured model in llm-slug-generator instead of hardcoded …
by wsman · 2026-02-22
75.9%
#9739: #9291 fix(models): preserve existing models in models.json when mer...
by ximzzzzz · 2026-02-05
75.9%
#15756: [Security]: strip provider apiKey from models.json before prompt se...
by SecBear · 2026-02-13
75.9%
#21963: fix(cli): models fallbacks add now includes primary model in allowlist
by ashiabbott · 2026-02-20
75.8%
#14836: fix: strip apiKey from models.json to prevent credential exposure
by pahud · 2026-02-12
75.7%
#20962: Fix/context window size for custom api provider
by r4jiv007 · 2026-02-19
75.2%