Commit Graph

  • f68cab5cf2 feat: signup flow, age gate, user model updates, how well screen, game prompt banner dev null 2026-07-02 02:42:55 -0500
  • 24823a39f0 feat: question discussion components, conversation VM, wheel session, settings, text input limits null 2026-07-01 21:39:00 -0500
  • 09fea873e2 fix: DateReflectionScreen and FirestoreDateReflectionDataSource updates null 2026-07-01 20:01:01 -0500
  • 896bf26b28 feat: date reflection reveal, UI upgrade plan, seed updates, ime-scan script null 2026-07-01 04:12:58 -0500
  • 222bbd1c57 chore(db): update seed database null 2026-07-01 02:55:38 -0500
  • b115cd2f66 chore(seed): update daily question content null 2026-07-01 02:55:34 -0500
  • e1a8528489 docs: restructure README screenshot table to daily-question stages + core screens null 2026-07-01 02:55:30 -0500
  • d49d67ecbd docs: add reveal-ready brand art + screenshot null 2026-07-01 02:55:24 -0500
  • 31a2652e48 feat(art): add illustration_daily_reveal_ready (light + dark) null 2026-07-01 02:55:20 -0500
  • d03e071098 feat(home): escalate daily-question art by state (partner prompt → reveal ready) null 2026-07-01 02:55:15 -0500
  • 6d0a52641c feat(daily): rename modes to weekday theme names (Mood Check Monday, Tiny Win Tuesday, etc.) null 2026-07-01 02:55:11 -0500
  • b19394b900 chore(seed): update daily question content to v61 weekly format null 2026-07-01 02:20:09 -0500
  • a1b77f6786 docs: update README home screenshot alt text null 2026-07-01 02:20:04 -0500
  • 18490f990e docs: update home screenshots (ready + your-turn states) null 2026-07-01 02:19:57 -0500
  • 611481786f fix(home): update PairedHomePreview to BOTH_ANSWERED state null 2026-07-01 02:19:35 -0500
  • cbffaeca9f test(settings): ChangePasswordViewModelTest — validation + typed exception mapping null 2026-07-01 02:19:31 -0500
  • e585856228 feat(nav): wire ChangePasswordScreen composable into AppNavigation null 2026-07-01 02:19:26 -0500
  • 06c94f55f4 feat(nav): add CHANGE_PASSWORD route constant null 2026-07-01 02:19:22 -0500
  • a096ca15d1 feat(settings): add Change password row to SecurityScreen (email/password accounts only) null 2026-07-01 02:19:18 -0500
  • 30000e7150 feat(settings): ChangePasswordScreen + ViewModel with validation and typed error mapping null 2026-07-01 02:19:14 -0500
  • 7fe095ef3b feat(auth): delegate changePassword in FirebaseAuthRepositoryImpl null 2026-07-01 02:19:11 -0500
  • 54608796e1 feat(auth): add changePassword to AuthRepository interface null 2026-07-01 02:19:04 -0500
  • d1e23f24ee feat(auth): wire changePassword with reauth + typed exceptions in FirebaseAuthDataSource null 2026-07-01 02:19:01 -0500
  • 07eaf3c989 feat(auth): ChangePasswordException sealed class with typed failure reasons null 2026-07-01 02:18:50 -0500
  • 2ecff95c12 docs: update home-dark screenshot null 2026-07-01 01:50:54 -0500
  • 7ff405cad6 feat(notifications): remove partner avatar from notifications (privacy) null 2026-07-01 01:50:50 -0500
  • f47fa3cdbd test(auth): ForgotPasswordViewModelTest — typed exception + blank-email coverage null 2026-07-01 01:50:46 -0500
  • 1a6cdaa078 feat(auth): enumeration-safe forgot-password confirmation copy null 2026-07-01 01:50:40 -0500
  • 79bfea7cfb feat(auth): use typed PasswordResetException in ForgotPasswordViewModel null 2026-07-01 01:50:36 -0500
  • 885af0b9e4 feat(auth): wire typed PasswordResetException into FirebaseAuthDataSource null 2026-07-01 01:50:32 -0500
  • a1d2ea2db8 feat(auth): typed PasswordResetException sealed class null 2026-07-01 01:50:27 -0500
  • 7aa72532b7 docs: update home-dark screenshot null 2026-07-01 00:21:54 -0500
  • f117da16c8 test(home): 10 unit tests for computeDailyQuestionState null 2026-07-01 00:21:42 -0500
  • 0feb72eaf0 feat(home): reveal-waiting art swap, copy polish, extracted computeDailyQuestionState null 2026-07-01 00:21:33 -0500
  • b15e696388 docs(questions): v6 — patch_policy and mass_rewrite_policy metadata fields null 2026-06-30 23:48:23 -0500
  • 8897e103b6 docs(questions): v6 — Patch Mode Required, Mass Rewrite Exception null 2026-06-30 23:48:18 -0500
  • 3b49b76b33 docs(questions): v7 — Patch Discipline Checks, Fun But Grounded Checks null 2026-06-30 23:48:14 -0500
  • 1bdbed4fbc docs(questions): v8 — Daily Patch Discipline, Fun But Grounded null 2026-06-30 23:48:10 -0500
  • 7f20fa8ee7 docs(questions): v6 — Patch Discipline, Fun But Grounded gate null 2026-06-30 23:48:05 -0500
  • 94a7feeb43 docs(questions): add Daily Patch Review Loop Policy v1 and Research Notes v2 null 2026-06-30 23:48:01 -0500
  • fd5fae7444 docs: update README with E2EE chat, backup, and partner-assisted restore null 2026-06-30 23:46:02 -0500
  • 39be5dd238 docs: R25-d entry for pruneDeadTokens implementation null 2026-06-30 23:45:52 -0500
  • 1daf0c2bf5 docs(questions): v5.1 — Research-Informed Fun Rules, Daily Game Mechanics, Daily Content Metadata null 2026-06-30 23:45:47 -0500
  • d8408a2c44 chore(functions): rebuild dist with pruneDeadTokens wired into all 19 push sites null 2026-06-30 23:45:42 -0500
  • afd1eab299 feat(users): wire pruneDeadTokens into onUserDelete null 2026-06-30 23:45:36 -0500
  • 2488e18790 feat(notifications): wire pruneDeadTokens into streakReminder null 2026-06-30 23:45:31 -0500
  • 40e4f48131 feat(notifications): wire pruneDeadTokens into dailyQuestionReminder null 2026-06-30 23:45:26 -0500
  • 355edd0887 feat(couples): wire pruneDeadTokens into acceptInviteCallable null 2026-06-30 23:45:21 -0500
  • f55c49010d feat(notifications): wire pruneDeadTokens into sendThinkingOfYouCallable null 2026-06-30 23:36:09 -0500
  • 5306d40c72 feat(notifications): wire pruneDeadTokens into sendGentleReminderCallable null 2026-06-30 23:35:59 -0500
  • e35b8151c6 feat(notifications): wire pruneDeadTokens into reengagement null 2026-06-30 23:35:49 -0500
  • 35eca7d08d feat(notifications): wire pruneDeadTokens into gameRetention null 2026-06-30 23:35:42 -0500
  • 7b5790da43 feat(billing): wire pruneDeadTokens into onEntitlementChanged null 2026-06-30 23:35:38 -0500
  • c7181e276f feat(questions): wire pruneDeadTokens into onMessageWritten null 2026-06-30 23:35:29 -0500
  • 8b3356e60d feat(questions): wire pruneDeadTokens into onAnswerWritten null 2026-06-30 23:35:24 -0500
  • 9ca9f19c51 feat(questions): wire pruneDeadTokens into onAnswerRevealed null 2026-06-30 23:35:20 -0500
  • 13c0769efb feat(games): wire pruneDeadTokens into onGameSessionUpdate null 2026-06-30 23:35:15 -0500
  • ffa038ca56 feat(dates): wire pruneDeadTokens into onDateReflectionWritten null 2026-06-30 23:35:07 -0500
  • 2aa08efd39 feat(dates): wire pruneDeadTokens into onDateHistoryCreated null 2026-06-30 23:35:00 -0500
  • f8240e01a9 feat(dates): wire pruneDeadTokens into createDateMatch null 2026-06-30 23:34:56 -0500
  • 342ca37e91 feat(couples): wire pruneDeadTokens into scheduledOutcomesReminder null 2026-06-30 23:34:39 -0500
  • c32a5ad8cc feat(couples): wire pruneDeadTokens into onCoupleLeave null 2026-06-30 23:34:33 -0500
  • 6fda1574ea feat(backup): wire pruneDeadTokens into onRestoreRequested null 2026-06-30 23:34:26 -0500
  • b564d1da42 feat(notifications): add pruneDeadTokens utility for FCM dead-token cleanup null 2026-06-30 23:34:22 -0500
  • 38eae8f915 docs: R25 coverage entries, instrumented test landmine warning, tokenized snapshot URL note null 2026-06-30 23:33:54 -0500
  • 88f2350c9c docs(questions): v5 rewrite — Daily Fun Gate, restructured guides, trimmed schema null 2026-06-30 23:33:48 -0500
  • da7a497c33 docs: update ClaudeReport R24-d entry to mark all files committed null 2026-06-30 21:25:13 -0500
  • 4773570745 docs: update ClaudeReport (R24-d/c) and Engineering_Reference_Manual (keybox phrase envelope) null 2026-06-30 21:25:00 -0500
  • 683e4ed8d0 docs(questions): v4 content guide, v3 quality checklist, daily single choice weekday lineup spec null 2026-06-30 21:24:56 -0500
  • aa09566636 feat(backup): lock-less phrase reveal, copy-to-clipboard, partner-restore empty-state, manual helper entry (R24-d) null 2026-06-30 21:24:52 -0500
  • b78dc24870 feat(backup): add back button to restore screens (R24-d) null 2026-06-30 21:24:36 -0500
  • 71227561e7 feat(backup): pass recovery phrase through RestoreManager fulfill/complete (R24-c) null 2026-06-30 21:24:30 -0500
  • 209ad74532 feat(backup): add ckx:v1 keybox envelope for recovery phrase transfer (R24-c) null 2026-06-30 21:24:26 -0500
  • 37815af781 chore: rebuild functions dist (add onRestoreRequested + onRestoreFulfilled exports) null 2026-06-30 20:43:58 -0500
  • 1e9f8b97bc docs: update Future.md, ClaudeQAPlan.md, ClaudeReport.md, ClaudeiOSPlan.md, Engineering_Reference_Manual.md for R24 backup/restore null 2026-06-30 20:43:34 -0500
  • db948511fb chore: add org.json:json:20240303 test dependency for BackupCodec round-trips null 2026-06-30 20:43:30 -0500
  • 4640649593 feat(backup): add Firestore rules (backup manifest/chunks, restore_requests with isPublicKey helper) and Storage rules (users/{uid}/backups/) null 2026-06-30 20:43:26 -0500
  • 4b4f79361f feat(backup): add onRestoreRequested and onRestoreFulfilled Cloud Functions (partner push + owner self-alert) null 2026-06-30 20:43:22 -0500
  • 139a78c222 feat(backup): add RESTORE_REQUESTED and RESTORE_SELF_ALERT notification types null 2026-06-30 20:43:18 -0500
  • 72c251ae95 feat(backup): wire opportunistic backup trigger into HomeViewModel.loadHome null 2026-06-30 20:43:14 -0500
  • fd854b635c feat(backup): add RESTORE_REQUEST and RESTORE_CONSENT routes + navigation null 2026-06-30 20:43:10 -0500
  • df9edc1daf feat(backup): add 'Ask your partner to restore' entry to RecoveryScreen null 2026-06-30 20:43:06 -0500
  • f161fa49a5 feat(backup): add RestoreViewModel + RestoreRequestScreen + RestoreConsentScreen (partner-assisted restore UI) null 2026-06-30 20:43:02 -0500
  • ed3c3e4d22 feat(backup): add RestoreManager (request/fulfill/complete partner-assisted restore with OOB code gate) null 2026-06-30 20:42:58 -0500
  • c8b0130f1c feat(backup): add CoupleKeyTransfer (ECIES couple-key wrap + OOB verification code) and CoupleEncryptionManager export/store methods null 2026-06-30 20:42:54 -0500
  • 4ac2c8f841 feat(backup): add BackupManager (incremental append + compaction) and BackupRestoreManager (download + decrypt + upsert) null 2026-06-30 20:42:50 -0500
  • f94fccfc61 feat(backup): wire ConversationCacheDatabase and DAO into DatabaseModule null 2026-06-30 20:42:46 -0500
  • ab59e7e5c9 feat(backup): add ConversationCache Room DB (entity, DAO, database) null 2026-06-30 20:42:42 -0500
  • 230e7f6201 feat(backup): add uploadBackupSnapshot and deleteBackupSnapshot to FirebaseStorageDataSource null 2026-06-30 20:42:38 -0500
  • 909d261b6c feat(backup): add backup record reads to FirestoreConversationDataSource (getConversationsForBackup, getBackupRecords) null 2026-06-30 20:42:34 -0500
  • 522823f739 feat(backup): add FirestoreBackupDataSource (manifest CAS, chunk append, snapshot compaction, restore requests) null 2026-06-30 20:42:30 -0500
  • 14ba8f2b53 feat(backup): add BACKUP and RESTORE_REQUESTS collection constants to FirestoreCollections null 2026-06-30 20:42:26 -0500
  • 7f8dac0b14 feat(backup): add BackupCodec (JSON codec for backup chunks, checksum, reactions) null 2026-06-30 20:42:12 -0500
  • 6b469357c1 feat(backup): add ConversationBackup domain models (BackupMessageRecord, BackupCursor, BackupManifest, RestoreRequest) null 2026-06-30 20:42:07 -0500
  • 14bfbd04c8 chore: add ClaudeQAPlan.md and ClaudeReport.md to gitignore null 2026-06-30 19:06:25 -0500
  • 9c4dc0a609 docs: update Report with R23-DQ-001 fix and verification null 2026-06-30 19:06:23 -0500
  • 96fdd67e1a docs: add R23-DQ-001 reconcile check to QAPlan Pass N null 2026-06-30 19:06:20 -0500
  • 968ab563a0 docs: add R23-DQ-001 entry to Engineering Reference Manual null 2026-06-30 19:06:18 -0500
  • 02e7e6d5c3 test(daily-question): add ReconcileLocalAnswerTest for Room/Firestore desync guard null 2026-06-30 19:06:14 -0500
  • 96274d68f9 fix(daily-question): wire reconcileLocalAnswerFromFirestore into HomeViewModel null 2026-06-30 19:06:12 -0500