This website requires JavaScript.
d5a17cc90d
docs(readme): update with MVP scope, both platforms, iOS port status
null
2026-06-20 22:20:31 -0500
bdd2bf27c0
feat(settings): add appearance screen with theme picker, refactor settings nav
null
2026-06-20 18:45:44 -0500
1f777e827d
feat: add onMessageWritten cloud function, notification settings screen, user repo cleanup
null
2026-06-20 18:25:05 -0500
4dad0e774e
refactor: update crypto, invite flow, and account screen patterns
null
2026-06-20 18:09:46 -0500
09a2480359
refactor(android): update question thread and answer mapping patterns
null
2026-06-20 18:02:21 -0500
2a5cd28397
refactor(android): update question flow and navigation patterns (batch 6)
null
2026-06-20 17:17:51 -0500
67251537eb
feat(ios): add native SwiftUI iOS app scaffold under /iphone/ (batch 1-6)
null
2026-06-20 17:15:25 -0500
c621c9fec5
chore: update store assets doc with 9 screenshots (batch v1.0.22)
null
2026-06-20 02:02:05 -0500
38aedab962
chore: update README, screenshots, answer data source cleanup (batch v1.0.21)
null
2026-06-20 02:01:42 -0500
9c1fbf60a0
fix: reveal screen UX and rules hardening (batch v1.0.20)
null
2026-06-20 01:51:02 -0500
737514d18f
fix: sealed reveal flow fixes (batch v1.0.19)
null
2026-06-20 01:40:24 -0500
b64ae1f29a
fix: block answer delete in rules, enforce userId match on create (batch v1.0.18)
null
2026-06-20 01:19:02 -0500
8de5990230
fix: add Tink dependency, release key cleanup, rules hardening (batch v1.0.17)
null
2026-06-20 01:10:20 -0500
84eab1825b
feat: add thread sealed answers, release key cleanup, rules hardening (batch v1.0.16)
null
2026-06-20 00:41:48 -0500
4900d8ab6b
fix: add answerDate to Firestore rules allowed fields (batch v1.0.15)
null
2026-06-20 00:26:52 -0500
a3993d08df
feat: implement partner-proof sealed answers (batches 1-8)
null
2026-06-20 00:23:58 -0500
521989ec44
fix: remove duplicate comparison in StreakCalculator (batch v1.0.14)
null
2026-06-19 23:53:50 -0500
195dfb5a0a
refactor: replace PendingActionCard.action lambda with HomeActionTarget (batch v1.0.13)
null
2026-06-19 23:51:47 -0500
0e75b3b536
feat: add gentle reminder callable and wire into HomeViewModel (batch v1.0.12)
null
2026-06-19 23:47:01 -0500
7dc14af627
feat: wire retention signals into HomeViewModel (batch v1.0.11)
null
2026-06-19 23:42:54 -0500
89213445b9
fix: add coEvery import and re-set settings flow in PartnerNotificationManagerTest (batch v1.0.10)
null
2026-06-19 22:52:27 -0500
fa501089f2
test: add unit tests for retention features (batch v1.0.10)
null
2026-06-19 22:51:08 -0500
5698e5436a
feat: add memory capsule generator for saving meaningful moments (batch v1.0.9)
null
2026-06-19 22:47:36 -0500
a500b86621
chore: update UI copy to match retention tone guidelines (batch v1.0.9)
null
2026-06-19 22:46:07 -0500
3575af1b6f
feat: add date suggestion engine for date planning loop (batch v1.0.8)
null
2026-06-19 22:44:33 -0500
9db3c35f8d
feat: add follow-up prompts after reveals (batch v1.0.7)
null
2026-06-19 22:43:22 -0500
9040b97eb2
feat: add challenge loop state machine with 6 states and copy (batch v1.0.6)
null
2026-06-19 22:41:43 -0500
b1b35891c9
feat: add HomePriorityEngine and weekly recap generator (batch v1.0.5)
null
2026-06-19 22:37:47 -0500
935aee5ec5
feat: add partner-trigger notifications with rate limits and quiet hours (batch v1.0.4)
null
2026-06-19 22:34:42 -0500
9828e73171
feat: add 'Waiting for you' unfinished business dashboard (batch v1.0.3)
null
2026-06-19 22:31:11 -0500
c38e83b8ee
feat: add streak calculator with couple/personal/weekly streaks and repair (batch v1.0.2)
null
2026-06-19 22:25:47 -0500
0b619ee7ba
feat: improve daily question habit loop with 5 UI states (batch v1.0.1)
null
2026-06-19 22:23:24 -0500
aff1150295
feat: add retention events and analytics wrapper (batch v1.0.0)
null
2026-06-19 22:20:49 -0500
1441dcaebc
chore: add retention loops build plan to project root and gitignore
null
2026-06-19 22:15:41 -0500
700201bbd6
refactor: extract EncryptedSharedPreferences into SecurePreferencesFactory with auto-recovery (batch v0.2.21)
null
2026-06-19 22:06:52 -0500
8be7b7da0e
chore: update couple create rule comment to reflect server-only flow (batch v0.2.20)
null
2026-06-19 21:52:19 -0500
c31177d52b
chore: remove dead invite code after Cloud Function migration (batch v0.2.19)
null
2026-06-19 21:50:29 -0500
39255c8733
fix: prevent invite code enumeration via Cloud Function (batch v0.2.18)
null
2026-06-19 21:46:12 -0500
749d3aa6fd
test: add Firestore rules extra-field injection tests (batch v0.2.17)
null
2026-06-19 21:29:42 -0500
2e2c79be3d
fix: remove android.util.Base64 from RecoveryKeyManager for portability (batch v0.2.16)
null
2026-06-19 21:26:35 -0500
c1f7e6f7f9
feat: daily question date key uses local timezone instead of UTC (batch v0.2.15)
null
2026-06-19 21:24:53 -0500
70bb0a346c
fix: normalize crypto files to plain ASCII (batch v0.2.14)
null
2026-06-19 21:22:27 -0500
85b4eb589b
feat: add 3 stronger privacy slogans to BrandMessageRotator (batch v0.2.13)
null
2026-06-19 21:17:59 -0500
55ca3dce27
fix: Firestore rules hardening, recovery phrase strength, test cleanup (batch v0.2.12)
null
2026-06-19 21:08:55 -0500
3233c54ab2
feat: strict E2EE — encryption migration, Firestore rules enforcement, version 2 protocol (batch v0.2.11)
null
2026-06-19 20:53:52 -0500
e7b45cc84f
fix: profile photo temp dir, Firestore rules field-level lockdown (batch v0.2.10)
null
2026-06-19 20:33:08 -0500
9a0b2b6a3d
feat: BrandMessageRotator — rotating privacy copy across screens (batch v0.2.9)
null
2026-06-19 20:24:50 -0500
6828be72fc
feat: Cloud Functions — leaveCoupleCallable, onUserDelete cascade (batch v0.2.8)
null
2026-06-19 20:04:18 -0500
cbaa68ef2e
feat: account deletion with re-authentication flow (batch v0.2.7)
null
2026-06-19 19:57:07 -0500
30fddcc2df
feat: E2EE — Tink AEAD, Argon2id KDF, recovery phrase, encrypted Firestore fields (batch v0.2.6)
null
2026-06-19 19:52:35 -0500
5caae523e7
feat: app icon redesign, store assets, brand identity docs (batch v0.2.5)
null
2026-06-19 19:10:03 -0500
7256a71bdf
feat: dark mode support — ThemeMode setting, dynamic colors, status bar sync (batch v0.2.4)
null
2026-06-19 19:00:37 -0500
c878a9be1f
feat: Firebase project config — Firestore, Storage rules, Functions setup (batch v0.2.3)
null
2026-06-19 18:46:25 -0500
7552c451db
feat: notification copy, error messages, animations, reduced-motion support (batch v0.2.2)
null
2026-06-19 04:20:08 -0500
79a63629f1
refactor: CloserPrimitives design system, PairPromptScreen, state component overhauls (batch v0.2.1)
null
2026-06-19 04:04:52 -0500
164e0e47ca
feat: update AnswerHistory, BucketList, DateMatches, Onboarding, LocalQuestionContent, WheelHistory screens
null
2026-06-19 03:53:43 -0500
803b681d06
feat: update PrivacyScreen, add Firestore test scripts, gitleaks audit artifacts
null
2026-06-19 03:45:53 -0500
9e587a23dd
feat: update question thread data source, repository, ViewModel, and Firestore security rules
null
2026-06-19 03:19:58 -0500
927e930b79
feat: add SessionLength model, update game screens with session length awareness
null
2026-06-19 02:50:58 -0500
0e0a33a6dd
feat: add FCM game retention notification functions, messaging service updates, ThisOrThat screen fixes
null
2026-06-19 02:23:52 -0500
70e7c66cd6
feat: add game history screen, shared session state, updated navigation + PlayHub
null
2026-06-19 01:43:06 -0500
3ba6c659dd
feat: add partner-waiting flow across all game screens with QuestionSession model updates
null
2026-06-19 01:14:04 -0500
733c0967c2
fix: Q2 grammar quality pass on emotional_intimacy, parenting, stress questions + app.db rebuild
null
2026-06-19 00:50:23 -0500
8cfcb6d51f
chore: update Q1 scripts with minor fixes
null
2026-06-19 00:38:43 -0500
a13167dc3e
feat: Q1 question variety improvement across all categories, app.db rebuild
null
2026-06-19 00:35:00 -0500
93813255fd
chore: Q3 asset DB cleanup (remove 300 dead rows), Q5 grammar fix for depth-5 questions in emotional_intimacy + stress
null
2026-06-18 22:03:52 -0500
5ad1456adb
feat: update desire sync question bank, degender scripts, app.db rebuild
null
2026-06-18 21:41:14 -0500
473feb78a9
feat: add DesireSync + HowWell Firestore data sources, update screens with cloud-backed answering
null
2026-06-18 20:47:18 -0500
97cc334136
feat: add Firestore wheel answer data source, update wheel screens with logging + answer history
null
2026-06-18 20:10:08 -0500
408a2f24ba
feat: add ThisOrThat Firestore data source, updated screen with question answering flow
null
2026-06-18 19:53:17 -0500
af06cb2123
feat: add Time Capsule feature with Firestore data source, model, and MemoryLane UI screens
null
2026-06-18 04:14:12 -0500
4e871f8e4f
feat: add Connection Challenge system with game routing, Firestore data source, ChallengeGameScreen in PlayHub
null
2026-06-18 04:03:57 -0500
574fed27f7
refactor: replace raw string game types with GameType constants, remove unused feature flag module
null
2026-06-18 03:51:12 -0500
debc6aed02
fix: handle partner_active_session error in SpinWheelViewModel, navigate to waiting screen
null
2026-06-18 03:46:34 -0500
1b344e7220
fix: filter out empty-text/unknown-category questions from all DAO queries, regenerate app.db, handle deleted cloud question by falling back to random
null
2026-06-18 03:43:24 -0500
606d724f12
feat: add answer history filter pills with reveal/private badges, DesireSync progress meter and reveal UI, HowWell ring progress and privacy tiles, Paywall feature scavenger hunt, category screen grid polish
null
2026-06-18 03:26:12 -0500
15c1fbdda0
feat: replace PlaceholderScreen with FinishedEmptyStateScreen across PartnerHome, EmailInvite, QuestionComposer, Subscription
null
2026-06-18 03:20:13 -0500
8b394ab40f
fix: use UTC dates for daily question keys across all date consumers
null
2026-06-18 03:11:22 -0500
fb0e8fbaab
refactor: extract startGameWithCouple, remove duplicate partner notification from leaveCouple
null
2026-06-18 03:08:48 -0500
2521e91db4
fix: simplify hasPremium with first(), leave couple before deleting account
null
2026-06-18 02:56:34 -0500
dfd9974683
fix: use real-time session observation in WaitingForPartnerScreen, add credential type check in Google sign-in
null
2026-06-18 02:50:21 -0500
c894dd8c67
fix: simplify finishGame to not require userId — first caller wins
null
2026-06-18 02:47:57 -0500
21df900bc7
fix: add contentDescription to icon buttons for accessibility
null
2026-06-18 02:46:10 -0500
df961e8d94
fix: enforce multi-choice maxSelections limit across all answer UIs, pass questionIds to startGame
null
2026-06-18 02:41:33 -0500
4134c4570d
fix: integrate game session lifecycle into DesireSync, HowWell, and ThisOrThat
null
2026-06-18 02:29:14 -0500
2b8e05b29b
fix: address Neo review — fix cloud function partnerName scope, WheelCompleteScreen session ID, polling isActive, navigateTo reset
null
2026-06-18 01:28:43 -0500
7926289153
fix: clamp scale midpoint and handle edge case in wheel session answer UI
null
2026-06-18 01:17:47 -0500
c6df885e1e
fix: add answer options to wheel session screen so partners can answer questions
null
2026-06-18 01:09:08 -0500
7fb913db99
fix: add camera hardware feature flag, fix WaitingForPartnerScreen layout
null
2026-06-18 01:05:04 -0500
c58b1c6326
feat: enforce one active game per couple with partner notifications
null
2026-06-18 00:56:21 -0500
2677e38514
fix: use sex column for Desire Sync question filtering instead of fragile ID pattern
null
2026-06-18 00:32:39 -0500
c0696cfb80
feat: partner leave notification, real-time couple state sync, in-app unpair alerts
null
2026-06-18 00:25:52 -0500
eaac8ffcc9
feat: couple-scoped daily question, answer sync, partner notifications, and answer review
null
2026-06-18 00:18:05 -0500
92a257b3eb
feat: add sex field to user profile, Google profile extraction, multi-step onboarding, profile editing
null
2026-06-17 23:59:46 -0500
f7b95fc9ba
feat: add Google sign-in icon, update login screen and auth visuals
null
2026-06-17 23:07:19 -0500
8217a3385d
fix: extract Firebase auth calls into AuthRepository — LoginViewModel no longer depends on Firebase directly
null
2026-06-17 23:02:25 -0500
370a56069f
refactor: comprehensive UI polish across 26 files — components, screens, theme consistency
null
2026-06-17 22:44:14 -0500
d135b306aa
feat: add CategoryGlyph component, DesireSync polish, UI refinements across screens
null
2026-06-17 22:31:34 -0500
85bb8d9f69
feat: add DesireSync module with sexual_preferences questions and Room integration
null
2026-06-17 22:23:04 -0500
d21763ac41
feat: add sexual_preferences seed data (question_v2 schema)
null
2026-06-17 22:10:50 -0500