# Phase 12: Płytarium API — Collections and Albums - Discussion Log > **Audit trail only.** Do not use as input to planning, research, or execution agents. > Decisions are captured in CONTEXT.md — this log preserves the alternatives considered. **Date:** 2026-09-28 **Phase:** 12-p-ytarium-api-collections-and-albums **Areas discussed:** Route boundary, Parity evidence, Invitations & mail, Search & security test --- ## Todo cross-reference | Option | Description | Selected | |--------|-------------|----------| | Fold only if Discogs lands here | Decide with the route boundary | ✓ | | Leave for Phase 14 | Keep pending | | **Outcome:** Discogs cover-price deferred → todo not folded. ## Route boundary | Question | Options | Selected | |----------|---------|----------| | Reservations (wishlist-only in PHP) | Move to Phase 13 / Keep in 12 | Move to Phase 13 | | Discogs cover-price | Pull minimal Discogs in / Defer to 14 | Defer to 14 | | sync/stats/value/missing/bulk | All five / Only what Nuxt calls | All five | | match/apply-release/recognize/import | Phase 14 / Phase 12 | Phase 14 | | cover_urls on create | Seam wired in 14 / Port CoverImporter now | Port CoverImporter now | | Public share surface | Collection side in 12 / All public routes in 13 | All public routes in 13 | **Notes:** API-01 and success criterion 1 need rewording; CoverImporter uses the existing fetchguard GET. ## Parity evidence | Question | Options | Selected | |----------|---------|----------| | New recordings | Nuxt flows + error cases / Flows only / Existing only | Nuxt flows + error cases | | Centrifugo publications | Record for album flows / Reuse P11 | Record for album flows | | Token-group twins | Same handler, own fixtures / Route-table only | Same handler, own fixtures | | Uploads | Replay + blob assertions / Go tests only | Replay + blob assertions | ## Invitations & mail | Question | Options | Selected | |----------|---------|----------| | Mail sending | River job in transaction / Inline after commit | River job | | Accept notification | Port write now / Seam until 13 | Port write now | | No-account invitations | Existing-account path only / Full path now | Existing-account path only | ## Search & security test | Question | Options | Selected | |----------|---------|----------| | Re-gate shape | Mirror Scout exactly / Candidates then SQL paginate | Mirror Scout exactly | | SQL LIKE on Postgres | ILIKE escaped / Research decides | ILIKE escaped | | Leak test cases (multi) | Stale doc; Mis-scoped doc; Deleted/revoked; Token frozen | All four | | Typesense in tests | Fake engine driver / Real container | Fake engine driver | ## Claude's Discretion Handler layout, DTO structs and fuzz enumeration, job kind names, fake engine shape, record-vs-Go-test for impractical error cases, plan count and split. ## Deferred Ideas Reservations and public routes → Phase 13; Discogs/AI routes → Phase 14; register-via-invitation → Phase 13; notifications API → Phase 13.