MCPcopy Create free account
hub / github.com/GCWing/BitFun / apply_model_selection

Method apply_model_selection

src/apps/cli/src/ui/startup.rs:1314–1351  ·  view source on GitHub ↗
(&mut self, selected: &ModelItem)

Source from the content-addressed store, hash-verified

1312 }
1313
1314 fn apply_model_selection(&mut self, selected: &ModelItem) {
1315 let selected_id = selected.id.clone();
1316 let selected_display_name = format!("{} / {}", selected.model_name, selected.name);
1317 let modes = self.get_mode_agents();
1318
1319 let success = tokio::task::block_in_place(|| {
1320 tokio::runtime::Handle::current().block_on(async {
1321 let config_service = match GlobalConfigManager::get_service().await {
1322 Ok(s) => s,
1323 Err(_) => return false,
1324 };
1325
1326 if let Err(e) = config_service
1327 .set_config("ai.default_models.primary", &selected_id)
1328 .await
1329 {
1330 tracing::error!("Failed to set default primary model: {}", e);
1331 return false;
1332 }
1333
1334 for mode in &modes {
1335 let path = format!("ai.agent_models.{}", mode.id);
1336 if let Err(e) = config_service.set_config(&path, &selected_id).await {
1337 tracing::error!("Failed to set model for mode '{}': {}", mode.id, e);
1338 }
1339 }
1340
1341 true
1342 })
1343 });
1344
1345 if success {
1346 self.model_display_name = selected_display_name.clone();
1347 self.status = Some(format!("Model switched to: {}", selected_display_name));
1348 } else {
1349 self.status = Some("Failed to switch model".to_string());
1350 }
1351 }
1352
1353 /// Handle provider selection result (step 1 → step 2 of add model)
1354 fn handle_provider_selection(&mut self, selection: ProviderSelection) {

Callers 1

handle_keyMethod · 0.45

Calls 3

set_configMethod · 0.80
cloneMethod · 0.45
get_mode_agentsMethod · 0.45

Tested by

no test coverage detected