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 |
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 |