Part of #79, and a web blocker in its own right.
Problem
benchreview.org is not deployed, and the mobile app's server is fixed at build time — there is no runtime setting. config/mobile.ts defaults to:
url: envVars.MOBILE_URL ?? 'https://benchreview.org'so every non-bundled build today produces an app that cannot reach its server and runs permanently on its offline bundle. Only the MOBILE_E2E=1 fully-bundled build is honest right now.
The web artifact has the matching problem. APP_URL is unset, and the conformance gate reports it on every run:
✓ build host is declared (APP_URL)
APP_URL unset — artifact carries 17930 loopback URLs and is NOT deployable.
Local preview only; set APP_URL to build for deploy.17,930 localhost URLs across 3,593 pages. The gate deliberately passes this as a warning rather than failing, because local builds are legitimate — but it means no build produced so far is deployable.
Blocks
- Universal links (#80) — the association file has to be served from the real origin over https, with no redirect
- Device builds (#82) — a phone cannot reach this Mac's localhost, so device testing needs a real origin or a tunnel
- Any demo build that is not fully bundled
What to do
- Pick the deploy target (the earlier decision was explicitly "not decided yet")
- Set
APP_URL=https://benchreview.orgfor release builds and confirm the gate's loopback count drops to 0 - Serve
dist/plus the API (per the deploy model: prod is the pre-rendered artifact + API; stx is build-time only, so no publish step) - TLS and the apex/
wwwdecision, sincetrustedOriginsandassociatedDomainsinconfig/mobile.tsname the apex exactly - Set
MOBILE_URLin CI for mobile builds - Re-run
bun run gateandbun scripts/smoke-deployment.ts
Related: #55 (ops — backups, photo storage, SMTP, alerting) covers what has to be true of the host once it exists.