Commit Graph

626 Commits

Author SHA1 Message Date
null cbffaeca9f test(settings): ChangePasswordViewModelTest — validation + typed exception mapping 2026-07-01 02:19:31 -05:00
null e585856228 feat(nav): wire ChangePasswordScreen composable into AppNavigation 2026-07-01 02:19:26 -05:00
null 06c94f55f4 feat(nav): add CHANGE_PASSWORD route constant 2026-07-01 02:19:22 -05:00
null a096ca15d1 feat(settings): add Change password row to SecurityScreen (email/password accounts only) 2026-07-01 02:19:18 -05:00
null 30000e7150 feat(settings): ChangePasswordScreen + ViewModel with validation and typed error mapping 2026-07-01 02:19:14 -05:00
null 7fe095ef3b feat(auth): delegate changePassword in FirebaseAuthRepositoryImpl 2026-07-01 02:19:11 -05:00
null 54608796e1 feat(auth): add changePassword to AuthRepository interface 2026-07-01 02:19:04 -05:00
null d1e23f24ee feat(auth): wire changePassword with reauth + typed exceptions in FirebaseAuthDataSource 2026-07-01 02:19:01 -05:00
null 07eaf3c989 feat(auth): ChangePasswordException sealed class with typed failure reasons 2026-07-01 02:18:50 -05:00
null 2ecff95c12 docs: update home-dark screenshot 2026-07-01 01:50:54 -05:00
null 7ff405cad6 feat(notifications): remove partner avatar from notifications (privacy) 2026-07-01 01:50:50 -05:00
null f47fa3cdbd test(auth): ForgotPasswordViewModelTest — typed exception + blank-email coverage 2026-07-01 01:50:46 -05:00
null 1a6cdaa078 feat(auth): enumeration-safe forgot-password confirmation copy 2026-07-01 01:50:40 -05:00
null 79bfea7cfb feat(auth): use typed PasswordResetException in ForgotPasswordViewModel 2026-07-01 01:50:36 -05:00
null 885af0b9e4 feat(auth): wire typed PasswordResetException into FirebaseAuthDataSource 2026-07-01 01:50:32 -05:00
null a1d2ea2db8 feat(auth): typed PasswordResetException sealed class 2026-07-01 01:50:27 -05:00
null 7aa72532b7 docs: update home-dark screenshot 2026-07-01 00:21:54 -05:00
null f117da16c8 test(home): 10 unit tests for computeDailyQuestionState 2026-07-01 00:21:42 -05:00
null 0feb72eaf0 feat(home): reveal-waiting art swap, copy polish, extracted computeDailyQuestionState 2026-07-01 00:21:33 -05:00
null b15e696388 docs(questions): v6 — patch_policy and mass_rewrite_policy metadata fields 2026-06-30 23:48:23 -05:00
null 8897e103b6 docs(questions): v6 — Patch Mode Required, Mass Rewrite Exception 2026-06-30 23:48:18 -05:00
null 3b49b76b33 docs(questions): v7 — Patch Discipline Checks, Fun But Grounded Checks 2026-06-30 23:48:14 -05:00
null 1bdbed4fbc docs(questions): v8 — Daily Patch Discipline, Fun But Grounded 2026-06-30 23:48:10 -05:00
null 7f20fa8ee7 docs(questions): v6 — Patch Discipline, Fun But Grounded gate 2026-06-30 23:48:05 -05:00
null 94a7feeb43 docs(questions): add Daily Patch Review Loop Policy v1 and Research Notes v2 2026-06-30 23:48:01 -05:00
null fd5fae7444 docs: update README with E2EE chat, backup, and partner-assisted restore 2026-06-30 23:46:02 -05:00
null 39be5dd238 docs: R25-d entry for pruneDeadTokens implementation 2026-06-30 23:45:52 -05:00
null 1daf0c2bf5 docs(questions): v5.1 — Research-Informed Fun Rules, Daily Game Mechanics, Daily Content Metadata 2026-06-30 23:45:47 -05:00
null d8408a2c44 chore(functions): rebuild dist with pruneDeadTokens wired into all 19 push sites 2026-06-30 23:45:42 -05:00
null afd1eab299 feat(users): wire pruneDeadTokens into onUserDelete 2026-06-30 23:45:36 -05:00
null 2488e18790 feat(notifications): wire pruneDeadTokens into streakReminder 2026-06-30 23:45:31 -05:00
null 40e4f48131 feat(notifications): wire pruneDeadTokens into dailyQuestionReminder 2026-06-30 23:45:26 -05:00
null 355edd0887 feat(couples): wire pruneDeadTokens into acceptInviteCallable 2026-06-30 23:45:21 -05:00
null f55c49010d feat(notifications): wire pruneDeadTokens into sendThinkingOfYouCallable 2026-06-30 23:36:09 -05:00
null 5306d40c72 feat(notifications): wire pruneDeadTokens into sendGentleReminderCallable 2026-06-30 23:35:59 -05:00
null e35b8151c6 feat(notifications): wire pruneDeadTokens into reengagement 2026-06-30 23:35:49 -05:00
null 35eca7d08d feat(notifications): wire pruneDeadTokens into gameRetention 2026-06-30 23:35:42 -05:00
null 7b5790da43 feat(billing): wire pruneDeadTokens into onEntitlementChanged 2026-06-30 23:35:38 -05:00
null c7181e276f feat(questions): wire pruneDeadTokens into onMessageWritten 2026-06-30 23:35:29 -05:00
null 8b3356e60d feat(questions): wire pruneDeadTokens into onAnswerWritten 2026-06-30 23:35:24 -05:00
null 9ca9f19c51 feat(questions): wire pruneDeadTokens into onAnswerRevealed 2026-06-30 23:35:20 -05:00
null 13c0769efb feat(games): wire pruneDeadTokens into onGameSessionUpdate 2026-06-30 23:35:15 -05:00
null ffa038ca56 feat(dates): wire pruneDeadTokens into onDateReflectionWritten 2026-06-30 23:35:07 -05:00
null 2aa08efd39 feat(dates): wire pruneDeadTokens into onDateHistoryCreated 2026-06-30 23:35:00 -05:00
null f8240e01a9 feat(dates): wire pruneDeadTokens into createDateMatch 2026-06-30 23:34:56 -05:00
null 342ca37e91 feat(couples): wire pruneDeadTokens into scheduledOutcomesReminder 2026-06-30 23:34:39 -05:00
null c32a5ad8cc feat(couples): wire pruneDeadTokens into onCoupleLeave 2026-06-30 23:34:33 -05:00
null 6fda1574ea feat(backup): wire pruneDeadTokens into onRestoreRequested 2026-06-30 23:34:26 -05:00
null b564d1da42 feat(notifications): add pruneDeadTokens utility for FCM dead-token cleanup 2026-06-30 23:34:22 -05:00
null 38eae8f915 docs: R25 coverage entries, instrumented test landmine warning, tokenized snapshot URL note 2026-06-30 23:33:54 -05:00