chore(messages): verwijder queue-feature (verhuisd naar scrum4me-workers) #113
No reviewers
Labels
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
janpeter/Ops-dashboard!113
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "chore/remove-messages-feature"
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?
Verwijdert de Messages-feature uit Ops-dashboard. De queue-berichtenfunctie leeft voortaan uitsluitend in scrum4me-workers
/queue/messages.Waarom
De berichtenqueue
agent_messageverhuist naar de scrum4me-DB. Ops-dashboard schrijft er nu op via zijn eigen Prisma-client op zijn eigen database — na de verhuizing zou die stil naar een verlaten tabel blijven schrijven: je stuurt een taak, hij verdwijnt, geen foutmelding. Prisma kan geen twee databases in één client, dus meeverhuizen kan niet.Dit kan veilig omdat de opvolger er al is: scrum4me-workers #67 gaf
/queue/messagesvolledige pariteit (push, cancel op pending én claimed, requeue, reply, delete, clear, previewPurge, purgeOlderThan) — méér dan deze pagina had (die kende geen reply en alleenmac/scrum4me-server×claude/codex, geenmax2/jp).Verwijderd
app/messages/, de drieapp/api/messages/-routes (list, actions, SSE-stream),lib/agent-messages.ts,lib/agent-message-retention.ts,scripts/check-message-retention.ts+ het npm-scriptcheck:messages,model AgentMessageuit het schema, de/messages-nav-entry, en de twee tests die volledig over de feature gaan (agent-messages.test.ts,messages-api.test.ts).Bewust NIET aangeraakt
lib/parse-worker-log.ts+ zijn test — noemenagent_messagealleen als item-type in een worker-logstroom (ander domein, 8 consumers onderapp/worker-logs/). Blijft.20260528233000_add_agent_message/— historie.agent_messageblijft fysiek in de DB staan tot ná de cutover-observatieperiode. Schema-DB-drift is hier bewust en tijdelijk — Prisma zou hem bij eenmigrate devzien, maar die draaien we niet.docs/superpowers/) — historie, buiten code-scope, ongemoeid.Drie off-list opruimingen (geen dode verwijzing achtergelaten)
scripts/tsconfig.json— deincludenoemde de drie verwijderde bestanden; die dode entries weg.test/session-expired-coverage.test.ts— een cross-cutting guard die van elk scherm session-expiry-bedrading eist, via eenexistsSync-assertie. Eén van de schermen was de verwijderde messages-view; alléén die entry is weg, de andere tien schermen blijven bewaakt (test 5/5 groen).Verificatie
grep -rnE "agentMessage|agent_message|agent-message" app lib components prisma test scripts→ alleen de toegestane uitzonderingen (parse-worker-log + migratie-SQL). Geen dode import repo-breed.grep -rn "/messages" app components→ 0.npm run typecheck→ 0 errors.npx vitest run→ 30 files / 140 passed (nulmeting 32/163; −23 = de 2 verwijderde testbestanden, geen andere test omgevallen).npm run build→ Compiled successfully; route-manifest bevat geen/messagesof/api/messages.Volgorde
Deze PR volgt op de nu-gemergde scrum4me-workers #67 (pariteit) en gaat vóór de data-cutover van
agent_messagenaar de scrum4me-DB.🤖 Generated with Claude Code
Verdict: REQUEST_CHANGES
Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.
Findings
prisma/schema.prisma:298— De PR verwijdert hetAgentMessagePrisma-model, maar de diff bevat geen Prisma-migratie en ook geen expliciete documentatie/ADR dat deze tabel voortaan buiten dit dashboard wordt beheerd doorscrum4me-workers. Daardoor raaktschema.prismauit sync met de migratiegeschiedenis:prisma migrate deployzal de database niet aanpassen, nieuwe omgevingen kunnen een andere DB-vorm krijgen dan bestaande omgevingen, en toekomstige Prisma-migraties kunnen drift of onverwachte drops veroorzaken. Voeg een bewuste migratie toe, of laat het model/schema-eigenaarschap staan en documenteer dat alleen routes/UI/tests uit dit dashboard verdwijnen.Samenvatting
De verwijdering is verder coherent op de zichtbare applicatielaag: routes, pagina/component, nav-link, helperlib, retentie-script en gerelateerde tests worden samen verwijderd. Door de ontbrekende database-migratie/eigenaarschapskeuze is dit nog niet veilig genoeg om goed te keuren.
Verwerkt in
9a96376— je had gelijk, dank.De blocking finding klopt: het
AgentMessage-model verwijderen terwijl de tabel blijft, is schema-DB-drift, en dat draagt een reëel risico op de data. De aanpak is aangepast langs je optie (b): model teruggezet, eigenaarschap gedocumenteerd, alleen de applicatielaag verwijderd.Waarom drift hier gevaarlijk is (ter bevestiging van je punt)
De achterliggende reden om de tabel te laten staan:
agent_messageverhuist naar een andere database (scrum4me), en de data moet daar eerst veilig staan vóór de tabel inops_dashboardweg mag. Tot die cutover draagt de tabel productiedata. Met het model verwijderd zou een latereprisma migrate deveenDROP TABLEop die tabel genereren — precies het scenario dat je "onverwachte drops" noemt. Het model teruggezet houdt schema en tabel in sync, zodatmigrate devgeen drop kán voorstellen.migrate deploy(de prod-pijplijn) was al veilig; het risico zat inmigrate dev.Wat er nu staat
model AgentMessageis byte-identiek hersteld (incl. dereply_to/repliesself-relations). De enige netto schema-wijziging t.o.v.mainis een doc-comment die vastlegt: het model is ongebruikt in dit dashboard, blijft bewust staan tot na de cutover, en de echte verwijdering (model + drop-migratie) is een aparte opruim-taak wanneer de data in de scrum4me-DB staat. Dat is je "documenteer het schema-eigenaarschap"-alternatief.app/api/messages/-routes,app/messages/,lib/agent-messages.ts,lib/agent-message-retention.ts, het retentie-script + npm-hook, de nav-link, en de twee feature-tests.lib/parse-worker-log.ts(datagent_messagealleen als log-item-type kent, ander domein) en de migratiemap20260528233000_add_agent_message(historie).Verificatie
git diff main..HEAD -- prisma/schema.prisma→ alleen de doc-comment.npm run typecheck→ 0 errors;npx vitest run→ 30 files / 140 passed;npm run build→ route-manifest zonder/messages.De
docs/superpowers/-plannen/spec/review die de feature nog beschrijven zijn als historie bewust ongemoeid gelaten, in lijn met de migratiemap. Zeg het als je die liever bijgewerkt ziet.🤖 Generated with Claude Code
Verdict: REQUEST_CHANGES
Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.
Findings
app/messages/page.tsx:1: de PR verwijdert de volledige/messagespagina, terwijl de actieve productdocMessages retentie en job-cancel/messagesexpliciet als gedeelde UI vooragent_messagevastlegt met cancel/requeue en retentie-acties. In deze diff staat geen vervangende dashboard-surface, redirect, migratiepad of productdoc-update die dit contract wijzigt.app/api/messages/actions/route.ts:1: het verwijderen van/api/messages/actionshaalt de gedocumenteerde handmatige cleanup en actieve job-cancel/requeue API weg. De productdocs vereisen juist server-side domain helpers en deze route voorpreviewPurgeOlderThan,purgeOlderThanen verbeterdecancel; de PR verwijdert ook de bijbehorende tests encheck:messages, waardoor de destructieve retentie-SQL niet meer geborgd is.Opmerking
De PR-titel zegt dat de queue-feature naar
scrum4me-workersis verhuisd, maar de diff bevat geen bewijs in deze repository dat de Ops Dashboard-verantwoordelijkheid en gebruikersworkflow correct zijn overgedragen. Safe-default: niet approven zolang productdocs en dashboardcontract dit nog als actieve functionaliteit beschrijven.