8.7 KiB
8.7 KiB
Closer — History
v0.2.1 — README: Store positioning & pricing philosophy — 2026-06-21
- Store tagline added: "Private daily questions for couples who want honest answers before shared conversations."
- Pricing philosophy added with a proactive contrast to Paired's known
trial and cancellation friction:
- No shady trials, no hidden caps.
- One subscription per couple, not per person.
- Clear trial wording, easy restore, straightforward cancellation.
- Free tier expanded and honestly described: no time limits, no artificial daily caps, and 6,000+ prompts included for free.
- Premium tier reworded with per-couple positioning and expanded feature clarity.
v0.2.0 — Release Gap Fixes — 2026-06-17
DateBuilderScreen: Material 3DatePickerandTimeInputdialogs replaced the TODO placeholders.QuestionJsonParser:Log.ecalls are wrapped inBuildConfig.DEBUGguards.build.gradle.kts: TODO comment added for theRC_API_KEYplaceholder.ExternalLinks: TODO comments added for placeholder URLs.
v0.1.9 — QA & Release Readiness — 2026-06-17
docs/qa/private-mvp-checklist.md: comprehensive manual QA checklist for onboarding, home, questions, dates, settings, paywall, notifications, and edge cases.docs/release/internal-testing-checklist.md: signing config, Firebase setup, test accounts, and App Distribution steps.docs/release/store-assets.md: Play Store asset checklist, content rating, pricing, and known gaps.- Code QA scan findings:
- TODOs in
DateBuilderScreen.ktfor date/time picker placeholders. - Debug logging in
QuestionJsonParser.ktwithandroid.util.Log. - No
com.couplesconnectpackage references remain; all areapp.closer. - Privacy and Terms URLs are placeholders until
closer.appis live.
- TODOs in
v0.1.8 — Privacy & Terms Links — 2026-06-17
ExternalLinksutility added with URL constants andopenUrlhelper usingIntent.ACTION_VIEWplus fallback handling.SettingsScreen: Legal section with tappable Privacy Policy and Terms of Service rows.PaywallScreen: Privacy/Terms text links and subscription terms disclaimer added at the bottom.
v0.1.7 — Reminder Notifications — 2026-06-17
AppMessagingService: FCM token storage in Firestore and data message handling with quiet-hours suppression.TokenRegistrar: fetches FCM token and device metadata, then writes it to Firestore.NotificationPermissionHelper: Android 13+POST_NOTIFICATIONSflow with rationale check.QuietHoursdata class added with DataStore persistence viaSettingsDataStore.SettingsRepositoryupdated with quiet-hours preferences.- Cloud Functions added for
sendDailyQuestionReminderandsendPartnerAnsweredNotification, both callable and auth-gated. NotificationModuleHilt DI added for Firebase Messaging.FirestoreUserDataSourceandUserRepository:storeTokenMetadata()added.
v0.1.6 — Server-Side Entitlement Sync — 2026-06-17
- Cloud Functions bootstrap added:
package.json,tsconfig.json,firebase-admin, andfirebase-functions. revenueCatWebhookHTTPS handler added forTRANSFER,RENEWAL,CANCELLATION,EXPIRATION, andBILLING_ISSUE.syncEntitlementcallable function added for forced re-sync.entitlementLogic.tsadded with idempotent Firestore writes.EntitlementCheckerinterface added withisPremium(): Flow<Boolean>.FirestoreEntitlementCheckeradded with real-time Firestore observation and RevenueCat fallback.RevenueCatBillingRepositoryupdated to pushCustomerInfotoEntitlementChecker.- Three ViewModels updated to consume the
isPremium()Flow. functions/node_modulesadded to.gitignore.
v0.1.5 — RevenueCat + Paywall — 2026-06-17
- RevenueCat SDK
v8.20.0wired inbuild.gradle.kts. BillingRepositoryinterface added withBillingStatesealed class.RevenueCatBillingRepositoryadded withgetOfferings,purchasePackage,restorePurchases, andgetCustomerInfo.ActivityProvideradded for safe foregroundActivityreference.- RevenueCat initialization added in
CloserApp. PaywallScreenadded withCloserThemestyling, benefits list, product options, and purchase/restore flow.PaywallViewModeladded with StateFlow pattern.- Hilt DI binding added in
RepositoryModule. BuildConfig.RC_API_KEYadded fromlocal.propertieswith placeholder fallback.
v0.1.4 — Partner Invite Flow Polish + Responsive QA — 2026-06-17
CreateInviteScreen: reduced vertical emptiness, Copy/Share button row, and "Accept instead" as a full-widthTextButton.AcceptInviteScreen: back affordance,navigateBackOrHomewiring, and tightened spacing.InviteConfirmScreen: back affordance, reduced vertical emptiness, andheightInon buttons.- Responsive QA pass across all screens: text ellipsis,
navigationBarsPadding, 48dp touch targets, and spacing standardization. - QA doc created at
docs/qa/ui-review.md.
v0.1.3 — Settings & Partner State Polish — 2026-06-16
- Settings profile card shows "Local profile" state instead of fake user data.
- Partner row is fully tappable with chevron and icon feedback.
- Destructive "Leave couple" removed from main Settings and moved to
RelationshipSettings. - Privacy & Terms separated from Delete account.
AccountScreenshows proper local profile state with disabled sign-in/export.DeleteAccountScreenrequires explicit checkbox acknowledgement.CreateInviteScreenpolished with rounded card and fallback states.
v0.1.2 — Date Builder + Bucket List + UI — 2026-06-16
DatePlanPreference,DatePlan, andDatePlanSuggestiondomain models added.BucketListItemandBucketListCategorydomain models added.- Room entities and DAOs added for
date_plan_preferencesanddate_plans. FirestoreDatePlanDataSourceandFirestoreBucketListDataSourceadded.DatePlanRepositoryandBucketListRepositoryinterfaces and implementations added.DateBuilderScreen,DateBuilderViewModel,BucketListScreen, andBucketListViewModeladded.- Navigation routes added for
date_builderandbucket_list. - Firestore rules added for
date_plans,date_plan_preferences, andbucket_list. AppDatabaseupdated with new entities and DAOs.- Hilt DI bindings added.
v0.1.1 — Date Match MVP Phase 1 — 2026-06-16
DateIdea,DateSwipe,DateMatch, andDateMatchSuggestiondomain models added.FirestoreDateSwipeDataSourceandFirestoreDateMatchDataSourceadded.DateMatchRepositoryinterface and implementation added.DateIdeaSeedadded with 30+ date ideas across seven categories.DateMatchScreen, card-stack swipe UI, andDateMatchViewModeladded.DateMatchesScreen, suggestions list, andDateMatchesViewModeladded.- Firestore rules added for
date_swipes,date_matches, anddate_ideas. - Hilt DI bindings added.
- Navigation routes added for
date_matchanddate_matches. - Date planning roadmap document added.
v0.1.0 — Stack Migration: Supabase → Firebase / New Plan — 2026-06-15
- Full architecture revision based on
PLAN.md. - Backend: Supabase → Firebase with Auth, Firestore, Cloud Functions, FCM, Remote Config, Analytics, and Crashlytics.
- Payments: None → RevenueCat for subscriptions and entitlements.
- DI: Manual → Hilt.
- Local storage: None → Room and DataStore.
- New features: spin-wheel question mode and email partner invites.
- Batch structure: 12 old batches → 11 new implementation batches with acceptance checks.
- Version reset: Phase 1 now uses
0.1.x. - Supabase dependencies replaced in Gradle build with Firebase BOM, Hilt, Room, and RevenueCat.
- Project docs updated:
PROJECT.mdrewritten for the Firebase + RevenueCat stack.STRUCTURE.mdrewritten with new architecture and agent roles.FUTURE.mdrewritten with fullPLAN.mdcontent and all 11 implementation batches.- Gradle build file updated for Firebase BOM, Hilt, Room, and RevenueCat.
v0.0.1 — Android Project Bootstrap — 2026-06-15
- Kotlin + Jetpack Compose + Material 3 project scaffolded.
- Gradle Kotlin DSL with compile SDK 35, min SDK 26, and target SDK 35.
- Compose BOM
2025.01.01, Navigation Compose, Lifecycle, and Supabase SDK stubs added. - Theme added with warm palette, light color scheme, and dark color scheme.
- Domain models added:
User.ktandCouple.ktplaceholder. ./gradlew assembleDebugcompleted successfully with 35 tasks.
v1.0.2 — 2026-05-13 (Old RN/Expo stack)
- Expo Router tab layout with four tabs.
v1.0.1 — 2026-05-13 (Old RN/Expo stack)
- Expo project bootstrap.
2026-05-12 — Project Initiated
- Project initiated.