-
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