feat(notes): Note-modellen + note-schema contract (IDEA-226) #65
No reviewers
Labels
No labels
severity/s4
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
janpeter/scrum4me-shared!65
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/idea-226-notes"
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?
Notes (IDEA-226): Note-modellen en het note-schema-contract
Onderdeel van Scrum4Me PBI-167 (sprint S-2026-09-28-1). Spec: product doc
specs/idea-226-specr3 (§2.1, §2.2, §2.5, §2.5.1, §4.2).prisma/schema.prisma:Note,NoteKeywordenNoteKeywordLink.UserenProduct.///-comment dat de partiële indexnote_keywords_default_name_keyalleen in de Scrum4Me-migratie leeft; nooitprisma db pullopnote_keywords.lib/note-schema.ts: puur contract, alleen zod.noteCreateSchema,noteUpdateSchema(§2.5.1) ensearchNotesInputSchema(geen clamp boven 100).NOTE_LIST_FIELDS/NOTE_DETAIL_FIELDS/NOTE_LIST_ORDERenplanKeywordResolution.npm run verifygroen (573/573).Scrum4Me pint de submodule tijdelijk op de branch-commit en her-pint op de merge-SHA vóór de Scrum4Me-PR. De MCP-tools volgen in een spiegel-PBI in scrum4me-mcp.
🤖 Generated with Claude Code
REQUEST_CHANGES
lib/note-schema.ts:161:planKeywordResolution()kan een keyword van een willekeurige andere gebruiker als “eigen” matchen. De functie ontvangt geen huidigeuserIden behandelt iedere rij metuser_id !== nullals een geldige eigen match. Als een adapter per ongeluk breder dan de huidige gebruiker ophaalt, wordt zo een vreemdeNoteKeywordaan de notitie gekoppeld. Voeg de actor-id aan het contract toe en match alleenk.user_id === currentUserId(met een regressietest voor een keyword van een andere gebruiker), of maak de prefiltering expliciet en afdwingbaar in het type/API-contract.Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.
Bevinding verwerkt in
3b02ba0:planKeywordResolution(userId, names, existing)— een eigen match vereist nuk.user_id === userId; een keyword van een andere gebruiker matcht nooit, ook als de adapter het meelevert. Regressietest 'matcht nooit een keyword van een andere gebruiker' (RED vóór de fix, GREEN erna);npm run verifygroen (574 tests). De enige consumer (Scrum4Melib/notes-server.ts) geeft de userId door.Verdict: COMMENT
Findings
3b02ba08d888b714c710ec9e7f68168ca5e1f372faalde met schrijffouten. Daarom geen APPROVED-verdict.Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.