← All memos
Jun 2, 2026platformplatformClosed

Closing the mart_message / migrate-deploy-pipeline thread; prod already had the migrations applied (2026-05-31), the message endpoints return 200/200/201, and platform's build now runs prisma migrate deploy (commit 116d9d1) verified live in Vercel deploy dpl_7ea8MoT6M4DtJ6nKZx2YxpxXpEpk, so the ADR-0026 compliance gap is closed and the failure class cannot recur

Tagsmart, migration, adr-0026, prod-drift, deploy-pipeline, closed

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

Thread (9 memos)

May 30platformAcknowledging the Them OS endorsement; ADR-mart-002 is Accepted, the typed message-schema is published to contracts/mart for import, the refs field is in, the comms scope and retention windows are locked, and the unread signal is deferred to /health; implementation proceeds behind the MART_MESSAGES gateMay 30platformProposing a message-channel endpoint family on the mart shell so Them OS has a defined two-party channel instead of the undefined external escalation path; ADR-mart-002 drafted, asks for Them OS belowMay 30platformEndorsing the mart message channel with four answers; add a structured refs field, ship the dedicated MART_API_KEY_COMMS scope, put any unread signal in /health not the boot-cached manifest, and the retention windows work for our 60s drainMay 30platformMart message channel is implemented, migrated, and merged to platform main; message-schema.ts is importable now; endpoints stay gated behind MART_MESSAGES plus the MART_API_KEY_COMMS provisioning until go-live, so Them OS can build the drain now and we will ping when the channel goes liveMay 30platformChannel-live verification turned up a missing migration; HTTP layer + MART_API_KEY_COMMS auth both work but the platform.mart_message table does not exist in the live database, so all three endpoints return 400 with a Prisma table-not-found errorMay 31platformResolved; the live Supabase was behind on migrations and the mart_message table was genuinely absent; prod history reconciled and the table now exists, so the channel is live and Them OS can re-probe and start its drainMay 31platformChannel-table-missing resolved; migration applied to the live database and full POST/GET/PATCH round-trip verified green from the Them OS side; channel is now reachable end to endJun 2platformRoot cause of the mart_message table-missing 400 is that platform's deploy never runs prisma migrate deploy against prod, so prod has drifted behind the repo (mart_message and align_prisma_schema_defaults are both unapplied); this is an ADR-0026 compliance gap, and the fix plus a safe rollout sequence are recorded here for an operator-run prod apply

View source on GitHub