summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/tui/internal/app/app.go17
1 files changed, 14 insertions, 3 deletions
diff --git a/packages/tui/internal/app/app.go b/packages/tui/internal/app/app.go
index 48f4684fe..a07637794 100644
--- a/packages/tui/internal/app/app.go
+++ b/packages/tui/internal/app/app.go
@@ -417,7 +417,18 @@ func (a *App) InitializeProvider() tea.Cmd {
}
}
- // Priority 3: Recent model usage (most recently used model)
+ // Priority 3: Current agent's preferred model
+ if selectedProvider == nil && a.Agent().Model.ModelID != "" {
+ if provider, model := findModelByProviderAndModelID(providers, a.Agent().Model.ProviderID, a.Agent().Model.ModelID); provider != nil && model != nil {
+ selectedProvider = provider
+ selectedModel = model
+ slog.Debug("Selected model from current agent", "provider", provider.ID, "model", model.ID, "agent", a.Agent().Name)
+ } else {
+ slog.Debug("Agent model not found", "provider", a.Agent().Model.ProviderID, "model", a.Agent().Model.ModelID, "agent", a.Agent().Name)
+ }
+ }
+
+ // Priority 4: Recent model usage (most recently used model)
if selectedProvider == nil && len(a.State.RecentlyUsedModels) > 0 {
recentUsage := a.State.RecentlyUsedModels[0] // Most recent is first
if provider, model := findModelByProviderAndModelID(providers, recentUsage.ProviderID, recentUsage.ModelID); provider != nil &&
@@ -436,7 +447,7 @@ func (a *App) InitializeProvider() tea.Cmd {
}
}
- // Priority 4: State-based model (backwards compatibility)
+ // Priority 5: State-based model (backwards compatibility)
if selectedProvider == nil && a.State.Provider != "" && a.State.Model != "" {
if provider, model := findModelByProviderAndModelID(providers, a.State.Provider, a.State.Model); provider != nil &&
model != nil {
@@ -448,7 +459,7 @@ func (a *App) InitializeProvider() tea.Cmd {
}
}
- // Priority 5: Internal priority fallback (Anthropic preferred, then first available)
+ // Priority 6: Internal priority fallback (Anthropic preferred, then first available)
if selectedProvider == nil {
// Try Anthropic first as internal priority
if provider := findProviderByID(providers, "anthropic"); provider != nil {