diff --git a/agents/s07_task_system.py b/agents/s07_task_system.py index 82b16af62..90a1c5718 100644 --- a/agents/s07_task_system.py +++ b/agents/s07_task_system.py @@ -87,6 +87,15 @@ def update(self, task_id: int, status: str = None, self._clear_dependency(task_id) if add_blocked_by: task["blockedBy"] = list(set(task["blockedBy"] + add_blocked_by)) + # Bidirectional: also update the blocker tasks' blocks lists + for blocker_id in add_blocked_by: + try: + blocker = self._load(blocker_id) + if task_id not in blocker["blocks"]: + blocker["blocks"].append(task_id) + self._save(blocker) + except ValueError: + pass if add_blocks: task["blocks"] = list(set(task["blocks"] + add_blocks)) # Bidirectional: also update the blocked tasks' blockedBy lists