From 048072b4f3a7edcc37deb3f9ac1910b83bc4c9a7 Mon Sep 17 00:00:00 2001 From: Zac Gaetano Date: Sun, 5 Apr 2026 12:09:39 -0400 Subject: [PATCH] fix: dynamic col names + no-duplicate assistant/result event handling --- backend/main.py | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/backend/main.py b/backend/main.py index e57a80f..d594ce6 100644 --- a/backend/main.py +++ b/backend/main.py @@ -488,16 +488,13 @@ async def _run_scheduled_task(task_id: str): c = conn.cursor() c.execute("SELECT * FROM tasks WHERE id=?", (task_id,)) row = c.fetchone() + cols = [d[0] for d in c.description] conn.close() if not row: logger.error(f"Scheduled task {task_id} not found") return - cols = ["id", "name", "description", "prompt", "schedule_type", "schedule_value", - "enabled", "created_at", "last_run", "next_run", "status", - "agent_tools", "agent_system_prompt", "agent_max_turns", - "agent_permission_mode", "agent_timeout"] task_data = dict(zip(cols, row)) task = Task(**{k: v for k, v in task_data.items() if k in Task.model_fields}) @@ -789,11 +786,8 @@ async def list_tasks(): conn = sqlite3.connect(DB_PATH) c = conn.cursor() c.execute("SELECT * FROM tasks ORDER BY created_at DESC") + cols = [d[0] for d in c.description] rows = c.fetchall() - cols = ["id", "name", "description", "prompt", "schedule_type", "schedule_value", - "enabled", "created_at", "last_run", "next_run", "status", - "agent_tools", "agent_system_prompt", "agent_max_turns", - "agent_permission_mode", "agent_timeout"] conn.close() return [dict(zip(cols, r)) for r in rows] @@ -840,13 +834,10 @@ async def get_task(task_id: str): c = conn.cursor() c.execute("SELECT * FROM tasks WHERE id=?", (task_id,)) row = c.fetchone() + cols = [d[0] for d in c.description] conn.close() if not row: raise HTTPException(404, "Task not found") - cols = ["id", "name", "description", "prompt", "schedule_type", "schedule_value", - "enabled", "created_at", "last_run", "next_run", "status", - "agent_tools", "agent_system_prompt", "agent_max_turns", - "agent_permission_mode", "agent_timeout"] return dict(zip(cols, row)) @@ -907,14 +898,11 @@ async def run_task_now(task_id: str, background_tasks: BackgroundTasks): c = conn.cursor() c.execute("SELECT * FROM tasks WHERE id=?", (task_id,)) row = c.fetchone() + cols = [d[0] for d in c.description] conn.close() if not row: raise HTTPException(404, "Task not found") - cols = ["id", "name", "description", "prompt", "schedule_type", "schedule_value", - "enabled", "created_at", "last_run", "next_run", "status", - "agent_tools", "agent_system_prompt", "agent_max_turns", - "agent_permission_mode", "agent_timeout"] task_data = dict(zip(cols, row)) task = Task(**{k: v for k, v in task_data.items() if k in Task.model_fields})