From 6a3d5220012b3485e709e44abe6ee8016198d5d0 Mon Sep 17 00:00:00 2001 From: Taylor Ho Date: Tue, 25 Aug 2026 04:41:57 -0700 Subject: [PATCH] test(desktop): cover local relay skill spawn wiring Co-authored-by: Rizz <302abe414ca6e3134763d2539bfcf145aea2a63fe5f8455204ed602fd40cf381@buzz.block.builderlab.xyz> Signed-off-by: Taylor Ho --- .../src/managed_agents/relay_skills.rs | 22 ++++++++++++++----- .../src-tauri/src/managed_agents/runtime.rs | 4 ++-- .../tests/assigned_relay_skills.rs | 7 ++++-- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/desktop/src-tauri/src/managed_agents/relay_skills.rs b/desktop/src-tauri/src/managed_agents/relay_skills.rs index 78b10ef558..16b6ec8e86 100644 --- a/desktop/src-tauri/src/managed_agents/relay_skills.rs +++ b/desktop/src-tauri/src/managed_agents/relay_skills.rs @@ -27,6 +27,19 @@ const MAX_MY_RELAY_SKILL_NOTES: usize = 500; const MAX_RELAY_SKILL_TITLE_BYTES: usize = 280; const ASSIGNED_RELAY_SKILLS_ENV: &str = "BUZZ_ACP_ASSIGNED_RELAY_SKILLS"; +pub(crate) fn resolve_and_apply_assigned_relay_skills_env<'a>( + command: &mut std::process::Command, + record: &'a crate::managed_agents::ManagedAgentRecord, + personas: &'a [crate::managed_agents::AgentDefinition], +) -> Result<&'a [String], String> { + let assigned = + crate::managed_agents::effective_config::resolve_effective_assigned_relay_skills( + record, personas, + )?; + apply_assigned_relay_skills_env(command, assigned); + Ok(assigned) +} + pub(crate) fn apply_assigned_relay_skills_env( command: &mut std::process::Command, coordinates: &[String], @@ -736,12 +749,9 @@ mod tests { let definitions = [definition]; let assigned = - crate::managed_agents::effective_config::resolve_effective_assigned_relay_skills( - &record, - &definitions, - ) - .unwrap(); - apply_assigned_relay_skills_env(&mut command, assigned); + resolve_and_apply_assigned_relay_skills_env(&mut command, &record, &definitions) + .unwrap(); + assert_eq!(assigned, definitions[0].assigned_relay_skills); let env = command .get_envs() diff --git a/desktop/src-tauri/src/managed_agents/runtime.rs b/desktop/src-tauri/src/managed_agents/runtime.rs index fc0ef17b5f..9710a83609 100644 --- a/desktop/src-tauri/src/managed_agents/runtime.rs +++ b/desktop/src-tauri/src/managed_agents/runtime.rs @@ -15,6 +15,7 @@ use crate::{ }; use super::claude_config::{apply_claude_model_env, apply_effort_env}; +use super::relay_skills::resolve_and_apply_assigned_relay_skills_env; mod path; pub(in crate::managed_agents) use path::build_augmented_path; pub(crate) use path::{compose_path_entries, should_skip_claude_executable, should_use_inherited}; @@ -695,8 +696,7 @@ pub fn spawn_agent_child( command.env_remove("BUZZ_ACP_TEAM_INSTRUCTIONS"); } let assigned_relay_skills = - super::effective_config::resolve_effective_assigned_relay_skills(record, &personas)?; - super::relay_skills::apply_assigned_relay_skills_env(&mut command, assigned_relay_skills); + resolve_and_apply_assigned_relay_skills_env(&mut command, record, &personas)?; // Prompt, model, and provider all come from the single `effective_cfg` // resolved at the top of this function — the SAME resolve the spawn-config diff --git a/desktop/src-tauri/src/managed_agents/spawn_snapshot/tests/assigned_relay_skills.rs b/desktop/src-tauri/src/managed_agents/spawn_snapshot/tests/assigned_relay_skills.rs index 73371a4a0a..af9ddaef6e 100644 --- a/desktop/src-tauri/src/managed_agents/spawn_snapshot/tests/assigned_relay_skills.rs +++ b/desktop/src-tauri/src/managed_agents/spawn_snapshot/tests/assigned_relay_skills.rs @@ -18,9 +18,12 @@ fn restart_stamp_uses_live_shared_instructions_and_clears_diff() { let effective = resolve_effective_config(&rec, &personas, &global) .require_resolved() .unwrap(); + let mut command = std::process::Command::new("buzz-acp"); let assigned = - crate::managed_agents::effective_config::resolve_effective_assigned_relay_skills( - &rec, &personas, + crate::managed_agents::relay_skills::resolve_and_apply_assigned_relay_skills_env( + &mut command, + &rec, + &personas, ) .unwrap(); let stamped = SpawnConfigSnapshot::from_inputs(SpawnConfigInputs {