feat(queue): Messages-dashboard met realtime SSE + JP-acties (PBI-5) #18
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/queue-messages-dashboard"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Wat
PBI-5 uit s4m-queue verbeterronde 2026-Q2 (sprint
S-2026-05-31-1). Verhuist de Messages-pagina van Ops-dashboard naarscrum4me-workersen bouwt 'm uit met realtime SSE-stream + JP-acties (push / reply / cancel / requeue) via iron-session server actions.Data-toegang via het bestaande Worker Insights pattern: kale
pg.PoolopOPS_DATABASE_URL, app-namescrum4me-workers-queue. GéénAgentMessagePrisma-model in shared — die tabel is eigendom van Ops-dashboard (per ADR uit de plan-fase).Wijzigingen
lib/queue/types.tsIdentity-allowlists, types,
validateTaskMeta. Spiegelt s4m-queue/src/types.ts maar staat hier los (workers heeft geen shared-package import voor queue).SERVERS = ['mac','scrum4me-server','max2'],MODELS = ['claude','codex','jp']— lopen mee met PBI-1 in s4m-queue.lib/queue/ops-db.tsgetQueuePool()— pg.Pool metmax: 3, idleTimeoutMillis: 10_000, connectionTimeoutMillis: 5_000, statement_timeout: 8_000, gecached viaglobalThis(zoalslib/worker-insights/ops-db.ts:8).listAgentMessages,getAgentMessage,pushAgentMessage,cancelAgentMessage,requeueAgentMessage,failAgentMessage,replyToAgentMessage.id/type/from_*/to_*/in_reply_to/status/previous_status).mutateWithNotifyhelper voor cancel/requeue/fail;replyToAgentMessageemit twee NOTIFYs (nieuwe reply-rij + request-close), analoog aans4m-queue/src/db.ts → doneWithReplyin PR #3.app/(app)/queue/messages/page.tsxServer component,
requireWorkersAdmin(layout doet 't ook, hier extra defense-in-depth). Toont waarschuwing alsOPS_DATABASE_URLontbreekt.app/(app)/queue/messages/_components/messages-view.tsxClient component:
stalepreset → vastzittende claims viaclaimed AND claimed_at < now() - 4h).meta.taskvelden bijtask/review_request.app/api/queue/messages/stream/route.tsSSE-route. Dedicated
pg.Client,LISTEN agent_queue, robust cleanup via bestaandelib/realtime/pg-client-cleanup.ts, 25s heartbeat.actions/queue-messages.ts'use server'actions metrequireWorkersAdmin+validateTaskMeta:refreshMessagesAction(filter)— list met optioneelstalepreset.pushMessageAction(input)— push (dashboard-afzender uit env: defaultmac:jp).cancelMessageAction(id),requeueMessageAction(id).replyMessageAction(id, body)— doneWithReply met dubbele NOTIFY.Geen
--as-flag, geen impersonatie; alle write-acties achter de iron-session.Verify
npm run verify(lint + typecheck + vitest) → 305 / 305 groen.Afhankelijkheden
OPS_DATABASE_URLenv-var moet wijzen naar deops_dashboard-DB met SELECT/INSERT/UPDATE opagent_message.status/previous_statusvelden — niet kritiek.scrum4me-shared.Niet in deze PR
🤖 Gegenereerd met Claude Opus 4.7 (1M context)