fix: dynamic col names + no-duplicate assistant/result event handling
This commit is contained in:
parent
cbc420d22a
commit
048072b4f3
1 changed files with 4 additions and 16 deletions
|
|
@ -488,16 +488,13 @@ async def _run_scheduled_task(task_id: str):
|
||||||
c = conn.cursor()
|
c = conn.cursor()
|
||||||
c.execute("SELECT * FROM tasks WHERE id=?", (task_id,))
|
c.execute("SELECT * FROM tasks WHERE id=?", (task_id,))
|
||||||
row = c.fetchone()
|
row = c.fetchone()
|
||||||
|
cols = [d[0] for d in c.description]
|
||||||
conn.close()
|
conn.close()
|
||||||
|
|
||||||
if not row:
|
if not row:
|
||||||
logger.error(f"Scheduled task {task_id} not found")
|
logger.error(f"Scheduled task {task_id} not found")
|
||||||
return
|
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_data = dict(zip(cols, row))
|
||||||
task = Task(**{k: v for k, v in task_data.items() if k in Task.model_fields})
|
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)
|
conn = sqlite3.connect(DB_PATH)
|
||||||
c = conn.cursor()
|
c = conn.cursor()
|
||||||
c.execute("SELECT * FROM tasks ORDER BY created_at DESC")
|
c.execute("SELECT * FROM tasks ORDER BY created_at DESC")
|
||||||
|
cols = [d[0] for d in c.description]
|
||||||
rows = c.fetchall()
|
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()
|
conn.close()
|
||||||
return [dict(zip(cols, r)) for r in rows]
|
return [dict(zip(cols, r)) for r in rows]
|
||||||
|
|
||||||
|
|
@ -840,13 +834,10 @@ async def get_task(task_id: str):
|
||||||
c = conn.cursor()
|
c = conn.cursor()
|
||||||
c.execute("SELECT * FROM tasks WHERE id=?", (task_id,))
|
c.execute("SELECT * FROM tasks WHERE id=?", (task_id,))
|
||||||
row = c.fetchone()
|
row = c.fetchone()
|
||||||
|
cols = [d[0] for d in c.description]
|
||||||
conn.close()
|
conn.close()
|
||||||
if not row:
|
if not row:
|
||||||
raise HTTPException(404, "Task not found")
|
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))
|
return dict(zip(cols, row))
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -907,14 +898,11 @@ async def run_task_now(task_id: str, background_tasks: BackgroundTasks):
|
||||||
c = conn.cursor()
|
c = conn.cursor()
|
||||||
c.execute("SELECT * FROM tasks WHERE id=?", (task_id,))
|
c.execute("SELECT * FROM tasks WHERE id=?", (task_id,))
|
||||||
row = c.fetchone()
|
row = c.fetchone()
|
||||||
|
cols = [d[0] for d in c.description]
|
||||||
conn.close()
|
conn.close()
|
||||||
if not row:
|
if not row:
|
||||||
raise HTTPException(404, "Task not found")
|
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_data = dict(zip(cols, row))
|
||||||
task = Task(**{k: v for k, v in task_data.items() if k in Task.model_fields})
|
task = Task(**{k: v for k, v in task_data.items() if k in Task.model_fields})
|
||||||
|
|
||||||
|
|
|
||||||
Reference in a new issue