fix: auto-select default model after login to prevent 'No model configured' error
When users logged in via /login but never explicitly ran /model, the agent would throw 'No model configured' on every action. Now GSD auto-selects a default model from available authenticated providers on startup. Preference order: claude-sonnet-4-20250514 > any Anthropic model > first available. Also documented /model command in README Getting Started section. Closes #4
This commit is contained in:
parent
5c64f991bc
commit
0181ff2dca
2 changed files with 21 additions and 0 deletions
|
|
@ -132,6 +132,12 @@ gsd
|
|||
|
||||
Select from 20+ providers — Anthropic, OpenAI, Google, OpenRouter, GitHub Copilot, and more. If you have a Claude Max or Copilot subscription, the OAuth flow handles everything. Otherwise, paste your API key when prompted.
|
||||
|
||||
GSD auto-selects a default model after login. To switch models later:
|
||||
|
||||
```bash
|
||||
/model
|
||||
```
|
||||
|
||||
### Use it
|
||||
|
||||
Open a terminal in your project and run:
|
||||
|
|
|
|||
15
src/cli.ts
15
src/cli.ts
|
|
@ -17,6 +17,21 @@ await runWizardIfNeeded(authStorage)
|
|||
const modelRegistry = new ModelRegistry(authStorage)
|
||||
const settingsManager = SettingsManager.create(agentDir)
|
||||
|
||||
// Auto-select a default model if none is configured.
|
||||
// This prevents the "No model configured" error for users who logged in
|
||||
// but never explicitly ran /model to pick one.
|
||||
if (!settingsManager.getDefaultModel()) {
|
||||
const availableModels = modelRegistry.getAvailable()
|
||||
if (availableModels.length > 0) {
|
||||
// Prefer Anthropic's default (claude-sonnet-4-20250514), then any Anthropic model, then first available
|
||||
const preferred =
|
||||
availableModels.find((m) => m.provider === 'anthropic' && m.id === 'claude-sonnet-4-20250514') ||
|
||||
availableModels.find((m) => m.provider === 'anthropic') ||
|
||||
availableModels[0]
|
||||
settingsManager.setDefaultModelAndProvider(preferred.provider, preferred.id)
|
||||
}
|
||||
}
|
||||
|
||||
// GSD always uses quiet startup — the gsd extension renders its own branded header
|
||||
if (!settingsManager.getQuietStartup()) {
|
||||
settingsManager.setQuietStartup(true)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue