From 5b75ad35535f84624ee5e1f87c72f5cfb2837934 Mon Sep 17 00:00:00 2001 From: ProofOfConcept Date: Thu, 9 Apr 2026 00:53:54 -0400 Subject: [PATCH] Toggle on immediately spawns the agent if not running Co-Authored-By: Proof of Concept --- src/mind/unconscious.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/mind/unconscious.rs b/src/mind/unconscious.rs index 82e8128..1799100 100644 --- a/src/mind/unconscious.rs +++ b/src/mind/unconscious.rs @@ -102,11 +102,15 @@ impl Unconscious { } /// Toggle an agent on/off by name. Returns new enabled state. + /// If enabling, immediately spawns the agent if it's not running. pub fn toggle(&mut self, name: &str) -> Option { - let agent = self.agents.iter_mut().find(|a| a.name == name)?; - agent.enabled = !agent.enabled; - let new_state = agent.enabled; + let idx = self.agents.iter().position(|a| a.name == name)?; + self.agents[idx].enabled = !self.agents[idx].enabled; + let new_state = self.agents[idx].enabled; self.save_enabled(); + if new_state && !self.agents[idx].is_running() { + self.spawn_agent(idx); + } Some(new_state) }