null
3d3209806c
fix(ios/crypto): AnswerCrypto AAD to coupleId-only (matches Android FieldEncryptor); add vector fixtures for sealed-answer canonical JSON + Argon2id (TODO_ANDROID_RUN placeholders for paired CI)
2026-06-28 17:19:00 -05:00
null
60c0003114
feat(ios/e2ee): schemaVersion 3 sealed answers + ECIES keyboxes Path A + DeviceKeyStatus (Batch 4)
2026-06-28 17:14:50 -05:00
null
922364f8e8
feat(ios/e2ee): wire createInvite/acceptInvite + schemaVersion 2 daily-answer encrypt/decrypt (Batch 3)
2026-06-28 17:04:47 -05:00
null
faac40afbf
feat(ios/crypto): CryptoKit interop primitives — RecoveryKeyManager, FieldEncryptor (enc:v1:), CoupleEncryptionManager (Argon2id v1.3), Keychain store, wordlist bundle, tests + FirestoreService E2EE contract annotation
2026-06-28 16:56:51 -05:00
null
ae4e6f4542
docs(ios/crypto): wire-format spec for CryptoKit interop with Android Tink AEAD + Argon2id (E2EE Batch 1)
2026-06-28 16:45:19 -05:00
null
fed91dbe46
brand: finalize app icon, brand docs, onboarding visuals, feature graphic
2026-06-25 14:52:21 -05:00
null
334cb079fa
brand: update app icon, iOS assets, Android drawables, brand docs (Pass H)
2026-06-25 14:34:27 -05:00
null
17d7489dd8
feat(engagement): streak milestones, celebration overlays, Together screen, avatar in notifications
2026-06-23 18:23:49 -05:00
null
424ef0e4ab
refactor(theme): replace hardcoded colors with Material3 theme-aware composables + adaptive iOS surface color
2026-06-23 12:31:59 -05:00
null
e5c13b6b6d
feat(app-check): stable debug token via BuildConfig; feat(firestore): indexes for questions + bucket_list
2026-06-23 12:17:17 -05:00
null
658ead38cd
security: App Check enforcement on all callables, fail-closed device integrity, no raw code in logs; release signing config; iOS RevenueCat log level
2026-06-23 10:56:42 -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
b42544bafb
feat: iOS app icon assets + Info.plist
2026-06-22 18:19:07 -05:00
null
42706b4dc6
feat: settings screen + iOS settings views
2026-06-22 18:14:55 -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
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
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
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
af70280daa
feat: E2EE recovery flow, iOS parity updates, onboarding + pairing polish
2026-06-21 11:20:48 -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
2a1e5fad10
feat(functions): add createInviteCallable and tighten invite rules
2026-06-20 23:28:20 -05:00
null
fb371b10c8
fix(ios): register Closer source path in Package.swift and fix compile errors
2026-06-20 23:05:43 -05:00
null
59c239694a
fix(ios): address Pass B warnings from code audit
2026-06-20 22:58:11 -05:00
null
cb54ed3079
feat(ios): fix Pass A compile blockers from code audit
2026-06-20 22:54:21 -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
67251537eb
feat(ios): add native SwiftUI iOS app scaffold under /iphone/ (batch 1-6)
...
- ARCHITECTURE_AUDIT.md: full audit covering 49 screens, Firestore schema,
35 domain models, 17 Cloud Functions, RevenueCat integration, auth flow,
E2EE skip-for-MVP decision
- Project config: project.yml (XcodeGen), Info.plist, Closer.entitlements, Package.swift (SPM)
- Core: AuthService (rate limiter), FirestoreService (callable wrappers),
BillingService (RevenueCat), NotificationService (FCM)
- Models: AuthState (ObservableObject), FirestoreModels (20+ codable types),
DomainModels (35 structs)
- Theme: CloserTheme (50+ colors, typography, spacing), CommonViews
- Screens: Onboarding, pairing, home, daily questions, play hub + games
(ThisOrThat, HowWell, DesireSync, ConnectionChallenges), spin wheel
(animated 8-slice), dates (swipe cards, bucket list), settings + paywall
(RevenueCatUI)
2026-06-20 17:15:25 -05:00