diff --git a/crates/openfang-kernel/src/registry.rs b/crates/openfang-kernel/src/registry.rs index f1f18dbf..b3c3a496 100644 --- a/crates/openfang-kernel/src/registry.rs +++ b/crates/openfang-kernel/src/registry.rs @@ -248,8 +248,12 @@ impl AgentRegistry { /// Update an agent's name (also updates the name index). pub fn update_name(&self, id: AgentId, new_name: String) -> OpenFangResult<()> { - if self.name_index.contains_key(&new_name) { - return Err(OpenFangError::AgentAlreadyExists(new_name)); + if let Some(existing_id) = self.name_index.get(&new_name).as_deref().copied() { + if existing_id != id { + return Err(OpenFangError::AgentAlreadyExists(new_name)); + } + // Same agent owns this name — no-op + return Ok(()); } let mut entry = self .agents