use crate::config::Config;
use crate::services::SessionService;
use anyhow::Result;
pub fn force_default_pair(config: &Config) -> Option<(String, String)> {
let (provider, model) = config.providers.active_provider_and_model();
let section = crate::brain::provider::factory::provider_config_by_name(config, &provider)?;
if !section.force_default {
return None;
}
Some((provider, model))
}
pub async fn apply_force_default(config: &Config, session_svc: &SessionService) -> Result<usize> {
let Some((provider, model)) = force_default_pair(config) else {
return Ok(0);
};
let updated = session_svc
.set_provider_model_all_sessions(&provider, &model)
.await?;
if updated > 0 {
tracing::info!(
"force_default (#466): pushed {provider}/{model} to {updated} session(s) on reload"
);
}
Ok(updated)
}