Repository navigation
Step 3: Supabase production cutover and guarded release - #434
Merged
Merged
Conversation
Muawiya-contact
marked this pull request as ready for review
October 21, 2026 16:52
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Step 3: one PR for the Supabase production cutover
This is the single large, reviewable Step 3 branch requested by the owner. It starts at merged
develop(caaf0be) and targetsmainso the release diff contains Steps 1–3 together. It is ready for code review; merging requires the owner's specific confirmation. This head branch differs from issue #418's original exactdevelop→mainrule; that exception needs owner review before merge. Issue #418 remains open until the operational gates below are complete.Review scope
This PR includes the already reviewed Step 1/2 commits from
develop, so GitHub reports 279 files againstmainand its full downloadable diff exceeds the API line limit. Review the Step 3 delta at develop...codex/step3-release-cutover and the focused Step 3 commits. Confirm the prior merged PRs separately in the release diff.Changes
/health, and an unsigned worker boot check. It deploys no Cron schedule.docs/SUPABASE_CUTOVER.md; updatesRELEASING.mdand the codebase map.Version and What's New
The final branch-to-main diff includes app version 1.10.15 and its one-time What's New card from merged Step 2. The card highlights daily reminders at the learner's chosen time. Native runtime stays 1.10.8. The mobile release diff must be checked again if
mainordevelopmoves.Verification and current status
763e799. Netlify reports its deploy preview canceled by site policy, so the new browser routes still require live verification after merge. Focused public-config, browser, production-batch guard and inactive-Cron runner tests passed locally. This review added two production-URL guard tests; all 11 release-guard tests and eight production target/Cron Python unit tests passed locally. The workflow YAML parsed andgit diff --checkpassed. The one-time Cron installer was not run against production or a live pg_cron test database.ON_ERROR_STOP; read-back found the expected API and worker schema objects. The temporary database was removed.schema_ready=trueandsupabase_cutover_schema=ready, and skipped the SQL apply job. The ledger now lists all 130 production migrations. Production Edge deploy, OTA and Cron remain unchanged. Railway Auto Deploy is disabled on all three live services per owner report; the services and both Cron schedules remain running.true. Email remains disabled with cap zero; production provider calls are not yet exercised.cron.jobschema yet. This is a point-in-time headroom check, not a 500-user load guarantee. The owner confirmed Netlify's currentVITE_API_URLremains on Railway,VITE_SUPABASE_URLnames the production project, and its publishable key is present.Merge and cutover gates still open
2026-10-21T11:43:58Z; its checksum, archive format, isolated restore, and 85-file migration rehearsal passed. Its non-secret reference is saved inproduction-schema. The owner approved the exact-tag production SQL run. It applied 0046–0130 and the first live schema check passed. The final verifier initially hit a Python import error. The corrected, owner-approved read-only run 39598031891 passed both schema checks and skipped SQL application. All 85 verified filenames are now inbackend/migrations/applied.txt. Do not rerun SQL. The temporary exact-tag environment allowlist entries were removed after completion, retaining onlymain.api,remindersandpool-topupper the owner, with the existing deployments and schedules still running. Obtain the owner's explicit confirmation for this exact PR merge. Publish and test the new Netlify pages onmainwith its current Railway API setting. Then run the protected main-only Supabase deploy, verify live flows, install inactive Cron using its successful deploy run ID, switch and recheck Netlify, test the phone preview, approve production OTA separately, and hand over Cron without duplicate executors.The existing
production-schemaGitHub environment was verified and updated to require Muawiya-contact approval while keeping itsmainbranch policy; the backup reference and correctly named production deploy token are recorded there. The database restore drill does not cover external Storage files or Supabase service settings. The current public Netlify bundle contains the production Supabase Auth hostname and the Railway API hostname; the owner confirmed those saved Netlify URL settings and the presence of a publishable key, but its value was not independently checked. The PR Netlify preview is canceled by site policy. A read-only check of the current published site found/privacyserves HTML, while/confirmed,/reset-password, and/p/...still serve the old app shell. The new public pages must be published and tested before Auth or mobile URLs change.The code is ready for review; production deployment, client routing, Cron activation, and Railway retirement remain separate guarded operations. No production switch or PR merge is requested by marking this PR ready.