From d202abcd1bd87d31b18ec24f7d920836645ed4ea Mon Sep 17 00:00:00 2001 From: Pim Hutting Date: Mon, 12 Jan 2026 12:51:24 +0100 Subject: [PATCH] fix: phases update correctly there was a bug where phases would not update without restarting cb ref: N25B-400 --- .../agents/bdi/bdi_program_manager.py | 10 ++++----- .../user_interrupt/user_interrupt_agent.py | 21 ------------------- 2 files changed, 5 insertions(+), 26 deletions(-) diff --git a/src/control_backend/agents/bdi/bdi_program_manager.py b/src/control_backend/agents/bdi/bdi_program_manager.py index f50fcf0..092a2c6 100644 --- a/src/control_backend/agents/bdi/bdi_program_manager.py +++ b/src/control_backend/agents/bdi/bdi_program_manager.py @@ -67,14 +67,14 @@ class BDIProgramManager(BaseAgent): await self.send(msg) - def handle_message(self, msg: InternalMessage): + async def handle_message(self, msg: InternalMessage): match msg.thread: case "transition_phase": phases = json.loads(msg.body) - self._transition_phase(phases["old"], phases["new"]) + await self._transition_phase(phases["old"], phases["new"]) - def _transition_phase(self, old: str, new: str): + async def _transition_phase(self, old: str, new: str): if old != str(self._phase.id): self.logger.warning( f"Phase transition desync detected! ASL requested move from '{old}', " @@ -90,8 +90,8 @@ class BDIProgramManager(BaseAgent): if str(phase.id) == new: self._phase = phase - self._send_beliefs_to_semantic_belief_extractor() - self._send_goals_to_semantic_belief_extractor() + await self._send_beliefs_to_semantic_belief_extractor() + await self._send_goals_to_semantic_belief_extractor() # Notify user interaction agent msg = InternalMessage( diff --git a/src/control_backend/agents/user_interrupt/user_interrupt_agent.py b/src/control_backend/agents/user_interrupt/user_interrupt_agent.py index 90f4e7a..c42449a 100644 --- a/src/control_backend/agents/user_interrupt/user_interrupt_agent.py +++ b/src/control_backend/agents/user_interrupt/user_interrupt_agent.py @@ -260,27 +260,6 @@ class UserInterruptAgent(BaseAgent): ) await self.send(out_msg) - async def _send_to_program_manager(self, belief_id: str): - """ - Send a button_override belief to the BDIProgramManager. - - :param belief_id: The belief_id that overrides the goal/trigger/conditional norm. - this id can belong to a basic belief or an inferred belief. - See also: https://utrechtuniversity.youtrack.cloud/articles/N25B-A-27/UI-components - """ - data = {"belief": belief_id} - message = InternalMessage( - to=settings.agent_settings.bdi_program_manager_name, - sender=self.name, - body=json.dumps(data), - thread="belief_override_id", - ) - await self.send(message) - self.logger.info( - "Sent button_override belief with id '%s' to Program manager.", - belief_id, - ) - async def _send_to_bdi(self, thread: str, body: str): """Send slug of trigger to BDI""" msg = InternalMessage(