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
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
e2fd65f070
feat: security screen, theme polish, settings navigation, build config
2026-06-21 17:25:39 -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
8de5990230
fix: add Tink dependency, release key cleanup, rules hardening (batch v1.0.17)
2026-06-20 01:10:20 -05:00
null
fa501089f2
test: add unit tests for retention features (batch v1.0.10)
...
- PartnerNotificationManagerTest: notification creation, type mapping, deep links
- build.gradle.kts: enable Robolectric and default return values for unit tests
- AppRoute: fix NPE in asRouteArg when android.net.Uri is stubbed on test classpath
2026-06-19 22:51:08 -05:00
null
55ca3dce27
fix: Firestore rules hardening, recovery phrase strength, test cleanup (batch v0.2.12)
...
- Firestore rules: add isCouplesMember(coupleId) to question thread answer writes (prevents outsider writes)
- Firestore rules: allow currentIndex increment on same-status session updates (fixes thread progression)
- RecoveryKeyManager: PHRASE_WORD_COUNT 6→10 (~80 bits entropy)
- build.gradle.kts: exclude META-INF/versions/9/OSGI-INF/MANIFEST.MF (packaging conflict)
- .gitignore: add firebase-debug.log, firestore-debug.log
- firestore-tests: configurable emulator port via FIRESTORE_EMULATOR_PORT env var
- firestore-tests: fix invite outsider test (seed with different coupleId), fix non-starter session test (active→completed allowed), remove redundant beforeEach(seedThread), add outsider-write-denied test for thread answers
- visual-identity.md: update encryption claim gating note
2026-06-19 21:08:55 -05:00
null
30fddcc2df
feat: E2EE — Tink AEAD, Argon2id KDF, recovery phrase, encrypted Firestore fields (batch v0.2.6)
...
- Add crypto module: CoupleKeyStore (EncryptedSharedPreferences), RecoveryKeyManager (Argon2id + AES-256-GCM key wrap), FieldEncryptor (AEAD per-field), CoupleEncryptionManager (orchestration)
- Add Tink + Bouncy Castle dependencies to build.gradle.kts, register AeadConfig in CloserApp
- Encrypt answer fields (writtenText, selectedOptionIds, scaleValue) on write, decrypt on read
- Encrypt DesireSync, HowWell, WheelAnswer, QuestionThread fields via CoupleEncryptionManager
- Generate recovery phrase during invite creation, display in CreateInviteScreen
- Add recovery phrase input to InviteConfirmScreen for encrypted invites
- Add RecoveryScreen + RecoveryViewModel for post-pairing key recovery
- Update Couple model with encryptionVersion, wrappedCoupleKey, kdfSalt, kdfParams
- Update Firestore rules: allow couple doc creation by members, fcmTokens path, encryptionVersion monotonic check, invite doc extended fields
2026-06-19 19:52:35 -05:00
null
92a257b3eb
feat: add sex field to user profile, Google profile extraction, multi-step onboarding, profile editing
2026-06-17 23:59:46 -05:00
null
8217a3385d
fix: extract Firebase auth calls into AuthRepository — LoginViewModel no longer depends on Firebase directly
2026-06-17 23:02:25 -05:00
null
84390a48fc
fix: test infrastructure and entitlement logic updates
2026-06-17 21:08:13 -05:00
null
ec315c63e0
feat: add App Integrity + device attestation modules
2026-06-17 19:37:19 -05:00
null
ede7c70ea7
fix(release): date/time pickers, debug logging guards, RC_API_KEY comment, ExternalLinks TODOs (gap fixes)
2026-06-17 02:00:39 -05:00
null
681cf7fb32
feat(billing): RevenueCat SDK integration, BillingRepository, PaywallScreen + ViewModel, Hilt DI, navigation route (batch 9)
2026-06-17 01:22:24 -05:00
null
e4a2588c50
security: enable Room schema export for CI migration validation (SecurityReport #7 )
2026-06-16 22:59:38 -05:00
null
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
2026-06-16 22:42:53 -05:00
null
50c44d2afd
security: swap RevenueCat hybrid-common SDK for native Android SDK purchases:10.10.0, add Maven repo
2026-06-16 22:09:22 -05:00
null
e82207c9d0
security: swap alpha crypto 1.1.0-alpha06 for stable 1.0.0, update MasterKey→MasterKeys API
2026-06-16 22:05:37 -05:00
null
afeb1a1a03
docs: add README, add proguard rules, Firestore entitlement checker, network security config, update build config and onboarding
2026-06-16 20:16:47 -05:00
null
84995641f3
refactor: package rename from com.couplesconnect.app to app.closer, update build config and firebase setup
2026-06-16 20:03:58 -05:00
null
db177bc792
fix(firebase): replace placeholder Firebase config, update initializer and home screen wiring
2026-06-16 01:57:48 -05:00
null
1a33d4f2b9
feat(analytics): Firebase Analytics, Crashlytics, ObservabilityModule, Firestore rules
2026-06-16 01:13:20 -05:00
null
8bcb3308c1
feat(auth): Firebase auth wiring, login/signup/forgot-password with ViewModels
...
- Added FirebaseAuthDataSource, FirestoreUserDataSource
- AuthRepository + UserRepository interfaces and Firebase impls
- LoginViewModel, SignUpViewModel, ForgotPasswordViewModel
- OnboardingViewModel, CreateProfileViewModel
- Updated LoginScreen, SignUpScreen, ForgotPasswordScreen, OnboardingScreen, CreateProfileScreen with ViewModel-backed state
- Wired RepositoryModule with Firebase auth dependencies
2026-06-16 00:01:34 -05:00
null
1c976935c9
feat: Firebase + RevenueCat stack, PLAN.md integration, 11 implementation batches (v0.1.0)
2026-06-15 18:43:43 -05:00