Commit Graph

  • 5868d06421 brand(art): wire Delete account calm-goodbye illustration (A12) null 2026-06-26 09:59:53 -0500
  • 9b1e946ed8 brand(art): pairing-success hero -> A1 celebration; Security header -> A11 privacy-lock null 2026-06-26 09:57:26 -0500
  • 86679752b0 brand(art): wire Connection Challenges header (A3 banner) + Quiet hours (A9) null 2026-06-26 09:53:28 -0500
  • fb4620559b brand(art): wire Date Match A5 (empty + it's-a-match) + Memory Lane A4; add all new art to debug gallery null 2026-06-26 09:48:13 -0500
  • 5d74858679 brand(art): wire Answer History (A2) + Past Games (A10) empty illustrations null 2026-06-26 09:40:08 -0500
  • 4aec224f0d brand(art): wire Messages-empty (A8) + Bucket List-empty (A6); add BrandIllustration helper null 2026-06-26 09:36:53 -0500
  • 077a408785 brand(art): add 12 generated illustrations to drawable-nodpi; gitignore brand source art null 2026-06-26 09:29:42 -0500
  • 5ba5b4a8ec qa(R9): clean confirmation round — deferred Pass C + Pass F network swept, 0 new findings null 2026-06-26 08:42:03 -0500
  • 9505defd29 qa(R9): confirm + prune I-001/I-002 (0 outcomes denials/CCE on fixed build) null 2026-06-26 08:33:46 -0500
  • dbf8a6f18e qa(R8): wrap — Pass E new-type status (not implemented), couple-premium-unlock idea to Future.md null 2026-06-26 00:00:31 -0500
  • ab29f6b12f fix(outcomes): restore Your Progress read — scope query to allowed dayKeys + coerce Long scores (I-001, I-002) null 2026-06-25 23:58:37 -0500
  • 35d36e6851 qa(R8): Pass J accessibility — font scale 2.0 usable, semantics clean, reduce-motion honored null 2026-06-25 23:47:27 -0500
  • f740b1d9a1 qa(R8): Pass I performance — route smoke checklist + I-001 (P1) outcomes read denied null 2026-06-25 23:41:08 -0500
  • 11208c6fb5 qa(R8): re-confirm F-RACE-001 live (race -> 1 session, loser joins same set) + prune null 2026-06-25 23:32:31 -0500
  • 96987bf29a docs(qa): merge notification-suite playbook, add report hygiene + finding-routing, clean report/coverage null 2026-06-25 23:23:30 -0500
  • 23dd6a75e8 fix(games): atomic session start to prevent duplicate sessions on concurrent start (F-RACE-001) null 2026-06-25 21:43:06 -0500
  • 164acf415d docs(seed): update content guide to v3 — product standard, readability test, final approval null 2026-06-25 18:56:48 -0500
  • 4686a2c200 docs(seed): replace question guides with v2 — content guide, rewrite plan, new quality checklist null 2026-06-25 18:48:37 -0500
  • f47c8e2b64 feat(qa): clear Future.md backlog — inclusive gender, turn-aware copy, push budgets, paywall polish, auth rotator null 2026-06-25 16:00:58 -0500
  • 95cad84cb5 brand: loading state, themes, manifest, art preview, pairing screen updates null 2026-06-25 15:24:46 -0500
  • fed91dbe46 brand: finalize app icon, brand docs, onboarding visuals, feature graphic null 2026-06-25 14:52:21 -0500
  • 520eea2236 brand: update launcher foreground, feature graphic, auth visuals, brand docs null 2026-06-25 14:48:57 -0500
  • 93b5599605 brand: add closer-mark SVGs (on-dark + on-light variants) null 2026-06-25 14:44:31 -0500
  • 334cb079fa brand: update app icon, iOS assets, Android drawables, brand docs (Pass H) null 2026-06-25 14:34:27 -0500
  • 450ddccd16 qa(plan): add Pass H Branding & artwork + ClaudeBrandingReview.md (house style + ChatGPT prompts) null 2026-06-25 13:46:06 -0500
  • 2545da5c8b qa(plan): play every depth x question-count + consumer mindset; add Future.md (QA backlog) null 2026-06-25 13:39:16 -0500
  • 83d3d59903 qa(r5): functions deployed (E-OBS + E-003 results-ready) + expanded re-QA — 0 open P0-P3 null 2026-06-25 13:12:40 -0500
  • 765916a8ef build(functions): recompile dist for E-OBS + E-003 results-ready changes null 2026-06-25 12:40:38 -0500
  • 21b078a180 fix(notif): set FCM channel on remaining reminder senders (E-OBS) null 2026-06-25 12:39:59 -0500
  • aaab768cb0 fix(notif): deep-link results-ready pushes to per-session results/replay screen (E-003) null 2026-06-25 12:34:43 -0500
  • 3de4178fd3 qa(plan): add varied gameplay styles, exhaustive nav fuzzing, Pass G account-creation/fake-account null 2026-06-25 12:28:58 -0500
  • ee19ef3f59 qa(r4): fix phase + re-QA complete — E-003/B-004/A-OBS fixed; 0 open P0-P2 null 2026-06-25 12:15:19 -0500
  • d99fa6c6ea fix(paywall): show friendly plan-load error, not raw SDK message (A-OBS) null 2026-06-25 12:10:45 -0500
  • f1549c642c fix(games): add 'Join the game' escape to WaitingForPartner screen (B-004) null 2026-06-25 12:07:48 -0500
  • 1b9d8cf8dc fix(notif): game pushes deep-link into the waiting game, not the Play hub (E-003) null 2026-06-25 12:02:28 -0500
  • a2b38485b1 docs(seed): align type names with repo schema — single_choice, this_or_that, answer config null 2026-06-25 11:40:56 -0500
  • d1026c7312 docs(seed): split question guide into three documents — content guide, schema, rewrite plan null 2026-06-25 11:37:10 -0500
  • 0c8586fa9e qa(r3): Round 3 full re-QA (A-F) COMPLETE — 12 fixes hold; 5 new issues logged null 2026-06-25 11:37:06 -0500
  • 682a9d8ea7 qa(r3): Pass E live notif tests — chat_message full chain OK; log E-003 + E-OBS null 2026-06-25 11:32:32 -0500
  • fa6d80602a docs(brand): add asset-system.md, cross-link from visual-identity.md null 2026-06-25 11:26:21 -0500
  • afd81e8120 qa(r3): Pass C visual sweep + Pass D security re-audit clean null 2026-06-25 11:25:19 -0500
  • c7140b1e10 qa(r3): Pass A + Pass B fully re-verified live null 2026-06-25 11:18:07 -0500
  • ddecfabcd9 qa(r3): How Well verified (5/5, B-001 holds); log B-004 intermittent guesser-stuck on WaitingForPartner null 2026-06-25 11:06:02 -0500
  • 185d27b921 qa(r3): re-QA round 3 — nav + premium + Desire Sync/This-or-That fixes re-verified live null 2026-06-25 10:46:16 -0500
  • 6eeb86320b qa(fix-phase): all P0-P3 FIXED (P3x4: A-003/B-003/E-002/F-OBS); severity board all clear null 2026-06-25 10:14:18 -0500
  • 8e08823e83 fix(memorylane): propagate snapshot-listener errors so the screen doesn't hang (F-OBS P3) null 2026-06-25 10:14:17 -0500
  • 46010508a9 fix(notifications): route partner_left/partner_deleted_account to Home (E-002 P3) null 2026-06-25 10:14:16 -0500
  • f63188d97a fix(desiresync): clearer privacy counts on reveal (B-003 P3) null 2026-06-25 10:14:15 -0500
  • f8ae15a41b fix(play): hide Premium badge on Desire Sync/Memory Lane cards when couple has premium (A-003 P3) null 2026-06-25 10:14:14 -0500
  • 0c67c505be qa(fix-phase): mark B-002/C-CC-001/C-DS-001 (P2) FIXED+verified; P0-P2 all clear, P3x4 remain null 2026-06-25 09:58:27 -0500
  • a94f44d3ec fix(home): 'Play now' resumes the waiting game, not the generic hub (B-002 P2) null 2026-06-25 09:58:26 -0500
  • 1fe4dea9c1 fix(desiresync): theme-aware reveal text for dark mode (C-DS-001 P2) null 2026-06-25 09:58:25 -0500
  • edc00d2a5f fix(nav): drop Connection Challenges from shellBackRoutes (C-CC-001 P2) null 2026-06-25 09:58:24 -0500
  • 1108a57c4a qa(fix-phase): mark B-001 + C-NAV-001 (both P1) FIXED+verified; severity P1 0 open/4 fixed null 2026-06-25 09:37:38 -0500
  • a82c43ad90 fix(rules): allow completedByUsers on session update so finished games close (B-001 P1) null 2026-06-25 09:37:37 -0500
  • ebd3b2ed1f fix(nav): clear onboarding/auth back stack on entry->Home (C-NAV-001 P1) null 2026-06-25 09:37:36 -0500
  • 4e49b92be2 qa(round2-B2): Date Match PASS (3 mutual matches + live It's-a-match push + Matches view); PASS B COMPLETE all 7 games; Sam reverted to free null 2026-06-24 23:31:18 -0500
  • 01feee8321 qa(round2-B2): Spin the Wheel PASS (free partner enters; spin->Date Night->both answer 10->reveal matches both, no crash) null 2026-06-24 23:22:25 -0500
  • f79b38c07c qa(round2-B2): Memory Lane PASS (capsule create+seal, encrypted at rest enc:v1:, cross-device sealed view, no crash); D1 capsule ciphertext verified live null 2026-06-24 23:15:23 -0500
  • e76a84f5da qa(round2-B2): C-NAV-001 P1 CONFIRMED — back from Home resurfaces onboarding/auth (back stack not popped after login); clean cold-start repro null 2026-06-24 23:07:28 -0500
  • 1303597d4a qa(round2-B2): Connection Challenges PASS (day-cycle synced both, streak ok, no crash); C-CC-001 P2 (duplicate header + double back) null 2026-06-24 23:03:15 -0500
  • c71d858283 qa(round2-B2): Desire Sync PASS (free partner enters via A-001; 3 mutual desires revealed correctly, mismatches hidden, results match); B-003 P3 (confusing counts), C-DS-001 P2 (dark contrast) null 2026-06-24 22:57:50 -0500
  • 3c9037d8e4 qa(round2-B2): How Well PASS (user-nav, predicted 4/5 w/ deliberate miss + scale, results match both, no crash); B-001 re-corroborated (Back to Play leaves session active) null 2026-06-24 22:50:59 -0500
  • f8dc8119cb qa(round2-B2): This or That PASS (user-nav, 5/5, results match); B-001 escalated P3->P1 (Back to Play doesn't close finished session -> blocks next game); B-002 P2 (Play now lands on hub) null 2026-06-24 22:42:18 -0500
  • 8fa922fb70 qa(round2): RESTART Pass B from game #1 (play-as-user) — coverage reset, build reinstalled both devices null 2026-06-24 22:30:09 -0500
  • 21504098c2 qa(plan): Pass B — play-as-the-user mindset; report-first-then-workaround on any broken flow null 2026-06-24 22:27:40 -0500
  • f9c6e42d92 qa(round2): Pass B — How Well full two-device playthrough PASS (5/5 predict, results match both) null 2026-06-24 22:22:48 -0500
  • 60a6ce1dbf docs(qa): continue across auto-compaction without the user (file-state is authoritative) null 2026-06-24 22:13:48 -0500
  • 693ecd28ef qa(round2): Pass B — This or That full two-device playthrough PASS (5/5, results match both, no crash) null 2026-06-24 22:10:15 -0500
  • e7073fc5f8 qa(round2): R2-1 done — A-001 re-verified all features + free-gate; D-001 fixed. Pass B next null 2026-06-24 22:04:54 -0500
  • b05a72605e fix(rules): add capsules + challenges member rules (D-001 P1) — Memory Lane/Challenges were broken null 2026-06-24 22:02:40 -0500
  • efe0ddbf29 qa: record standing authorization (deploy firestore rules + admin access) null 2026-06-24 21:51:45 -0500
  • bbd7ef0806 docs(qa): define per-pass chunk granularity (sub-batch to one context window) null 2026-06-24 21:47:04 -0500
  • 84dd5f1152 docs(qa): senior-QA review additions — Pass F, env/matrix, migration, iOS-native dims null 2026-06-24 21:44:02 -0500
  • e907453f3f docs(plan): add Part 2 (build iOS to parity) + Part 3 (iOS QA) — ClaudeiOSPlan.md null 2026-06-24 21:37:26 -0500
  • 16ba464752 docs(qa): autonomous run-to-completion mode — never stop; unblock by fixing; finish to flawless null 2026-06-24 21:28:45 -0500
  • 99f0ae0c49 docs(qa): Pass C also checks navigation from every entry point + back-stack/double-back null 2026-06-24 21:26:23 -0500
  • f121eab67f docs(qa): require a full one-time playthrough of each game (not just launch) null 2026-06-24 21:24:08 -0500
  • 6ca65ce7e9 qa(round1): close out — all P0-P2 fixed; P3 + deferred coverage tracked for round 2 null 2026-06-24 21:08:22 -0500
  • ce12abb1a6 fix(notifications): route daily_question + challenge_day_ready taps (E-001 P2) null 2026-06-24 21:07:32 -0500
  • 58208fd443 qa(round1): A-001 fixed+verified (couple-shared premium); A-003 P3 logged (static badge) null 2026-06-24 20:53:39 -0500
  • e8892a9669 fix(premium): couple-shared premium everywhere (A-001) null 2026-06-24 20:52:22 -0500
  • c54ceb16c3 qa(round1): Pass B games launch sweep — no crashes; stale session recovery verified (B-001 P3) null 2026-06-24 20:04:54 -0500
  • 452aaf787a qa(round1): Pass A complete — couple-shared premium gap (A-001, P1) null 2026-06-24 19:59:04 -0500
  • 64f0a7e6c8 docs(qa): save full-app QA playbook (5 passes: premium, games, visual, security, notifications) null 2026-06-24 19:43:19 -0500
  • 6580299f05 feat(packs): route pack Discuss to the unified conversation null 2026-06-24 18:55:40 -0500
  • 7a9ff31ae6 feat(chat): couple-shared premium gating for sending media + reactions null 2026-06-24 18:52:50 -0500
  • f29d4699ca feat(chat): typing indicator null 2026-06-24 18:47:39 -0500
  • 5b9596e042 feat(chat): message reactions + delete (unsend) via long-press menu null 2026-06-24 18:44:13 -0500
  • 7f1b938aa5 feat(chat): read receipts (Seen) via the conversation reads map null 2026-06-24 18:38:42 -0500
  • 3aa182a466 feat(chat): voice playback progress bar + 2-min recording cap null 2026-06-24 18:35:32 -0500
  • cfea8f0d41 feat(chat): send/upload feedback + message pagination null 2026-06-24 18:32:01 -0500
  • 3544b7a84a feat(chat): message timestamps + day separators null 2026-06-24 18:14:05 -0500
  • 8a68ae3107 feat(chat): compress gallery/camera photos before encryption (EXIF-safe, skip GIFs) null 2026-06-24 18:10:24 -0500
  • 11a4c7deda feat(chat): RichContentTextField for keyboard GIF/sticker/Bitmoji insertion, tap-to-enlarge images null 2026-06-24 17:37:13 -0500
  • dbf7ae662b chore(config): coil-gif dependency, RECORD_AUDIO permission, firestore rules allow voice type null 2026-06-24 16:34:53 -0500
  • 3ad725ca8a feat(voice+media): voice recording/playback UI, GIF/sticker support, keyboard content receiver null 2026-06-24 16:34:48 -0500
  • c20745e82a feat(voice): data layer — voice message model, sendVoiceMessage, durationMs field null 2026-06-24 16:34:38 -0500
  • 29beff1702 build(functions): rebuild dist from source — revenueCatWebhook ack-after-process, acceptInvite strict E2EE, onMessageWritten conversations path, onGameSessionUpdate both-partner notify null 2026-06-24 16:15:30 -0500
  • 060ef69ca5 feat(rules+trigger): conversations Firestore rules, onMessageWritten listens on conversations path, gitignore null 2026-06-24 16:14:18 -0500