Commit Graph

220 Commits

Author SHA1 Message Date
null 520c9b874c feat(seed): staged question seed json files 2026-06-22 08:20:22 -05:00
null 1308b1b10c feat(seed) regenerate questions pack 2026-06-21 21:24:31 -05:00
null cf37fe665b feat(seed): regenerate question pack data 2026-06-21 21:18:37 -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 423081bdb2 chore(gitignore): add GoogleService-Info.plist 2026-06-21 21:18:22 -05:00
null ed897e381f remove 2026-06-21 20:12:36 -05:00
null 69bcd39645 remove 2026-06-21 19:57:23 -05:00
null b302fe4aad remove 2026-06-21 19:47:57 -05:00
null 51702e910b remove 2026-06-21 19:45:55 -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 578851964c docs: write Engineering Reference Manual with verified facts, fix Bishop pass issues 2026-06-21 18:44:31 -05:00
null dd91327548 docs: brand identity, copy guide, release checklists, store assets, README 2026-06-21 17:56:46 -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 0a377ecdda fix(accept-invite): dynamic encryptionVersion, Firestore TTL on attempt docs, wipe recoveryPhrase on accept 2026-06-21 09:13:29 -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 5c856d3de6 chore: gitignore .kotlin/ and review2.md 2026-06-21 08:15:34 -05:00
null ab9d746c46 docs: update README with store positioning, pricing philosophy (v0.2.1) 2026-06-21 08:15:20 -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 6260b0500e fix(couples): align onCoupleLeave cloud function name with Android caller 2026-06-20 23:27:54 -05:00
null 7898a4887f fix(functions): add server-side throttle to gentle_reminders callable 2026-06-20 23:27:54 -05:00
null 71b230719b fix(firestore): harden isImmutable helper to reject non-list args 2026-06-20 23:14:47 -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 d5a17cc90d docs(readme): update with MVP scope, both platforms, iOS port status
- Add Closer tagline + private-space positioning at top
- Add explicit anti-scope (not social, not therapy, not productivity)
- Add Platform Status table (Android active, iOS in progress, backend shared)
- Add MVP scope split: Free / Premium / Out-of-Scope
- Add iOS folder layout with each layer's purpose
- Add iOS build commands (xcodegen + xcodebuild)
- Expand privacy section (App Check, server-verified subscriptions, E2EE note)
- Clear MVP status breakdown: complete / in-progress / release-prep
- Link HISTORY.md and PROJECT.md for deeper context
2026-06-20 22:20:31 -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 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
null c621c9fec5 chore: update store assets doc with 9 screenshots (batch v1.0.22) 2026-06-20 02:02:05 -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 b64ae1f29a fix: block answer delete in rules, enforce userId match on create (batch v1.0.18) 2026-06-20 01:19:02 -05:00