Files
websitedev/proto/scripts
Do SikiandClaude Sonnet 5 776fa66bc8
CI Pipeline with Test Management / 🧪 Run Tests & Generate Reports (push) Waiting to run
CI Pipeline with Test Management / 🐳 Docker Integration Tests (push) Blocked by required conditions
CI Pipeline with Test Management / 🏗️ Build Docker Image (push) Blocked by required conditions
CI Pipeline with Test Management / 📊 Generate Test Summary (push) Blocked by required conditions
Test Reporting & Gherkin Analysis / 🧪 Run Tests & Generate Reports (push) Waiting to run
Test Reporting & Gherkin Analysis / 📊 Analyze Test Coverage (push) Blocked by required conditions
Test Reporting & Gherkin Analysis / 🔄 Sync with Linear (push) Blocked by required conditions
Test Reporting & Gherkin Analysis / ⚡ Performance Monitoring (push) Blocked by required conditions
feat(cms): Partners + Media collection MVP (MITHOME-89)
Payload built-in upload collection (Media) + a Partners collection
(name, url, logo -> Media relationship) mirroring home.json's
partners.items.

Scope decision (see Plane MITHOME-89/118): the old logo editor
(crop/rotate/transparent-background — MITHOME-76/84) is entirely
client-side canvas logic (scripts/cms-logo-client.js, 345 lines), not
server-side processing. Porting that UX into the Payload admin is a
real custom React field component, split into its own ticket
(MITHOME-118) rather than bundled here. This ticket covers plain
upload only.

- src/collections/Media.ts, src/collections/Partners.ts, registered
  in payload.config.ts.
- migrate-content-to-payload.ts: upsertPartner() uploads the existing
  processed logo file (filePath) into Media (idempotent — matched by
  `alt` == partner name) and upserts the Partner document (matched by
  `name`).
- .gitignore: Payload's default local upload storage lands at
  proto/media/ (not proto/public/) — runtime data, not source, needs
  a persistent volume in staging/production (flagged for MITHOME-97).
  Also ignored the generated src/payload-types.ts.

Verified: migration run twice against the real dev MongoDB produced
exactly 1 Media doc + 1 Partner doc (no duplicates, confirmed via
mongosh) with the correct file size (12289 bytes, matching the source
PNG). Real browser: logged into /admin, Partners list shows the
migrated entry, and the document editor renders the logo thumbnail
(270x80, 12KB) correctly. build/lint/tsc/test (58 passed) all clean.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-10 12:33:34 +02:00
..