{"ok":true,"build":{"sha":"5508fce7","ref":"main","env_scope":"production","region":"iad1"},"summary":{"ready":39,"off":12,"incomplete":0},"features":[{"key":"page_pin_amy","label":"PIN gate on the unlisted /for-amy page","status":"ready","degrades":false},{"key":"massage_bookings","label":"Real bookings on the Renton massage site (/massage/book → massage_bookings)","status":"off","degrades":true},{"key":"massage_business_line","label":"The Renton massage business line: calls and texts to the public number forwarded to the owner (lib/massage/businessLine.ts)","status":"off","degrades":true},{"key":"massage_safety","label":"The therapist safety button + check-in watchdog on the Renton massage site (/massage/session/<id>)","status":"off","degrades":false},{"key":"apple_sign_in_revoke","label":"Revoking Sign in with Apple when a massage app customer deletes their account (lib/auth/appleRevoke.ts, issue #1649)","status":"off","degrades":false},{"key":"massage_payments","label":"Card payments, refunds, tips and therapist payouts on the Renton massage site (issue #1534)","status":"off","degrades":false},{"key":"massage_gift_cards","label":"Gift cards on the Renton massage site: buy, email, redeem at checkout (issue #1586)","status":"off","degrades":false},{"key":"massage_rewards","label":"Reward points on the Renton massage site: balance, points vouchers, friend invites (issue #1604)","status":"off","degrades":false},{"key":"call_alert","label":"Inbound-call email alerts (/api/cron/call-alert, every 5 min)","status":"ready","degrades":true},{"key":"sessions_digest","label":"Hourly engaged-sessions email (/api/cron/posthog-sessions-digest)","status":"ready","degrades":true},{"key":"call_analysis","label":"Per-call analysis stored on call_logs (lib/ppl/callAnalysis.ts, run by the call-alert cron)","status":"ready","degrades":true},{"key":"site_created_alert","label":"New-site email to the owner with where the builder left off (/api/cron/site-created-alert, every 15 min)","status":"ready","degrades":true},{"key":"posthog","label":"PostHog (server-side product + money funnel analytics)","status":"ready","degrades":true},{"key":"supabase","label":"Supabase (database + auth)","status":"ready","degrades":false},{"key":"gsc_auto_connect","label":"Search Console auto-connect (new domains become measurable)","status":"ready","degrades":true},{"key":"gsc","label":"Search Console (rank sync)","status":"ready","degrades":true},{"key":"commerce","label":"Commerce (Stripe checkout + webhooks)","status":"ready","degrades":false},{"key":"geo_rentals","label":"Geo-domain rental subscriptions (recurring revenue)","status":"ready","degrades":false},{"key":"trade_site_billing","label":"Auto-built trade sites — custom-domain subscriptions","status":"ready","degrades":false},{"key":"ppl","label":"Pay-per-call lead billing on geo tracking numbers","status":"ready","degrades":false},{"key":"ppl_outcome_survey","label":"Did-it-become-a-job text to the business after a billable-length call (/api/cron/ppl-outcome-survey, hourly)","status":"off","degrades":true},{"key":"ppl_pitch_auto","label":"Text-first pitch cron — text 1 / follow-up in the business's own hours, an email to the owner on every step (/api/cron/ppl-pitch, hourly)","status":"off","degrades":true},{"key":"voicemail_relay","label":"A voicemail-first message can actually reach the operator","status":"ready","degrades":true},{"key":"call_cascade","label":"Ring local businesses one at a time until one takes the call","status":"off","degrades":false},{"key":"trade_pipeline","label":"Auto-built trade sites — nightly sweep-and-build cron","status":"ready","degrades":false},{"key":"trade_pipeline_mail","label":"Auto-built trade sites — nightly claim postcards (Lob)","status":"ready","degrades":false},{"key":"admin_alerts","label":"Operator alerts by email (ADMIN_EMAILS)","status":"ready","degrades":true},{"key":"ai","label":"AI (copy, hero images, backdrops)","status":"ready","degrades":true},{"key":"email","label":"Transactional email (Resend)","status":"ready","degrades":false},{"key":"sms","label":"SMS (Twilio)","status":"ready","degrades":true},{"key":"postcard_mail","label":"Physical mail (Lob postcards)","status":"ready","degrades":false},{"key":"cron","label":"Scheduled jobs","status":"ready","degrades":false},{"key":"domains","label":"Domain provisioning (Vercel API)","status":"ready","degrades":true},{"key":"domain_purchase","label":"One-click domain purchase (Vercel registrar)","status":"ready","degrades":true},{"key":"call_tracking","label":"Buy Twilio tracking numbers (spends money)","status":"ready","degrades":true},{"key":"captcha","label":"Signup/subscribe captcha","status":"ready","degrades":true},{"key":"partner_audio","label":"Partner audio provisioning (HiveJournal)","status":"ready","degrades":false},{"key":"serp_recheck","label":"SERP re-check (DataForSEO)","status":"ready","degrades":false},{"key":"ai_visibility","label":"AI answer visibility (weekly OpenAI web-search prompts)","status":"ready","degrades":false},{"key":"hj_founding_family_counts","label":"Founding-family counts on /admin/ops (HiveJournal)","status":"ready","degrades":true},{"key":"rehearsal_practice","label":"Sales-call rehearsal engine (HiveJournal)","status":"ready","degrades":false},{"key":"backdrop_pool","label":"Painterly backdrop pool (spends money)","status":"ready","degrades":true},{"key":"hero_pool","label":"Painterly hero pool (spends money)","status":"off","degrades":true},{"key":"menu_host","label":"delivered.menu restaurant surface","status":"ready","degrades":true},{"key":"tenant_root","label":"Tenant sites on their own root (off the brand domain)","status":"ready","degrades":true},{"key":"public_base_url","label":"App public base URL (absolute links to third parties)","status":"ready","degrades":true},{"key":"yardsale_host","label":"yardsalesites.com garage-sale surface","status":"ready","degrades":true},{"key":"lemonyum_host","label":"lemonyum.com lemonade-stand surface","status":"ready","degrades":true},{"key":"persona_findings","label":"Persona-testing receiver (HiveJournal)","status":"ready","degrades":true},{"key":"hear_this_page","label":"Hear this page (billed TTS)","status":"ready","degrades":true},{"key":"render_workers","label":"Owner-run render workers (Mac minis)","status":"off","degrades":true}],"checks":[{"key":"massage_email_matching","label":"Massage app: \"My bookings\" includes guest bookings made on the customer's confirmed email (issue #1649)","status":"ready"}]}