fix(01): resolve checker blocker issues
- Create missing Plan 01-07 (password reset navigation) - Update Plan 01-10 to contain logout functionality (covers AUTH-05) - Split Plan 01-04 into Plans 01-04 and 01-11 (2-3 tasks each) - Fix dependency references throughout phase - Update ROADMAP.md to reflect 11 plans in 4 waves
This commit is contained in:
@@ -4,38 +4,27 @@ plan: 04
|
||||
type: execute
|
||||
wave: 2
|
||||
depends_on: ["01-01", "01-02"]
|
||||
files_modified: ["lib/providers/auth_provider.dart", "lib/features/authentication/data/repositories/auth_repository_impl.dart", "lib/app/router.dart", "lib/presentation/pages/splash_page.dart"]
|
||||
files_modified: ["lib/features/authentication/data/repositories/auth_repository_impl.dart", "lib/providers/auth_provider.dart"]
|
||||
autonomous: true
|
||||
user_setup: []
|
||||
|
||||
must_haves:
|
||||
truths:
|
||||
- "Auth state changes trigger UI updates automatically"
|
||||
- "Navigation works based on authentication status"
|
||||
- "Auth repository implementation connects to Supabase"
|
||||
- "Auth state changes trigger UI updates automatically"
|
||||
- "Session persists across app restarts"
|
||||
artifacts:
|
||||
- path: "lib/providers/auth_provider.dart"
|
||||
provides: "Global auth state management"
|
||||
min_lines: 35
|
||||
- path: "lib/features/authentication/data/repositories/auth_repository_impl.dart"
|
||||
provides: "Supabase auth implementation"
|
||||
min_lines: 50
|
||||
- path: "lib/app/router.dart"
|
||||
provides: "Auth-based navigation"
|
||||
min_lines: 40
|
||||
- path: "lib/presentation/pages/splash_page.dart"
|
||||
provides: "Initial loading screen"
|
||||
min_lines: 20
|
||||
- path: "lib/providers/auth_provider.dart"
|
||||
provides: "Global auth state management"
|
||||
min_lines: 35
|
||||
key_links:
|
||||
- from: "lib/providers/auth_provider.dart"
|
||||
to: "lib/features/authentication/data/repositories/auth_repository_impl.dart"
|
||||
via: "dependency injection"
|
||||
pattern: "AuthRepository|_authRepository"
|
||||
- from: "lib/providers/auth_provider.dart"
|
||||
to: "lib/app/router.dart"
|
||||
via: "auth state listening"
|
||||
pattern: "onAuthStateChange|authStateChanges"
|
||||
- from: "lib/features/authentication/data/repositories/auth_repository_impl.dart"
|
||||
to: "supabase.auth"
|
||||
via: "Supabase client usage"
|
||||
@@ -43,10 +32,10 @@ must_haves:
|
||||
---
|
||||
|
||||
<objective>
|
||||
Implement authentication state management, Supabase repository, and navigation system.
|
||||
Implement authentication repository and state management.
|
||||
|
||||
Purpose: Connect UI components to Supabase authentication, manage auth state globally, and handle navigation based on user authentication status.
|
||||
Output: Working authentication system with session persistence and protected routes.
|
||||
Purpose: Connect UI components to Supabase authentication and manage auth state globally.
|
||||
Output: Working authentication system with session persistence and state management.
|
||||
</objective>
|
||||
|
||||
<execution_context>
|
||||
@@ -111,66 +100,18 @@ Output: Working authentication system with session persistence and protected rou
|
||||
<done>Global auth state management that automatically responds to authentication changes</done>
|
||||
</task>
|
||||
|
||||
<task type="auto">
|
||||
<name>Create auth-aware navigation system</name>
|
||||
<files>lib/app/router.dart, lib/presentation/pages/splash_page.dart</files>
|
||||
<action>
|
||||
Create navigation system with:
|
||||
|
||||
1. SplashPage that:
|
||||
- Shows while checking initial auth state
|
||||
- Navigates to login or home after auth check
|
||||
- Has proper loading indicator
|
||||
- Handles app startup sequence
|
||||
|
||||
2. Router configuration that:
|
||||
- Uses GoRouter for declarative routing
|
||||
- Has protected routes (redirect to login if not authenticated)
|
||||
- Has public routes (login, signup, password reset)
|
||||
- Listens to AuthProvider for auth state changes
|
||||
- Includes proper route definitions:
|
||||
- / → redirect based on auth state
|
||||
- /login → login page
|
||||
- /signup → signup page
|
||||
- /home → protected home route (placeholder)
|
||||
- Handles deep linking properly
|
||||
- Includes proper error handling for navigation
|
||||
</action>
|
||||
<verify>Navigation correctly redirects based on authentication status and all routes are accessible</verify>
|
||||
<done>Complete navigation system that protects routes and responds to authentication changes</done>
|
||||
</task>
|
||||
|
||||
<task type="auto">
|
||||
<name>Integrate auth system with main app</name>
|
||||
<files>lib/main.dart</files>
|
||||
<action>
|
||||
Update main.dart to:
|
||||
1. Wrap MyApp with appropriate providers (Riverpod/ChangeNotifierProvider)
|
||||
2. Initialize AuthProvider with AuthRepositoryImpl
|
||||
3. Configure router with auth state integration
|
||||
4. Set up proper error boundaries
|
||||
5. Ensure proper initialization order
|
||||
6. Add proper app structure with MaterialApp.router
|
||||
7. Configure theme and other app-level settings
|
||||
8. Ensure proper disposal of resources
|
||||
</action>
|
||||
<verify>App starts with splash screen, properly checks auth state, and navigates to appropriate initial screen</verify>
|
||||
<done>Complete app integration with authentication system</done>
|
||||
</task>
|
||||
|
||||
</tasks>
|
||||
|
||||
<verification>
|
||||
1. Authentication repository successfully connects to Supabase and handles all auth methods
|
||||
2. State management responds correctly to auth state changes
|
||||
3. Navigation system properly protects routes and redirects based on auth status
|
||||
4. Session persistence works across app restarts
|
||||
5. Error handling provides user-friendly feedback
|
||||
6. Loading states work properly during authentication operations
|
||||
3. Session persistence works across app restarts
|
||||
4. Error handling provides user-friendly feedback
|
||||
5. Loading states work properly during authentication operations
|
||||
</verification>
|
||||
|
||||
<success_criteria>
|
||||
Complete authentication system with Supabase integration, state management, and protected navigation ready for UI connection.
|
||||
Complete authentication repository and state management system ready for navigation integration.
|
||||
</success_criteria>
|
||||
|
||||
<output>
|
||||
|
||||
Reference in New Issue
Block a user