Eric Gullickson f1dd48808b Fix blank stations page - add auth gate guard in App.tsx
ROOT CAUSE: Race condition where StationsPage renders before auth
token is ready, causing DOM state mismatch.

Timeline of the bug:
1. Auth0 sets isAuthenticated=true
2. App renders StationsPage before isAuthInitialized=true
3. useSavedStations hook is disabled (enabled: false)
4. Google Maps loads and manipulates DOM
5. Auth token finally acquired, isAuthInitialized=true
6. Component re-renders with query now enabled
7. React tries to remove DOM nodes already removed by Google Maps
8. NotFoundError: removeChild fails

SOLUTION: Add isAuthGateReady check in App.tsx before rendering
protected routes. Show "Initializing session..." until auth gate is
fully initialized.

Changes:
- Import useIsAuthInitialized hook in App.tsx
- Call hook in App component
- Add guard check after isAuthenticated check
- Show loading UI if authenticated but auth gate not ready
- Add debug logs to track render flow

Now the page won't render until BOTH:
1. isAuthenticated=true (Auth0)
2. isAuthInitialized=true (our token gate)

This prevents the race condition that causes the removeChild DOM error.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 19:26:21 -06:00
2025-11-01 21:27:42 -05:00
2025-11-04 18:46:46 -06:00
2025-11-03 14:06:54 -06:00
2025-10-10 23:26:07 -05:00
2025-11-03 16:12:29 -06:00
2025-11-04 18:46:46 -06:00
2025-11-03 16:12:29 -06:00
2025-11-01 21:27:42 -05:00
2025-11-04 18:45:14 -06:00
2025-09-28 20:35:46 -05:00
2025-11-04 18:38:06 -06:00
2025-11-03 14:06:54 -06:00
2025-11-04 18:46:46 -06:00
2025-11-04 18:46:46 -06:00
2025-11-04 18:38:06 -06:00
2025-08-09 17:45:54 -05:00
2025-09-22 20:31:27 -05:00
2025-09-22 20:31:27 -05:00
2025-11-04 18:38:06 -06:00

MotoVaultPro — Simplified Architecture

Simplified 5-container architecture with integrated platform feature.

Requirements

  • Mobile + Desktop: Implement and test every feature on both.
  • Docker-first, production-only: All testing and validation in containers.
  • See CLAUDE.md for development partnership guidelines.

Quick Start (containers)

make setup    # build + start + migrate (uses mvp-* containers)
make start    # start 5 services
make rebuild  # rebuild on changes
make logs     # tail all logs
make migrate  # run DB migrations

Documentation

  • AI quickload: AI-INDEX.md
  • Docs hub: docs/README.md
  • Features: backend/src/features/{name}/README.md
  • Frontend: frontend/README.md
  • Backend core: backend/src/core/README.md

URLs and Hosts

  • Frontend: https://motovaultpro.com
  • Backend health: https://motovaultpro.com/api/health
Description
No description provided
Readme 90 MiB
Languages
TypeScript 80.5%
Python 15%
Shell 2.3%
PLpgSQL 1.3%
JavaScript 0.4%
Other 0.4%