From 9ea0d0c4a420ab335a8db5e476eaa187184edd0c Mon Sep 17 00:00:00 2001 From: Abhimanyu Saharan Date: Thu, 5 Feb 2026 03:08:47 +0530 Subject: [PATCH] feat(agent): Update task assignments on agent deletion to reset statuses --- backend/app/api/agents.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/backend/app/api/agents.py b/backend/app/api/agents.py index b6f9fcb8..0ce2f201 100644 --- a/backend/app/api/agents.py +++ b/backend/app/api/agents.py @@ -18,6 +18,7 @@ from app.models.activity_events import ActivityEvent from app.models.agents import Agent from app.models.boards import Board from app.models.gateways import Gateway +from app.models.tasks import Task from app.schemas.agents import ( AgentCreate, AgentHeartbeat, @@ -567,6 +568,27 @@ def delete_agent( message=f"Deleted agent {agent.name}.", agent_id=None, ) + now = datetime.now() + session.execute( + update(Task) + .where(col(Task.assigned_agent_id) == agent.id) + .where(col(Task.status) == "in_progress") + .values( + assigned_agent_id=None, + status="inbox", + in_progress_at=None, + updated_at=now, + ) + ) + session.execute( + update(Task) + .where(col(Task.assigned_agent_id) == agent.id) + .where(col(Task.status) != "in_progress") + .values( + assigned_agent_id=None, + updated_at=now, + ) + ) session.execute( update(ActivityEvent) .where(col(ActivityEvent.agent_id) == agent.id)