fix(queue): queue_next slaat rules-sync-berichten over #182

Merged
janpeter merged 1 commit from fix/queue-next-skip-rules-sync into main 2026-10-04 19:32:33 +02:00
Owner

Probleem

rules-sync info-berichten (agent-rules) zijn bedoeld voor s4m-rules-apply. Dat leest ze read-only en sluit ze zelf. Bij de eerste echte publish (2026-10-04) claimden monitor-drains ze via queue_next en pasten ze naar eigen inzicht toe.

Wijziging

  • NOT_RULES_SYNC_SQL in src/queue/claim.ts, gebruikt in claimNextRequest. Het is hetzelfde predicaat als in de s4m-queue CLI.
  • claimNextReply, sweep en marked zijn niet aangepast: ze claimen alleen antwoord-types of geen nieuwe rijen.
  • Tegenhanger in s4m-queue (next/watch/peek): aparte PR in janpeter/s4m-queue.

Verificatie

  • __tests__/queue-claim.test.ts: controleert dat het predicaat in de claim-query zit.
  • npm test: 2033 geslaagd, 69 overgeslagen.
  • npm run typecheck: groen.

Uitrol

Na de merge moet de MCP herbouwd en herstart worden. Lopende queue_next-claims overleven een herstart niet (zie het herstel-recept in de s4m-queue-rule).

🤖 Generated with Claude Code

## Probleem `rules-sync` info-berichten (agent-rules) zijn bedoeld voor `s4m-rules-apply`. Dat leest ze read-only en sluit ze zelf. Bij de eerste echte publish (2026-10-04) claimden monitor-drains ze via `queue_next` en pasten ze naar eigen inzicht toe. ## Wijziging - `NOT_RULES_SYNC_SQL` in `src/queue/claim.ts`, gebruikt in `claimNextRequest`. Het is hetzelfde predicaat als in de s4m-queue CLI. - `claimNextReply`, sweep en marked zijn niet aangepast: ze claimen alleen antwoord-types of geen nieuwe rijen. - Tegenhanger in s4m-queue (`next`/`watch`/`peek`): aparte PR in janpeter/s4m-queue. ## Verificatie - `__tests__/queue-claim.test.ts`: controleert dat het predicaat in de claim-query zit. - `npm test`: 2033 geslaagd, 69 overgeslagen. - `npm run typecheck`: groen. ## Uitrol Na de merge moet de MCP herbouwd en herstart worden. Lopende `queue_next`-claims overleven een herstart niet (zie het herstel-recept in de s4m-queue-rule). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
fix(queue): queue_next slaat rules-sync-berichten over
All checks were successful
CI / Final merge attestation and immutable publication (pull_request) Has been skipped
CI / PR candidate (never published) (pull_request) Successful in 5m24s
41211370ef
rules-sync info-berichten (agent-rules) zijn bedoeld voor
s4m-rules-apply, dat ze read-only leest en zelf sluit. Bij de eerste
echte publish claimden monitor-drains ze via queue_next en pasten ze
naar eigen inzicht toe. claimNextRequest sluit info-berichten met
meta.action='rules-sync' nu uit; hetzelfde predicaat als de s4m-queue
CLI (NOT_RULES_SYNC_SQL).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
janpeter deleted branch fix/queue-next-skip-rules-sync 2026-10-04 19:32:33 +02:00
s4m-codex-reviewer left a comment

COMMENT

geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.

Het filter in src/queue/claim.ts:75 staat vóór FIFO-selectie en geldt voor zowel pending als herclaimbare berichten. IS DISTINCT FROM behoudt berichten zonder action; het gebruik van Prisma.sql sluit aan bij de bestaande claimfilters. De broncomment beschrijft de reden en de aparte rules-sync-consumer. Geen blokkerende code-, architectuur- of documentatieproblemen gevonden.

Findings

  • LOW — __tests__/queue-claim.test.ts:102: De regressietest controleert het SQL-fragment, maar gebruikt een vaste mockreturn. Voeg bij voorkeur een database-test toe die een rules-sync-bericht overslaat en het volgende gewone bericht met ontbrekende/null action claimt.
  • INFO — __tests__/queue-claim.test.ts:102: Runtime-verificatie is beperkt door de reviewomgeving: /tmp is noexec, waardoor esbuild en de native rolldown-binding niet uitvoerbaar/laadbaar zijn. Vitest kon niet starten; dit is geen aangetoond PR-defect.

Verificatie op commit 41211370ef8ae6e324cb376d2ca707581e07fbed: source-typecheck en tests-typecheck beide geslaagd. De opgehaalde commitdiff komt overeen met de aangeleverde diff. Wegens de ontbrekende runtime-verificatie blijft het verdict COMMENT.

## COMMENT geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden. Het filter in `src/queue/claim.ts:75` staat vóór FIFO-selectie en geldt voor zowel pending als herclaimbare berichten. `IS DISTINCT FROM` behoudt berichten zonder action; het gebruik van `Prisma.sql` sluit aan bij de bestaande claimfilters. De broncomment beschrijft de reden en de aparte rules-sync-consumer. Geen blokkerende code-, architectuur- of documentatieproblemen gevonden. ### Findings - **LOW — `__tests__/queue-claim.test.ts:102`**: De regressietest controleert het SQL-fragment, maar gebruikt een vaste mockreturn. Voeg bij voorkeur een database-test toe die een rules-sync-bericht overslaat en het volgende gewone bericht met ontbrekende/null action claimt. - **INFO — `__tests__/queue-claim.test.ts:102`**: Runtime-verificatie is beperkt door de reviewomgeving: `/tmp` is `noexec`, waardoor esbuild en de native rolldown-binding niet uitvoerbaar/laadbaar zijn. Vitest kon niet starten; dit is geen aangetoond PR-defect. Verificatie op commit `41211370ef8ae6e324cb376d2ca707581e07fbed`: source-typecheck en tests-typecheck beide geslaagd. De opgehaalde commitdiff komt overeen met de aangeleverde diff. Wegens de ontbrekende runtime-verificatie blijft het verdict COMMENT.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
janpeter/scrum4me-mcp!182
No description provided.