feat(agent): Update task assignments on agent deletion to reset statuses

This commit is contained in:
Abhimanyu Saharan
2026-02-05 03:08:47 +05:30
parent 5e342e6906
commit 9ea0d0c4a4

View File

@@ -18,6 +18,7 @@ from app.models.activity_events import ActivityEvent
from app.models.agents import Agent from app.models.agents import Agent
from app.models.boards import Board from app.models.boards import Board
from app.models.gateways import Gateway from app.models.gateways import Gateway
from app.models.tasks import Task
from app.schemas.agents import ( from app.schemas.agents import (
AgentCreate, AgentCreate,
AgentHeartbeat, AgentHeartbeat,
@@ -567,6 +568,27 @@ def delete_agent(
message=f"Deleted agent {agent.name}.", message=f"Deleted agent {agent.name}.",
agent_id=None, 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( session.execute(
update(ActivityEvent) update(ActivityEvent)
.where(col(ActivityEvent.agent_id) == agent.id) .where(col(ActivityEvent.agent_id) == agent.id)