Toggle on immediately spawns the agent if not running

Co-Authored-By: Proof of Concept <poc@bcachefs.org>
This commit is contained in:
ProofOfConcept 2026-04-09 00:53:54 -04:00
parent c73f037265
commit 5b75ad3553

View file

@ -102,11 +102,15 @@ impl Unconscious {
} }
/// Toggle an agent on/off by name. Returns new enabled state. /// 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<bool> { pub fn toggle(&mut self, name: &str) -> Option<bool> {
let agent = self.agents.iter_mut().find(|a| a.name == name)?; let idx = self.agents.iter().position(|a| a.name == name)?;
agent.enabled = !agent.enabled; self.agents[idx].enabled = !self.agents[idx].enabled;
let new_state = agent.enabled; let new_state = self.agents[idx].enabled;
self.save_enabled(); self.save_enabled();
if new_state && !self.agents[idx].is_running() {
self.spawn_agent(idx);
}
Some(new_state) Some(new_state)
} }