From f11a219b44a9be1afa26edbc6522f00bdcf4c1a9 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 2 May 2026 12:55:13 -0400 Subject: [PATCH] refactor(dag): Audit and cleanup dag_engine.py --- src/dag_engine.py | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/src/dag_engine.py b/src/dag_engine.py index bcc7469..04e52a9 100644 --- a/src/dag_engine.py +++ b/src/dag_engine.py @@ -61,6 +61,14 @@ class TrackDAG: changed = True break + def is_ticket_ready(self, ticket: Ticket) -> bool: + """Returns True if all dependencies of the ticket are completed.""" + for dep_id in ticket.depends_on: + dep = self.ticket_map.get(dep_id) + if not dep or dep.status != 'completed': + return False + return True + def get_ready_tasks(self) -> List[Ticket]: """ Returns a list of tickets that are in 'todo' status and whose dependencies are all 'completed'. @@ -69,16 +77,8 @@ class TrackDAG: """ ready = [] for ticket in self.tickets: - if ticket.status == 'todo': - # Check if all dependencies exist and are completed - all_done = True - for dep_id in ticket.depends_on: - dep = self.ticket_map.get(dep_id) - if not dep or dep.status != 'completed': - all_done = False - break - if all_done: - ready.append(ticket) + if ticket.status == 'todo' and self.is_ticket_ready(ticket): + ready.append(ticket) return ready def has_cycle(self) -> bool: @@ -172,16 +172,8 @@ class ExecutionEngine: task_id: The ID of the task to approve. """ ticket = self.dag.ticket_map.get(task_id) - if ticket and ticket.status == "todo": - # Check if dependencies are met first - all_done = True - for dep_id in ticket.depends_on: - dep = self.dag.ticket_map.get(dep_id) - if not dep or dep.status != "completed": - all_done = False - break - if all_done: - ticket.status = "in_progress" + if ticket and ticket.status == "todo" and self.dag.is_ticket_ready(ticket): + ticket.status = "in_progress" def update_task_status(self, task_id: str, status: str) -> None: """