Merge pull request #85 from folook/fix/task_system_one_way_synchronization

fix(task-system): sync blocks when adding blockedBy dependencies
This commit is contained in:
Xinlu Lai
2026-03-29 23:49:15 +08:00
committed by GitHub

View File

@@ -88,6 +88,15 @@ class TaskManager:
self._clear_dependency(task_id) self._clear_dependency(task_id)
if add_blocked_by: if add_blocked_by:
task["blockedBy"] = list(set(task["blockedBy"] + 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: if add_blocks:
task["blocks"] = list(set(task["blocks"] + add_blocks)) task["blocks"] = list(set(task["blocks"] + add_blocks))
# Bidirectional: also update the blocked tasks' blockedBy lists # Bidirectional: also update the blocked tasks' blockedBy lists