d3ro-voice/apps/mobile-rn/src/screens
Yun Chan b6fe588a7c feat(web): serve the web app under /app and send every billing link there (WS-B)
apps/web was never deployed, so /billing on the public domain returned the
landing page and d3ro.dev (desktop "upgrade") did not resolve.

- apps/web runs with basePath /app and output standalone; /download and
  /releases redirect to the site's #download. A Dockerfile and a d3ro-web
  compose service (port 3002) deploy it to the NAS with the other images.
- The site bridge worker forwards /app/* to WEB_APP_ORIGIN (the tunnel host)
  and rewrites upstream redirects; everything else still goes to Pages.
  With no origin configured /app answers 503 instead of the landing page.
- Desktop upgrade, desktop Stripe return, mobile subscription management,
  the web checkout/portal returns and the site all use billingUrl(); the
  return query is success=1 / canceled=1, which the billing page reads.
  The billing page highlights ?tier=pro|pro_plus, and signing in from a
  billing link returns to the same plan.
- auth/callback pins the redirect origin in production and rejects
  protocol-relative next= values (open redirect).
- Mobile legal links use SITE_URLS (fixes the missing slash on /terms).
- Compose drops the unused NEXT_PUBLIC_API_URL and the dead wwwroot legal
  mounts; deploy scripts add the web image and the SUPABASE_* values the NAS
  compose already required; .dockerignore keeps app .env files out of images.
- Supabase auth redirects allow /app/** (remote dashboard must match).

Policy: docs/REFACTOR_POLICY.md Wave 3, W3-3 and W3-4.
2026-09-26 15:48:30 +09:00
..
AccountScreen.tsx feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
ActionsScreen.tsx feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
AdminScreen.tsx feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
AdminUserDetailScreen.tsx feat(mobile): keep team, template, and report flows in sync with the server 2026-09-16 23:25:51 +09:00
CommandsScreen.tsx feat(mobile): keep team, template, and report flows in sync with the server 2026-09-16 23:25:51 +09:00
DashScreen.tsx feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
DataPortabilityScreen.tsx feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
DevicesScreen.tsx feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
DictionaryScreen.tsx feat(mobile): keep team, template, and report flows in sync with the server 2026-09-16 23:25:51 +09:00
ForgotPasswordScreen.tsx feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
HistoryDetailScreen.tsx feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
HistoryScreen.tsx feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
InviteAcceptScreen.tsx feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
KnowledgeScreen.tsx feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
LoginScreen.tsx feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
MeetingDetailScreen.tsx feat(mobile): keep team, template, and report flows in sync with the server 2026-09-16 23:25:51 +09:00
MeetingsScreen.tsx feat(mobile): keep team, template, and report flows in sync with the server 2026-09-16 23:25:51 +09:00
MemosScreen.tsx feat(mobile): keep team, template, and report flows in sync with the server 2026-09-16 23:25:51 +09:00
NotificationsScreen.tsx feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
OnboardingScreen.tsx feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
ProPaywallScreen.tsx feat(web): serve the web app under /app and send every billing link there (WS-B) 2026-09-26 15:48:30 +09:00
RecordScreen.tsx feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
SettingsScreen.tsx feat(web): serve the web app under /app and send every billing link there (WS-B) 2026-09-26 15:48:30 +09:00
SignUpScreen.tsx feat(web): serve the web app under /app and send every billing link there (WS-B) 2026-09-26 15:48:30 +09:00
TalkScreen.tsx feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
TeamDetailScreen.tsx feat(mobile): keep team, template, and report flows in sync with the server 2026-09-16 23:25:51 +09:00
TeamsScreen.tsx feat(mobile): keep team, template, and report flows in sync with the server 2026-09-16 23:25:51 +09:00
TemplatesScreen.tsx feat(mobile): keep team, template, and report flows in sync with the server 2026-09-16 23:25:51 +09:00
UpdatePasswordScreen.tsx feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
WorksHubScreen.tsx feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00