apps/mind has native TanStack Start + Vite+ + Void source beside its Next build,
generated by the start-bridge codemod. The Next
build and vercel.json are untouched, so the current deployment keeps serving until
the route is flipped. vercel-production-mind.yaml still deploys the Next app.
Worker
- Staging candidate: the staging Worker name (
workers_devoff,TUTURUUU_NOINDEX=1). A production Worker (tuturuuu-mind,workers_devandpreview_urlsoff,TUTURUUU_NOINDEX=0) is created by the cutover PR; nothing here attaches a route. - Entry:
apps/mind/cloudflare/worker.ts; Wrangler config is emitted byvoidintodist. - Host:
mind.tuturuuu.com. Root-only:mountHostsis empty andunknownHostisreject, sotuturuuu.com/mindand any other host answer 404 before app code runs. - Binding:
ASSETS(static output,run_worker_first). - Variables (names):
TUTURUUU_NOINDEX, optionalINTERNAL_WEB_API_ORIGIN(defaulthttps://tuturuuu.com). - Secrets (names, set in the Worker, never in the repo):
NEXT_PUBLIC_SUPABASE_URL,NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY,SUPABASE_SECRET_KEY, andTUTURUUU_APP_COORDINATION_SECRET. Configure service bindingABUSE_GUARDtotuturuuu-abuse-guard, secretABUSE_GUARD_KEY_PEPPER, and text variableABUSE_GUARD_FAMILIES=proxy;ABUSE_GUARD_TIMEOUT_MSis optional. Upstash is not required. Compare the remaining Worker secrets with the Vercel project environment list before the flip. - Optional variables read by the source:
MIND_APP_URL,WEB_APP_URL.
Build and qualification
mind-cloudflare.yaml runs the same steps in CI. test:runtime starts the emitted Worker in workerd
with synthetic secrets and no network egress: build identity, root host, apex rejection,
unknown paths, and the signed-out redirect through the app-owned
cloudflare/auth-redirect.runtime.mjs fixture (8 checks).
The app proxy admits anonymous GET/HEAD /api/build-info without an app-session
refresh, so deployment verification gets 200 instead of 401.
Smoke checks after the route is attached
5xx.
Rollback
- Before the flip, record the current production Vercel deployment id for the app (the repo
does not store it) and the DNS records and TTLs for
mind.tuturuuu.comin the release record. - Roll back by detaching the Worker route or restoring the captured DNS records to the
recorded deployment.
vercel-production-mind.yamlstill deploys the Next app. - Rerun the smoke checks against the previous origin.