Commit Graph

191 Commits

Author SHA1 Message Date
null c56dd53edd feat: capsule/challenge data sources, game screens, wheel history + viewmodel 2026-06-22 21:38:18 -05:00
null 17403b1a75 feat: challenges, desire sync, how well, memory lane, this or that screens 2026-06-22 21:24:02 -05:00
null 3f5d7a5cc1 feat: nav, capsule data source, challenges, desire sync, question category, wheel history + viewmodel 2026-06-22 21:19:19 -05:00
null 2108d48914 feat: challenges, desire sync, how well, memory lane, play hub + viewmodel, this or that, wheel history 2026-06-22 20:46:40 -05:00
null 7db075d195 feat: navigation, answer history screen + viewmodel, answer reveal, iOS navigation & question views 2026-06-22 19:44:44 -05:00
null 125a24eb85 feat: answer reveal, auth screens, challenges, onboarding, pairing, paywall, wheel, settings, components 2026-06-22 19:18:49 -05:00
null 42706b4dc6 feat: settings screen + iOS settings views 2026-06-22 18:14:55 -05:00
null 5d3ab8385d feat: daily questions, answer reveal, home screens, auth, analytics, DB, repositories 2026-06-22 17:45:51 -05:00
null 174e56c5a0 feat: local question content, question header, daily question illustration, iOS question/wheel views 2026-06-22 13:57:09 -05:00
null f350c91b55 feat: question pack library screen, pack art assets, iOS question views 2026-06-22 13:45:48 -05:00
null d96221c5c8 feat: home screen + iOS pairing views 2026-06-22 12:52:33 -05:00
null bb119b054b feat: home screen update, pairing views, activation illustrations 2026-06-22 11:25:21 -05:00
null d307904ff8 feat: home screen + viewmodel, iOS home & pairing views 2026-06-22 11:14:19 -05:00
null 7d5fc11366 feat: nav routes, play hub, spin wheel screen + viewmodel, firestore rules 2026-06-22 10:53:05 -05:00
null ecc41a77d2 feat: wheel screen, play hub, storage data source, iOS wheel/play views 2026-06-22 10:25:58 -05:00
null b29280ba87 feat: invite flow improvements, pairing success screen, iOS pairing updates 2026-06-22 09:06:40 -05:00
null 5e16177eb2 feat: code push -- notifications, cloud functions, iOS updates 2026-06-22 08:53:23 -05:00
null 9166721282 feat: notification improvements + daily question reminder cloud function 2026-06-22 08:34:15 -05:00
null 893c88d774 feat(auth): remove anonymous sign-in, add email verification flow (batch 0.3.0) 2026-06-21 21:18:30 -05:00
null 54fdaf831f docs(manual): fix placeholder notification function descriptions, add new collections, biometric flow, iOS gitignore note 2026-06-21 18:47:18 -05:00
null 8f47593cf5 fix: user repository cleanup, settings VM, iOS app init + settings parity 2026-06-21 17:44:56 -05:00
null 6b50e84f60 fix: onboarding flow, settings screen polish, iOS settings parity 2026-06-21 17:37:14 -05:00
null e2fd65f070 feat: security screen, theme polish, settings navigation, build config 2026-06-21 17:25:39 -05:00
null b720f0cf14 feat: pending invite store, iOS subscription illustration, settings theme polish 2026-06-21 17:04:40 -05:00
null b19fc0934c feat: paywall illustrations, subscription polish, recovery store, settings cleanup 2026-06-21 16:27:55 -05:00
null 720b52a33b chore: firebase config, gitignore updates, build tweaks 2026-06-21 16:07:19 -05:00
null af70280daa feat: E2EE recovery flow, iOS parity updates, onboarding + pairing polish 2026-06-21 11:20:48 -05:00
null 62d99505c9 feat: subscription screen with clear pricing, restore, cancel instructions 2026-06-21 09:54:59 -05:00
null dff86eb089 feat: settings polish, privacy strings, home partner state, proguard rules 2026-06-21 09:49:02 -05:00
null 26419ce08d feat: remove email invite screen, add accept-invite rate limiting, clean up iOS pairing (v0.2.2) 2026-06-21 08:55:43 -05:00
null a5aad4f0bf fix(outcomes): use AutoMirrored.TrendingUp to resolve icon import/type mismatch 2026-06-21 00:07:52 -05:00
null b70463274f fix(home): resolve OutcomeDay import for outcome dialogs 2026-06-21 00:03:02 -05:00
null 57a3e35359 feat(outcomes): add 30/60/90 day check-in flow with baseline + reminders 2026-06-20 23:59:24 -05:00
null 535c0ce668 feat(home): surface couple streak count on Home dashboard 2026-06-20 23:47:55 -05:00
null bc3317c65a feat(home): add "5-minute check-in" time budget framing to daily question card 2026-06-20 23:46:28 -05:00
null 2a1e5fad10 feat(functions): add createInviteCallable and tighten invite rules 2026-06-20 23:28:20 -05:00
null 8967fd23cd fix(crypto): define single source of truth for encryptionVersion and document v0/v2 drift risk
- Add EncryptionVersion.kt with constants PLAINTEXT(0), MIGRATING(1), STRICT(2)
- Route CoupleEncryptionManager through the new constants and add explicit v2 branch
- Comment acceptInviteCallable.ts:91 explaining the version and sync contract
- Add TODO in iOS FirestoreService.swift warning that iOS MVP creates v0 couples

