feat(catalog): Meldungen und Sichtbarkeitsschutz (KAT-05, 2c) #57
No reviewers
Labels
No labels
epic/katalog
epic/konto
epic/partien
epic/querschnitt
epic/sammlung
needs-clarification
prio/could
prio/must
prio/should
size/l
size/m
size/s
size/xl
status/in-progress
status/ready-for-merge
status/spec-review
type/bug
type/epic
type/story
type/tech
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: cschlaefke/Shuffle#57
Loading…
Reference in a new issue
No description provided.
Delete branch "feature/2c-katalog-meldungen"
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?
Refs #2 (kein
Closes: #2 schließt Chris nach Go-live-Check C1 und KAT-02 #4)Gestapelt auf PR #56 (2b). Basis dieses PR ist der Branch
feature/2b-katalog-zusammenfuehren, damit der Diff nur 2c zeigt. Reihenfolge: #56 zuerst mergen; den 2b-Branch nach dem Merge nicht löschen, bevor die Basis dieses PR aufmainumgestellt ist (sonst schließt Forgejo ihn). 2c muss vor #13 gemergt sein (Spec E12).Spec:
docs/specs/2-katalog-daten.md§ 3.4, § 4.4, § 8.3 (freigegeben).Inhalt
20261103195151_game_reports.sql:games_visibility_immutable(wirkt für alle Rollen inkl.postgres, FehlerP0001 visibility_immutable).game_reports(Status offen/freigegeben/abgelehnt/zusammengeführt, Zieleintrag, vorläufiger Eintrag); RLS: Nutzer lesen nur eigene,is_admin()-Leserecht (R4), keine Schreibrechte füranon/authenticated; eindeutiger Teilindex aufprovisional_game_id.admin_resolve_report(p_report, p_status, p_target): nurpostgres/supabase_admin,security invoker;approved/mergedhängen überrepoint_game_referencesum und blenden den vorläufigen Eintrag aus,rejectedspeichert höchstens den Verweis; sperrt Meldung, Ziel und vorläufigen Eintrag inid-Reihenfolge.admin_merge_gamespercreate or replaceerweitert (Schritt 4:game_reports.target_game_idumhängen,reports_repointedim JSON); Diff gegen 2b zeigt nur das.revoke execute … from public, anon, authenticated, service_rolefür alle drei Funktionen wiederholt.08_game_reports.test.sql(157 Tests), Anpassungen in07/00(21 Tabellen), Runbook § 6 (12 Bausteine wörtlich im Test),docs/datenmodell-r1.md,supabase/README.md, Spec-Nachtrag § 10.Review
code-reviewer(eigener Wegwerf-Container, alle 571 Tests grün): kein Blocker; CHANGES REQUESTED. Behoben in119267b:admin_resolve_reportprüft jetzt, dass der vorläufige Eintrag dem Meldenden gehört (Fehlerreport_provisional_not_private; nachgewiesen: sonst hätte eine Meldung auf fremdes privates Spiel dessen Daten umgehängt), Test gegen späteres Update-Recht aufprovisional_game_id, weitere Testlücken, Runbook-Ergänzungen. 25+ Mutanten werden von08erkannt. Die Nacharbeit hat kein Reviewer erneut gelesen.Bitte bestätigen (Abweichungen)
report_provisional_not_private; Zielprüfungreport_target_not_listedauch beirejected.admin_resolve_report(report_id,status,target_id,provisional_game_id,repointed+ Zähler);reports_repointedsteht immer im Ergebnis vonadmin_merge_games.visibilityändert, bekommtP0001(HTTP 400) statt42501.Offene Entscheidung vor dem Merge (Spec #13, Spec-F6)
Soll
game_reports.editions_cleared(Zähler geleerter Editionen, gesetzt vonadmin_resolve_report) schon in 2c angelegt werden? Empfehlung in Spec #13: ja, solange 2b/2c nicht gemergt sind (sonst mussadmin_resolve_reportspäter erneut ersetzt werden). Ohne Entscheidung bleibt 2c wie gebaut;result_seen_atkommt in 13a.Nicht geprüft
CI (nicht angesehen), echte Nebenläufigkeit (Deadlock zwischen
adopt_report_targetin #13 undadmin_merge_gamesist als Merkpunkt in Spec #13), Lauf alssupabase_admin, Studio-SQL-Editor, Staging/Prod. Optionaler Check-Trigger fürtarget_game_idnur als Merkpunkt, nicht gebaut. Lokal laut Entwickler 575 pgTAP-Tests;deno testnach dem letzten Commit nicht erneut gelaufen (Diff berührtsupabase/catalog/nicht).🤖 Generated with Claude Code
Hinweis zum Merge: Vor dem Merge dieses PR ist die Entscheidung zu Spec #13 Spec-F6 nötig (Spalte
game_reports.editions_cleared, gesetzt inadmin_resolve_reportausvariants_cleared). Empfehlung: ja, dann ergänzt backend-dev 2c noch um die Spalte; sonst bleibt 2c wie gebaut und 13a mussadmin_resolve_reportspäter percreate or replaceerneut ersetzen (Risiko, Schritt 4 vonadmin_merge_gameszu verlieren). Details: Spec #13 § 9.2 (siehe Spec-PR zu #13).#56 (2b) ist gemergt (
9a1d216); die Basis dieses PR ist aufmainumgestellt. Der Hinweis „gestapelt“ im Text oben ist damit erledigt; der Diff zeigt nur 2c (8 Dateien). Die CI auf dem Branch (9a63985, grün) lief vor der Umstellung; Spec-F6 (editions_cleared) ist umgesetzt (de830a7).