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:
Dani B
2026-01-28 00:49:01 -05:00
parent 4a20b93fae
commit ff56c75da0
7 changed files with 265 additions and 230 deletions

View File

@@ -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>