fix(api): model Opus pakai URL + API custom dari ~/.claude/settings.json
Perbaiki provider claude agar selalu refresh dari settings.json dan menjadi default (claude-opus-4-8) setiap startup: - fix(app_config_repo): ganti or_insert -> insert untuk provider claude — base_url/key dari ~/.claude/settings.json selalu di-refresh, tidak tertutup snapshot lama app_config.json. - fix(app_config_repo): hapus kondisi default_provider == default — saat settings.json terdeteksi, default_provider='claude' dan default_model='claude-opus-4-8' SELALU di-set (sebelumnya skip kalau user pernah ganti provider). - fix(subagent/provider): resolve_subagent_provider fallback ke app_config.default_provider/default_model kalau settings.provider/model kosong — subagent ikut pakai Opus. - test: 4 unit test (parse settings.json, refresh stale provider, custom model, env fallback). Verified live: settings.json terbaca (9router URL + key).
This commit is contained in:
@@ -63,15 +63,21 @@ impl SubagentProvider {
|
||||
|
||||
/// Resolve subagent provider and model from settings.
|
||||
///
|
||||
/// Flow: reads `settings.provider` and `settings.model` → if model is empty,
|
||||
/// Flow: reads `settings.provider` and `settings.model` → if provider is
|
||||
/// empty, falls back to `app_config.default_provider` → if model is empty,
|
||||
/// falls back to the provider config's `default_model` → if that is also
|
||||
/// empty, uses the domain default model constant.
|
||||
/// empty, uses `app_config.default_model` → finally the domain default model
|
||||
/// constant.
|
||||
#[instrument]
|
||||
pub fn resolve_subagent_provider(
|
||||
settings: &zesdex_domain::cms::Settings,
|
||||
app_config: &zesdex_domain::cms::AppConfig,
|
||||
) -> (String, String) {
|
||||
let provider = settings.provider.clone();
|
||||
let provider = if settings.provider.is_empty() {
|
||||
app_config.default_provider.clone()
|
||||
} else {
|
||||
settings.provider.clone()
|
||||
};
|
||||
let model = settings.model.clone();
|
||||
|
||||
// Use the default model from the provider config if available
|
||||
@@ -80,6 +86,7 @@ pub fn resolve_subagent_provider(
|
||||
.providers
|
||||
.get(&provider)
|
||||
.and_then(|p| p.default_model.clone())
|
||||
.or_else(|| Some(app_config.default_model.clone()))
|
||||
.unwrap_or_else(|| zesdex_domain::agent::defaults::DEFAULT_MODEL.to_string())
|
||||
} else {
|
||||
model
|
||||
|
||||
Reference in New Issue
Block a user