Fixes Risk #2 from review.md.
2026-06-20 22:29:43 -05:00
null bdd2bf27c0 feat(settings): add appearance screen with theme picker, refactor settings nav 2026-06-20 18:45:44 -05:00
null 1f777e827d feat: add onMessageWritten cloud function, notification settings screen, user repo cleanup 2026-06-20 18:25:05 -05:00
null 4dad0e774e refactor: update crypto, invite flow, and account screen patterns 2026-06-20 18:09:46 -05:00
null 09a2480359 refactor(android): update question thread and answer mapping patterns 2026-06-20 18:02:21 -05:00
null 2a5cd28397 refactor(android): update question flow and navigation patterns (batch 6) 2026-06-20 17:17:51 -05:00
null 38aedab962 chore: update README, screenshots, answer data source cleanup (batch v1.0.21) 2026-06-20 02:01:42 -05:00
null 9c1fbf60a0 fix: reveal screen UX and rules hardening (batch v1.0.20) 2026-06-20 01:51:02 -05:00
null 737514d18f fix: sealed reveal flow fixes (batch v1.0.19) 2026-06-20 01:40:24 -05:00
null 8de5990230 fix: add Tink dependency, release key cleanup, rules hardening (batch v1.0.17) 2026-06-20 01:10:20 -05:00
null 84eab1825b feat: add thread sealed answers, release key cleanup, rules hardening (batch v1.0.16) 2026-06-20 00:41:48 -05:00
null a3993d08df feat: implement partner-proof sealed answers (batches 1-8)
- UserKeyManager: per-user keypair stored in Android Keystore
- SealedAnswerEncryptor: one-time answer key, sealed:v1 ciphertext
- PendingAnswerKeyStore: local EncryptedSharedPreferences storage
- ReleaseKeyEncryptor: keybox:v1 encrypted to recipient public key
- SealedRevealManager: full reveal flow with mutual key release
- AnswerCommitment: SHA-256 commitment hash over canonical payload
- FirestoreDeviceKeyDataSource: public key CRUD
- FirestoreReleaseKeyDataSource: release key CRUD
- FirestoreAnswerDataSource: sealed answer writes with schemaVersion=3
- FirestoreCollections: sealed answer and release key paths
- firestore.rules: ownership, immutability, timing, prefix enforcement
- HomeViewModel: sealed answer state integration
- AnswerRevealScreen/ViewModel: sealed reveal flow with UX states
- CloserApp: initialize UserKeyManager on startup
- LocalAnswer model: schemaVersion field
- Unit tests: SealedAnswerEncryptor, ReleaseKeyEncryptor, AnswerCommitment
- Crypto test vectors: docs/crypto/sealed-answer-test-vectors.json
- .gitignore: add partner-proof build plan
2026-06-20 00:23:58 -05:00
null 521989ec44 fix: remove duplicate comparison in StreakCalculator (batch v1.0.14) 2026-06-19 23:53:50 -05:00
null 195dfb5a0a refactor: replace PendingActionCard.action lambda with HomeActionTarget (batch v1.0.13)
- PendingActionCard now uses target enum instead of lambda
- HomeScreen routes pending actions through toActionHandler
- Remove onPendingAction callback, simplify HomeCallbacks
- Fix WeeklyRecapGenerator filter logic (remove always-true || true)
2026-06-19 23:51:47 -05:00