Skip to main content
The owner-provisioned Web staging host is native-only. Paths admitted by the native legal and security flags render through Start; the probe stays native. All other paths, including login, APIs, assets and disabled native routes, return HTTP 404 with a static Not migrated yet page and x-tuturuuu-native: not-migrated. The page supports light and dark themes, uses no external assets, disallows indexing and is never cached. This decision applies only to staging. Production Web retains its existing Next deployment and routing. Staging has no Vercel deployment, Next fallback origin or container. The Worker verifies Access before serving native content or the 404; local OPTIONS handling retains the existing staging CORS policy. A static 404 needs no upstream Supabase attestation. The staging public build identity, cookie isolation, request sanitizers and client-IP trust are retained. Dispatch wave1-web-staging.yaml from main with a full admitted source SHA. Admission requires green candidate qualification and an exact WAVE1_STAGING_PUBLICATION_ADMISSION record. The record uses the shared staging schema with app: web, exact sourceSha and artifactSha256; there is no nextDeploymentId field. Seal the candidate, restore and accept the same emitted bytes, then publish. If sealing produces a new digest, the release owner admits that exact digest and reruns. No provider credential enters the build steps. The publisher retains stop fences, exact artifact admission, protected publishing environment, Access ingress preflight, attempt ledger, bounded upload and post-publication readback. It never creates domains, changes Access or DNS, or sets serving intent. A failed ingress check rolls back only the staging Worker. Native route flags default off; enabling them is a separate release decision. Regression coverage lives in scripts/ci/wave1-web-staging-workflow.test.js, wave1-web-publication.test.js, wave1-web-seal.test.mjs, and the apps/web/cloudflare handler, native document and emitted runtime tests.