feat(queue): scrum4us-job-namespace in het adresvocabulaire (M30 P0.1) #45

Merged
janpeter merged 2 commits from feat/m30-p0.1-job-namespace into main 2026-08-06 08:35:57 +02:00
Owner

M30 P0.1 (plan: Scrum4Us docs/plans/M30-scrum4us-review-jobs.md @ b4b3352, §Task P0.1).

Het gediscrimineerde bestemmingsadres uit M30 §5: QUEUE_JOB_SERVER = 'scrum4us-job', QueueAddress (gesloten server:model óf scrum4us-job:<jobid>), isQueueJobId (niet-leeg, dubbelepunt-vrij), parseQueueAddress/formatQueueAddress. De gesloten enums blijven byte-identiek en isQueueServer krijgt géén nieuw lid — de discriminatie leeft in parseQueueAddress. Headerregel over scrum4me-mcp geactualiseerd.

Tests: parse/format-rondgang, volledige weiger-matrix, byte-identiek-pin op de vocabulaires. Suite: 22 files / 242 tests groen, typecheck + no-deps-guard groen.

Niet mergen buiten de P0.G-volgorde om — de release-1-rollout (M30 §11 stap 1) merget dit als stap 1, waarna de mcp-gitlink-bump (P0.4) tegen de nieuwe main-head wordt geschreven.

🤖 Generated with Claude Code

M30 P0.1 (plan: Scrum4Us docs/plans/M30-scrum4us-review-jobs.md @ b4b3352, §Task P0.1). Het gediscrimineerde bestemmingsadres uit M30 §5: `QUEUE_JOB_SERVER = 'scrum4us-job'`, `QueueAddress` (gesloten `server:model` óf `scrum4us-job:<jobid>`), `isQueueJobId` (niet-leeg, dubbelepunt-vrij), `parseQueueAddress`/`formatQueueAddress`. De gesloten enums blijven byte-identiek en `isQueueServer` krijgt géén nieuw lid — de discriminatie leeft in `parseQueueAddress`. Headerregel over scrum4me-mcp geactualiseerd. Tests: parse/format-rondgang, volledige weiger-matrix, byte-identiek-pin op de vocabulaires. Suite: 22 files / 242 tests groen, typecheck + no-deps-guard groen. **Niet mergen buiten de P0.G-volgorde om** — de release-1-rollout (M30 §11 stap 1) merget dit als stap 1, waarna de mcp-gitlink-bump (P0.4) tegen de nieuwe main-head wordt geschreven. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(queue): scrum4us-job-namespace in het adresvocabulaire (M30 P0.1)
All checks were successful
CI / Verify (pull_request) Successful in 17s
323a3a3af8
Het gediscrimineerde bestemmingsadres uit M30 $5: gesloten vocabulaire
voor de mens/agent-servers, een opake job-id op de modelpositie voor
'scrum4us-job:<jobid>'. QUEUE_SERVERS/QUEUE_MODELS blijven byte-identiek
en isQueueServer krijgt geen nieuw lid - de discriminatie leeft in
parseQueueAddress. Headerregel over scrum4me-mcp geactualiseerd (die
importeert inmiddels uit dit bestand).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
s4m-codex-reviewer left a comment

Verdict: APPROVED

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

Findings

Geen blokkerende of error-severity findings.

De wijziging blijft binnen lib/queue-identity.ts als pure TypeScript-logica, behoudt de bestaande gesloten QUEUE_SERVERS/QUEUE_MODELS vocabulaires, en voegt de scrum4us-job:<jobid> adresvorm toe via een expliciete discriminated union. De toegevoegde tests in __tests__/queue-identity.test.ts dekken roundtrip-parsing, backwards compatibility voor bestaande server:model adressen en relevante foutpaden.

# Verdict: APPROVED Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden. ## Findings Geen blokkerende of error-severity findings. De wijziging blijft binnen `lib/queue-identity.ts` als pure TypeScript-logica, behoudt de bestaande gesloten `QUEUE_SERVERS`/`QUEUE_MODELS` vocabulaires, en voegt de `scrum4us-job:<jobid>` adresvorm toe via een expliciete discriminated union. De toegevoegde tests in `__tests__/queue-identity.test.ts` dekken roundtrip-parsing, backwards compatibility voor bestaande `server:model` adressen en relevante foutpaden.
feat(schema): idempotency_key op AgentMessage + archief (M30 P0.3)
All checks were successful
CI / Verify (pull_request) Successful in 17s
9a33ee3af3
Kolom 18 op beide queue-modellen, nullable, pariteitscontract intact.
De partiele unieke index en de watcher-index zijn SQL-only (PSL kent
geen partiele indexen) en leven in de Scrum4Me-productiemigratie en het
s4m-queue-testschema. Guard-test pint de nieuwe kolom in naam, type en
ordinal (18) op beide modellen.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
s4m-codex-reviewer left a comment

Verdict: COMMENT

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

Findings

  • LOW prisma/schema.prisma:1300 — De PR-titel en queue-wijziging gaan over het scrum4us-job adresvocabulaire, maar deze diff voegt ook AgentMessage.idempotency_key en AgentMessageArchive.idempotency_key toe. Dat lijkt inhoudelijk een aparte M30 P0.3 schemawijziging. In scrum4me-shared mogen schemawijzigingen starten, maar zonder gekoppeld plan of migratie-/rolloutcontext is dit voor reviewers moeilijk te koppelen aan de bedoeling van deze PR.
  • LOW lib/queue-identity.ts:88 — De nieuwe QueueAddress-parser houdt de bestaande gesloten QUEUE_SERVERS/QUEUE_MODELS intact en is dependency-vrij, conform de shared-architectuur. Geen blokkerende bevinding.

Tests zijn niet lokaal gedraaid: de review-job leverde alleen de frozen diff/payload en geen git-worktree.

# Verdict: COMMENT Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden. ## Findings - **LOW** `prisma/schema.prisma:1300` — De PR-titel en queue-wijziging gaan over het `scrum4us-job` adresvocabulaire, maar deze diff voegt ook `AgentMessage.idempotency_key` en `AgentMessageArchive.idempotency_key` toe. Dat lijkt inhoudelijk een aparte M30 P0.3 schemawijziging. In `scrum4me-shared` mogen schemawijzigingen starten, maar zonder gekoppeld plan of migratie-/rolloutcontext is dit voor reviewers moeilijk te koppelen aan de bedoeling van deze PR. - **LOW** `lib/queue-identity.ts:88` — De nieuwe `QueueAddress`-parser houdt de bestaande gesloten `QUEUE_SERVERS`/`QUEUE_MODELS` intact en is dependency-vrij, conform de shared-architectuur. Geen blokkerende bevinding. Tests zijn niet lokaal gedraaid: de review-job leverde alleen de frozen diff/payload en geen git-worktree.
Sign in to join this conversation.
No reviewers
No labels
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-shared!45
No description provided.