--- phase: 01-authentication plan: 05 type: execute wave: 3 depends_on: ["01-03", "01-04"] files_modified: ["lib/features/authentication/presentation/pages/reset_password_page.dart", "lib/features/authentication/presentation/widgets/password_reset_form.dart"] autonomous: true user_setup: - service: supabase why: "Configure password reset redirect URLs" env_vars: [] dashboard_config: - task: "Add password reset redirect URLs" location: "Supabase Dashboard → Authentication → URL Configuration → Site URL" - task: "Add password reset redirect URLs" location: "Supabase Dashboard → Authentication → URL Configuration → Redirect URLs" must_haves: truths: - "User can request password reset via email" - "User receives reset email within 1 minute" artifacts: - path: "lib/features/authentication/presentation/pages/reset_password_page.dart" provides: "Password reset request page" min_lines: 35 - path: "lib/features/authentication/presentation/widgets/password_reset_form.dart" provides: "Password reset form components" min_lines: 25 key_links: - from: "lib/features/authentication/presentation/pages/reset_password_page.dart" to: "lib/providers/auth_provider.dart" via: "password reset method" pattern: "resetPassword|_authProvider" --- Implement password reset request interface and form components. Purpose: Enable users to initiate password recovery through email-based reset flow. Output: Password reset request page with form validation and email submission. @~/.opencode/get-shit-done/workflows/execute-plan.md @~/.opencode/get-shit-done/templates/summary.md @.planning/PROJECT.md @.planning/ROADMAP.md @.planning/STATE.md @.planning/phases/01-authentication/01-RESEARCH.md Create password reset request page lib/features/authentication/presentation/pages/reset_password_page.dart Create ResetPasswordPage that: 1. Has email input field with validation 2. Uses AuthButton for "Send Reset Email" action 3. Shows success message after email sent 4. Shows error message for invalid email 5. Has loading state during email sending 6. Includes "Back to Login" navigation 7. Provides clear instructions to user 8. Handles rate limiting feedback (if email already sent) 9. Uses AuthRepository resetPassword() method 10. Has proper page structure and responsive design 11. Includes accessibility features 12. Shows helpful copy like "Check your email for reset link" Reset password page sends email request and shows appropriate success/error states Complete password reset request interface integrated with auth system Create password reset components lib/features/authentication/presentation/widgets/password_reset_form.dart Create PasswordResetForm widget that: 1. Accepts email field configuration 2. Provides email validation 3. Shows validation errors in real-time 4. Has onSubmit callback for email submission 5. Shows loading state during submission 6. Has proper styling consistent with AuthForm 7. Includes proper text input types 8. Responsive layout for mobile/tablet 9. Proper accessibility labels 10. Can be reused in different contexts Password reset form validates email properly and handles submission states correctly Reusable password reset form component 1. Password reset email sends successfully and arrives within 1 minute 2. Reset password page validates email input properly 3. Error handling covers all failure scenarios (invalid email, network issues, etc.) 4. Loading states show during email submission 5. Success message provides clear guidance to users Password reset request interface working with proper validation, email submission, and user feedback. After completion, create `.planning/phases/01-authentication/01-05-SUMMARY.md`