feat(schema): archived_at op AgentMessage/AgentMessageArchive/ClaudeJob + cold-store-index (M32) #48

Merged
janpeter merged 1 commit from feat/m32-archived-at into main 2026-08-12 19:48:52 +02:00
Owner

M32 slice 1, Task 1 van docs/plans/M32-queue-archivering.md (DUBBEL-GO r7, a476639). Spec: docs/superpowers/specs/2026-08-12-hub-inbox-queue-archivering-design.md §4.1 (DUBBEL-GO r5, 6d8ea8c).

Wat

  • archived_at DateTime? @db.Timestamptz(6) op AgentMessage, AgentMessageArchive (beide ná idempotency_key) en ClaudeJob (ná updated_at). Nullable en additief; NULL = actief.
  • @@index([created_at(sort: Desc), id(sort: Desc)], map: "agent_message_archive_created_idx") op AgentMessageArchive — voor het read-only cold-store-leespad (s4m-queue list --cold-store).
  • Doccommentaar "bewust … zonder indexen" bijgewerkt: het archief draagt sinds M32 wél die ene index.
  • Schema-test bijgewerkt: archived_at in de COLUMNS-pin (ordinal 19, ALTER ADD COLUMN appendt) en de no-index-assertie vervangen door een exacte toContain op de nieuwe index-regel.

Waarom in deze volgorde

De veldpositie is niet cosmetisch: de schema-test vergelijkt de PSL-veldvolgorde met de fysieke kolomvolgorde, en ALTER TABLE … ADD COLUMN appendt.

Gate

  • Rood-eerst aangetoond: 3 falende asserties vóór de testaanpassing (COLUMNS-pin ×2 + no-index).
  • npm run verifygroen (22 bestanden, 242 tests).
  • Model-laag valideert schoon in een gegenereerd consumer-schema (scripts/gen-consumer-schema.sh + prisma validate): 0 model-fouten. NB: prisma validate direct op het canonieke schema is per definitie rood (fragment zonder generator/datasource — 76 fouten óók op ongewijzigde origin/main); dat is een onjuiste verwachting in plan-stap 5, geen defect hier.

Lockstep

Deze PR merget vóór de consumer-taken: Scrum4Me (migratie + indexen), scrum4me-mcp en scrum4me-workers bumpen hun vendor/scrum4me-shared-submodule naar deze commit. Kolom is nullable/additief, dus oude clients blijven werken.

🤖 Generated with Claude Code

M32 slice 1, Task 1 van `docs/plans/M32-queue-archivering.md` (DUBBEL-GO r7, `a476639`). Spec: `docs/superpowers/specs/2026-08-12-hub-inbox-queue-archivering-design.md` §4.1 (DUBBEL-GO r5, `6d8ea8c`). ## Wat - `archived_at DateTime? @db.Timestamptz(6)` op **AgentMessage**, **AgentMessageArchive** (beide ná `idempotency_key`) en **ClaudeJob** (ná `updated_at`). Nullable en additief; `NULL` = actief. - `@@index([created_at(sort: Desc), id(sort: Desc)], map: "agent_message_archive_created_idx")` op AgentMessageArchive — voor het read-only cold-store-leespad (`s4m-queue list --cold-store`). - Doccommentaar "bewust … zonder indexen" bijgewerkt: het archief draagt sinds M32 wél die ene index. - Schema-test bijgewerkt: `archived_at` in de `COLUMNS`-pin (ordinal 19, ALTER ADD COLUMN appendt) en de no-index-assertie vervangen door een exacte `toContain` op de nieuwe index-regel. ## Waarom in deze volgorde De veldpositie is niet cosmetisch: de schema-test vergelijkt de PSL-veldvolgorde met de fysieke kolomvolgorde, en `ALTER TABLE … ADD COLUMN` appendt. ## Gate - Rood-eerst aangetoond: 3 falende asserties vóór de testaanpassing (COLUMNS-pin ×2 + no-index). - `npm run verify` → **groen** (22 bestanden, 242 tests). - Model-laag valideert schoon in een gegenereerd consumer-schema (`scripts/gen-consumer-schema.sh` + `prisma validate`): 0 model-fouten. NB: `prisma validate` direct op het canonieke schema is per definitie rood (fragment zonder generator/datasource — 76 fouten óók op ongewijzigde `origin/main`); dat is een onjuiste verwachting in plan-stap 5, geen defect hier. ## Lockstep Deze PR merget **vóór** de consumer-taken: Scrum4Me (migratie + indexen), scrum4me-mcp en scrum4me-workers bumpen hun `vendor/scrum4me-shared`-submodule naar deze commit. Kolom is nullable/additief, dus oude clients blijven werken. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
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!48
No description provided.