Commit Graph

  • 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
  • a530064ddb fix: refine shell back routes — remove full-screen screens from shellBackRoutes set null 2026-06-17 22:03:36 -0500
  • 45058fdd5f feat: couple intimacy seed data, "How Well" screen, ThisOrThat + wheel polish null 2026-06-17 21:57:40 -0500
  • 254652cb86 feat: add "This or That" screen with navigation, DB query, and Play Hub card null 2026-06-17 21:34:07 -0500
  • 84390a48fc fix: test infrastructure and entitlement logic updates null 2026-06-17 21:08:13 -0500
  • 827cfd2e2d fix: UI polish across auth, play hub, settings, wheel screens null 2026-06-17 20:59:21 -0500
  • d6f5eb6b0f fix: inject FirebaseFirestore via constructor instead of getInstance() null 2026-06-17 20:53:42 -0500
  • e5c734d3b2 fix: ViewModel and repository error handling improvements null 2026-06-17 20:51:18 -0500
  • c89e4f6bba fix: answer reveal and question category UI/state fixes null 2026-06-17 20:41:37 -0500
  • a0fd1d56f6 feat: category picker redesign, bucket list wiring, settings + nav updates null 2026-06-17 20:38:06 -0500
  • c816033e74 feat: cloud function for date match cleanup, ViewModel and repo improvements null 2026-06-17 20:26:24 -0500
  • fb87fe149a docs: rewrite README with product clarity, add screenshots, register Room DAOs in DI null 2026-06-17 19:59:07 -0500
  • 662a49df9d refactor: centralize all Firestore collection paths in FirestoreCollections constants null 2026-06-17 19:47:58 -0500
  • d86a5de2a0 fix: deny client access to entitlement_events collection null 2026-06-17 19:42:41 -0500
  • 19c6b4a6cb fix: real uid in bucket list, Firestore rules hardening for date plans & bucket list null 2026-06-17 19:41:27 -0500
  • ec315c63e0 feat: add App Integrity + device attestation modules null 2026-06-17 19:37:19 -0500
  • 0095151bd9 fix: add input sanitization across date plan forms and repository null 2026-06-17 19:23:53 -0500
  • b049024ba9 feat: update date_plan_preferences Firestore rules to use auto-IDs null 2026-06-17 19:12:14 -0500
  • 2b1238a64c feat: add Firestore rules for entitlements and notification_queue collections null 2026-06-17 19:10:45 -0500
  • 534bb076c7 feat: implement Ed25519 RevenueCat webhook signature verification null 2026-06-17 19:08:53 -0500
  • ede7c70ea7 fix(release): date/time pickers, debug logging guards, RC_API_KEY comment, ExternalLinks TODOs (gap fixes) null 2026-06-17 02:00:39 -0500
  • 160fb38c4f docs(qa): private MVP checklist, internal testing checklist, store assets checklist, code QA scan (batch 13) null 2026-06-17 01:34:32 -0500
  • 4ede77f067 feat(legal): ExternalLinks utility, Privacy/Terms links in Settings + Paywall screens (batch 12) null 2026-06-17 01:32:05 -0500
  • f3bad90ec6 feat(notifications): FCM token registration, quiet hours, notification permission helper, reminder Cloud Functions (batch 11) null 2026-06-17 01:30:04 -0500
  • 6b964935d4 chore: remove functions/node_modules from git, add to .gitignore null 2026-06-17 01:26:05 -0500
  • b9ad713ddb feat(billing): server-side entitlement sync — RevenueCat webhook handler, entitlement logic, Firestore EntitlementChecker, Hilt DI, callable sync function (batch 10) null 2026-06-17 01:25:51 -0500
  • 681cf7fb32 feat(billing): RevenueCat SDK integration, BillingRepository, PaywallScreen + ViewModel, Hilt DI, navigation route (batch 9) null 2026-06-17 01:22:24 -0500
  • c9ff160bf3 fix(ui): responsive visual QA pass — text ellipsis, navigationBarsPadding, touch targets, spacing fixes (batch 8) null 2026-06-17 01:17:47 -0500
  • d109f7fcd0 fix(ui): partner invite flow polish — compact layout, share button, back affordances, secondary route styling (batch 7) null 2026-06-17 00:16:42 -0500
  • cc974661d3 fix(ui): settings & partner state polish — no fake data, tappable partner row, gated destructive actions, subpage back affordances (batch 6) null 2026-06-17 00:13:20 -0500
  • 557af3e546 feat(dates): add Date Builder + Bucket List — backend models, Room DAOs, Firestore sources, repositories, UI screens, ViewModels, navigation routes, Firestore rules null 2026-06-17 00:05:46 -0500
  • 512a6c9f42 feat(dates): add Date Match MVP Phase 1 — swipe UI, Firestore models, 30+ seed ideas, match reveal null 2026-06-16 23:30:58 -0500
  • 1fc25d6c1f security: add client-side auth rate limiting with exponential backoff (SecurityReport #11) null 2026-06-16 23:01:02 -0500
  • e4a2588c50 security: enable Room schema export for CI migration validation (SecurityReport #7) null 2026-06-16 22:59:38 -0500
  • e28a08e5f1 security: hash question IDs and coarsen categories in Firebase Analytics (SecurityReport #9) null 2026-06-16 22:58:27 -0500
  • a412247bf3 security: kimi-k2.7 review fixes — Ed25519 crypto API, Firestore rules try/catch removal, atomic idempotency, RevenueCat 8.20.0, rate limiter fix, remove plaintext fallback, tighten push wording null 2026-06-16 22:42:53 -0500
  • b8b2cc68c4 security: fix webhook signature fail-open (now throws 500 on missing key), fix overly restrictive couple update rules null 2026-06-16 22:11:51 -0500
  • 50c44d2afd security: swap RevenueCat hybrid-common SDK for native Android SDK purchases:10.10.0, add Maven repo null 2026-06-16 22:09:22 -0500
  • e82207c9d0 security: swap alpha crypto 1.1.0-alpha06 for stable 1.0.0, update MasterKey→MasterKeys API null 2026-06-16 22:05:37 -0500
  • 95ea9ffed5 security: disable auto backup, rewrite backup rules as allowlist, harden data extraction rules for Android 12+ null 2026-06-16 21:58:17 -0500
  • 403a8c02e2 security: neutral push notification wording — no question text, categories, streak pressure, or relationship context on lock screen null 2026-06-16 21:57:07 -0500
  • b6e7a3e9cf security: add express-rate-limit — webhook 10/min, health 30/min, default 60/min, configurable via env, localhost skip null 2026-06-16 21:56:32 -0500