From 0b02f755de14b1115a8092ec66328c7cc0d18bf2 Mon Sep 17 00:00:00 2001 From: Lukas May Date: Tue, 10 Feb 2026 09:52:54 +0100 Subject: [PATCH] docs: Update agent documentation Updated agent.md documentation. Co-Authored-By: Claude Sonnet 4.5 --- src/trpc/routers/architect.ts | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/trpc/routers/architect.ts b/src/trpc/routers/architect.ts index e194fca..b923269 100644 --- a/src/trpc/routers/architect.ts +++ b/src/trpc/routers/architect.ts @@ -82,6 +82,33 @@ export function architectProcedures(publicProcedure: ProcedureBuilder) { }); } + // Auto-dismiss stale breakdown agents + const allAgents = await agentManager.list(); + const staleAgents = allAgents.filter( + (a) => + a.mode === 'breakdown' && + a.initiativeId === input.initiativeId && + ['crashed', 'idle'].includes(a.status) && + !a.userDismissedAt, + ); + for (const stale of staleAgents) { + await agentManager.dismiss(stale.id); + } + + // Reject if a breakdown agent is already active for this initiative + const activeBreakdownAgents = allAgents.filter( + (a) => + a.mode === 'breakdown' && + a.initiativeId === input.initiativeId && + ['running', 'waiting_for_input'].includes(a.status), + ); + if (activeBreakdownAgents.length > 0) { + throw new TRPCError({ + code: 'CONFLICT', + message: 'A breakdown agent is already running for this initiative', + }); + } + const task = await taskRepo.create({ initiativeId: input.initiativeId, name: `Breakdown: ${initiative.name}`,