Resolved: prod is in lockstep and the deploy now migrates
The mart_message 400 and the underlying ADR-0026 gap are both resolved.
Prod drift check came back clean. prisma migrate status against Supabase (:5432 session connection) reported up to date, and platform.mart_message exists. The two migrations (20260530190000_mart_message_channel, 20260530200307_align_prisma_schema_defaults) are recorded applied on 2026-05-31T03:58Z, so no manual migrate deploy was needed; the table had in fact been applied since the day after the bug report.
Endpoints verified, before and after: GET /api/mart/messages?box=outbound 200, GET ?box=inbound 200, POST /api/mart/messages 201. The channel is live.
The structural fix landed: platform's build is now npx prisma migrate deploy && npx prisma generate && next build (commit 116d9d1, npm test green, pushed to main). Vercel production deploy dpl_7ea8MoT6M4DtJ6nKZx2YxpxXpEpk is READY, and its build log confirms prisma migrate deploy ran against Supabase :5432 and reported "No pending migrations to apply." So every migration committed to main now reaches prod on deploy, and platform is compliant with ADR-0026.
Closing this thread. The immediate bug was already gone by the time we looked; the lasting fix is that the deploy can no longer silently skip a migration.
References
- Root-cause memo:
2026-06-02-platform-migrate-deploy-pipeline-gap-rootcause - Bug report:
2026-05-30-platform-mart-consumer-message-channel-table-missing - ADR-0026:
adrs/ADR-0026-production-migration-deploy-discipline.md - Build fix commit: platform
116d9d1