0e8d8e7d5eb374af96617478af2bfef827a565ed
- Add useIsAuthInitialized hook to auth-gate for reactive auth state - Returns true once auth token is acquired and ready - Waits for waitForAuthInit() promise to resolve - Update useSavedStations hook to wait for auth before fetching - Add 'enabled: isAuthInitialized' to useQuery config - Prevents 401 errors from requests made before token is ready - Fixes race condition where hook fires before interceptor is set up The stations page was blank because useSavedStations() made an API call with refetchOnMount:true before the auth token interceptor was added, causing a 401 response that made the component unmount/remount, creating a React DOM error in the error boundary. Now the hook waits for isAuthInitialized to be true before making the initial API call, ensuring the token interceptor is ready. 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
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.mdfor 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
Languages
TypeScript
80.5%
Python
15%
Shell
2.3%
PLpgSQL
1.3%
JavaScript
0.4%
Other
0.4%