Commit Graph

618 Commits

Author SHA1 Message Date
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
null 88f2350c9c docs(questions): v5 rewrite — Daily Fun Gate, restructured guides, trimmed schema 2026-06-30 23:33:48 -05:00
null da7a497c33 docs: update ClaudeReport R24-d entry to mark all files committed 2026-06-30 21:25:13 -05:00
null 4773570745 docs: update ClaudeReport (R24-d/c) and Engineering_Reference_Manual (keybox phrase envelope) 2026-06-30 21:25:00 -05:00
null 683e4ed8d0 docs(questions): v4 content guide, v3 quality checklist, daily single choice weekday lineup spec 2026-06-30 21:24:56 -05:00
null aa09566636 feat(backup): lock-less phrase reveal, copy-to-clipboard, partner-restore empty-state, manual helper entry (R24-d) 2026-06-30 21:24:52 -05:00
null b78dc24870 feat(backup): add back button to restore screens (R24-d) 2026-06-30 21:24:36 -05:00
null 71227561e7 feat(backup): pass recovery phrase through RestoreManager fulfill/complete (R24-c) 2026-06-30 21:24:30 -05:00
null 209ad74532 feat(backup): add ckx:v1 keybox envelope for recovery phrase transfer (R24-c) 2026-06-30 21:24:26 -05:00