diff --git a/src/server/routes.ts b/src/server/routes.ts index b674f7d..db00d61 100644 --- a/src/server/routes.ts +++ b/src/server/routes.ts @@ -120,6 +120,21 @@ export async function registerRoutes(app: FastifyInstance, cwd: string): Promise loopExitAgoSec: agent.loopExitAgoSec, loopExitReason: agent.loopExitReason, })), + // Der Fall, der den Menschen sonst zum Postman macht: eine Task ist an + // einen Agenten adressiert, aber er sitzt nicht im Work-Loop. Er ist dann + // nicht "dormant" (er lebt vielleicht sogar), hoert aber nicht zu — die + // Arbeit bleibt liegen, ohne dass irgendwo ein Fehler erscheint. Real + // erlebt: codex war `active` (75s zuvor gesehen) mit inLoop=false, + // waehrend TSK-0288 offen an ihn adressiert dalag. + notListening: health.agents + .filter((agent) => !agent.inLoop && agent.pendingCount > 0) + .map((agent) => ({ + name: agent.name, + waitingTasks: agent.pendingCount, + taskId: agent.waitingTaskId, + lastSeenAgoSec: agent.lastSeenAgoSec, + hint: `${agent.name} hat offene Arbeit, sitzt aber nicht im Work-Loop — anstossen oder Session neu starten.`, + })), messages: allMessages.slice(0, messageLimit).map(({ id, from, taskId, createdAt }) => ({ id, from, taskId, createdAt, })),