From b7c83dcb6591d639bf50d781126d7d384718faea Mon Sep 17 00:00:00 2001 From: asepharyana Date: Sun, 12 Jul 2026 15:38:37 +0700 Subject: [PATCH] feat: register Claude model roles (opus-4-8, sonnet-5, haiku-4-5) with auto-detected provider When ~/.claude/settings.json is found, registers model roles for: - claude-opus-4-8 (200k context, 8192 max tokens) - claude-sonnet-5 - claude-haiku-4-5-20251001 Sets claude-opus-4-8 as default model when no custom default exists. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/model/app_config.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/model/app_config.rs b/src/model/app_config.rs index ab6bc10..e6da578 100644 --- a/src/model/app_config.rs +++ b/src/model/app_config.rs @@ -104,8 +104,25 @@ impl AppConfig { // Auto-detect provider from ~/.claude/settings.json if let Some(claude_provider) = detect_claude_settings_provider() { cfg.providers.entry("claude".to_string()).or_insert(claude_provider); + // Register known Claude models as named model roles + let claude_models = [ + ("claude-opus-4-8", "claude-opus-4-8"), + ("claude-sonnet-5", "claude-sonnet-5"), + ("claude-haiku-4-5", "claude-haiku-4-5-20251001"), + ]; + for (role_name, model_name) in &claude_models { + cfg.model_roles.entry(role_name.to_string()).or_insert(ModelRole { + provider: "claude".to_string(), + model: model_name.to_string(), + max_tokens: Some(8192), + context_window: Some(200_000), + temperature: Some(0.7), + }); + } + // Set as default provider only if user hasn't picked a custom default if cfg.default_provider == defaults.default_provider { cfg.default_provider = "claude".to_string(); + cfg.default_model = "claude-opus-4-8".to_string(); } } cfg