From 66c68283595045d02ddaf5b187b2cd5cc4f9c6e8 Mon Sep 17 00:00:00 2001 From: atlas Date: Thu, 9 Jul 2026 01:05:53 +0200 Subject: [PATCH] fix(#2290): register_agent in handle_spawn (event-driven, replaces stale spawn_poll comment) --- hive-c0re/src/server.rs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/hive-c0re/src/server.rs b/hive-c0re/src/server.rs index 466fa410..bf0b3779 100644 --- a/hive-c0re/src/server.rs +++ b/hive-c0re/src/server.rs @@ -205,14 +205,18 @@ async fn handle_spawn(coord: &Arc, name: &str) -> Result { if let Err(e) = coord.power.set(name, crate::power::Wanted::Up) { tracing::warn!(%name, error = ?e, "agent_power: set wanted=up failed"); } + // Bind the MCP listener now that the container is starting up. + // The harness connects to this socket on its first turn. + coord.register_agent(name)?; coord.notify_manager(&hive_sh4re::HelperEvent::Spawned { agent: name.to_owned(), ok: true, @@ -223,7 +227,8 @@ async fn handle_spawn(coord: &Arc, name: &str) -> Result { - coord.unregister_agent(name); + // Spawn failed: register_agent was never called, so there is + // nothing to unregister. Notify the manager and propagate. coord.notify_manager(&hive_sh4re::HelperEvent::Spawned { agent: name.to_owned(), ok: false,