From c4844111f131c254032172ab7bf7bed7de0a34cf Mon Sep 17 00:00:00 2001 From: kenny lopez Date: Mon, 27 Jul 2026 15:38:12 +0100 Subject: [PATCH] Normalize fallback runtime identity Signed-off-by: kenny lopez --- .../src/managed_agents/global_config/mod.rs | 12 ++++++- .../src/managed_agents/global_config/tests.rs | 31 +++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/desktop/src-tauri/src/managed_agents/global_config/mod.rs b/desktop/src-tauri/src/managed_agents/global_config/mod.rs index b362ff505..8d7c1de61 100644 --- a/desktop/src-tauri/src/managed_agents/global_config/mod.rs +++ b/desktop/src-tauri/src/managed_agents/global_config/mod.rs @@ -266,7 +266,17 @@ pub(crate) fn global_harness_defaults_apply_to_record( }) .unwrap_or_else(|| preferred_runtime.to_string()); - record.agent_command.trim() == preferred_command.trim() + let record_command = record.agent_command.trim(); + let preferred_command = preferred_command.trim(); + match ( + crate::managed_agents::known_acp_runtime(record_command), + crate::managed_agents::known_acp_runtime(preferred_command), + ) { + (Some(record_runtime), Some(preferred_runtime)) => { + record_runtime.id == preferred_runtime.id + } + _ => record_command == preferred_command, + } } /// Return global env vars with harness-dependent defaults masked when an diff --git a/desktop/src-tauri/src/managed_agents/global_config/tests.rs b/desktop/src-tauri/src/managed_agents/global_config/tests.rs index 01278b719..4d72ca0fd 100644 --- a/desktop/src-tauri/src/managed_agents/global_config/tests.rs +++ b/desktop/src-tauri/src/managed_agents/global_config/tests.rs @@ -524,6 +524,37 @@ fn implicit_fallback_override_masks_defaults_from_a_different_preferred_runtime( ); } +#[test] +fn implicit_fallback_alias_inherits_defaults_from_the_same_preferred_runtime() { + let mut record = bare_record(); + record.persona_id = Some("p1".to_string()); + record.agent_command = "claude-code-acp".to_string(); + record.agent_command_override = Some("claude-code-acp".to_string()); + record.agent_command_override_is_implicit = true; + let personas = vec![persona("p1", None, None)]; + let global = GlobalAgentConfig { + env_vars: BTreeMap::from([ + ("BUZZ_AGENT_THINKING_EFFORT".to_string(), "high".to_string()), + ("SHARED_API_KEY".to_string(), "kept".to_string()), + ]), + model: Some("global-model".to_string()), + provider: Some("global-provider".to_string()), + preferred_runtime: Some("claude".to_string()), + }; + + assert_eq!( + resolve_effective_model_provider(&record, &personas, &global), + ( + Some("global-model".to_string()), + Some("global-provider".to_string()) + ) + ); + assert_eq!( + global_env_vars_for_record(&record, &personas, &global), + global.env_vars + ); +} + #[test] fn explicit_harness_override_keeps_legacy_global_defaults() { let mut record = bare_record();