• Joined on 2026-05-03
null pushed to dev at null/Closer 2026-06-23 22:16:01 -05:00
6e9cdfe8f6 docs(readme): fix slogan grammar — security → securely
null pushed to dev at null/Closer 2026-06-23 22:14:40 -05:00
06e09da596 docs(readme): add privacy slogan to header
null pushed to dev at null/Closer 2026-06-23 19:35:37 -05:00
e5c05abe90 fix(settings): partner card visual states — paired vs unpaired colors, border, avatar fallback
null pushed to dev at null/Closer 2026-06-23 19:26:44 -05:00
272c8997d0 refactor(ui): celebration overlay polish, activity screen layout, home screen streak dialog, pairing success cleanup
null pushed to dev at null/Closer 2026-06-23 18:23:53 -05:00
17d7489dd8 feat(engagement): streak milestones, celebration overlays, Together screen, avatar in notifications
null pushed to dev at null/Closer 2026-06-23 17:47:09 -05:00
d4b20a9845 feat(e2ee): encrypt date plan content; live answer observation; own-thread-answer decrypt; strict rules
null pushed to dev at null/Closer 2026-06-23 17:06:25 -05:00
039752d691 refactor(e2ee): remove v0/v1 migration paths, fail-closed decrypt, strict-only rules
null pushed to dev at null/Closer 2026-06-23 14:35:03 -05:00
17c7ed60b9 fix(nav): tab-switch routing prevents stacking tabs; fix(crash): runCatching around getUser/getCoupleForUser across 6 screens
null pushed to dev at null/Closer 2026-06-23 13:56:31 -05:00
fe1808b36c refactor(theme): full dark mode pass — CloserPalette, Theme, Color, and all surface screens
null pushed to dev at null/Closer 2026-06-23 12:40:04 -05:00
7d3b47b3ba fix(firestore): handle Timestamp type for lastAnsweredAt/createdAt in Android + Cloud Function
null pushed to dev at null/Closer 2026-06-23 12:32:03 -05:00
424ef0e4ab refactor(theme): replace hardcoded colors with Material3 theme-aware composables + adaptive iOS surface color
null pushed to dev at null/Closer 2026-06-23 12:17:19 -05:00
e5c13b6b6d feat(app-check): stable debug token via BuildConfig; feat(firestore): indexes for questions + bucket_list
null pushed to dev at null/Closer 2026-06-23 11:34:49 -05:00
6977db7600 fix(wheel-reveal): error state with retry, null-safe uid/couple, close on snapshot error
null pushed to dev at null/Closer 2026-06-23 11:31:20 -05:00
acaa8e635c fix(challenges): null-safe activeChallenge guard; feat(this-or-that): skip question button
null pushed to dev at null/Closer 2026-06-23 11:19:17 -05:00
b854c0b391 feat(history): tappable challenge/capsule cards, deep-link to capsule detail, emoji per game type, dedicated error card; feat(nav): MEMORY_LANE_CAPSULE route
null pushed to dev at null/Closer 2026-06-23 10:56:45 -05:00
658ead38cd security: App Check enforcement on all callables, fail-closed device integrity, no raw code in logs; release signing config; iOS RevenueCat log level
null pushed to dev at null/Closer 2026-06-23 10:51:18 -05:00
015ac8eefe feat(challenges): abandon challenge flow; fix(play): premium lock on history; fix(memory-lane): null-safe detail state
null pushed to dev at null/Closer 2026-06-23 10:32:52 -05:00
58be8ed021 fix(game-history): disable replay on unsupported game types, clean up session title/route
null pushed to dev at null/Closer 2026-06-23 10:11:29 -05:00
755077c7ba feat(memory-lane): edit/delete capsules, custom unlock date picker, error snackbar
null pushed to dev at null/Closer 2026-06-23 10:04:55 -05:00
9710bbc438 fix(challenges): error state snackbar, CTA routing for BOTH_COMPLETED/CHALLENGE_COMPLETE, README prem tiers