From 7884adc7c15b747d5a99cf6a50cc8da10b445c0f Mon Sep 17 00:00:00 2001 From: Alex Clarke Date: Wed, 18 Feb 2026 09:12:32 -0700 Subject: [PATCH] fix: Clean up orphaned sub-agents when the parent agent --- src/config/mod.rs | 6 +++++- src/function/supervisor.rs | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/config/mod.rs b/src/config/mod.rs index 34e0234..7e184d9 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -1,10 +1,10 @@ mod agent; mod input; mod macros; +mod prompts; mod role; mod session; pub(crate) mod todo; -mod prompts; pub use self::agent::{Agent, AgentVariables, complete_agent_variables, list_agents}; pub use self::input::Input; @@ -1898,6 +1898,10 @@ impl Config { self.exit_session()?; self.load_functions()?; if self.agent.take().is_some() { + if let Some(ref supervisor) = self.supervisor { + supervisor.read().cancel_all(); + } + self.supervisor.take(); self.rag.take(); self.discontinuous_last_message(); } diff --git a/src/function/supervisor.rs b/src/function/supervisor.rs index 075b11f..67c60b9 100644 --- a/src/function/supervisor.rs +++ b/src/function/supervisor.rs @@ -305,6 +305,10 @@ fn run_child_agent( input = input.merge_tool_results(output, tool_results); } + if let Some(ref supervisor) = child_config.read().supervisor { + supervisor.read().cancel_all(); + } + Ok(accumulated_output) }) }