docs(history): fix markdown lint issues
This commit is contained in:
parent
b2a04b7187
commit
784ba3b81d
|
|
@ -0,0 +1,192 @@
|
||||||
|
# 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 3 `DatePicker` and `TimeInput` dialogs replaced
|
||||||
|
the TODO placeholders.
|
||||||
|
- `QuestionJsonParser`: `Log.e` calls are wrapped in `BuildConfig.DEBUG`
|
||||||
|
guards.
|
||||||
|
- `build.gradle.kts`: TODO comment added for the `RC_API_KEY` placeholder.
|
||||||
|
- `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.kt` for date/time picker placeholders.
|
||||||
|
- Debug logging in `QuestionJsonParser.kt` with `android.util.Log`.
|
||||||
|
- No `com.couplesconnect` package references remain; all are `app.closer`.
|
||||||
|
- Privacy and Terms URLs are placeholders until `closer.app` is live.
|
||||||
|
|
||||||
|
## v0.1.8 — Privacy & Terms Links — 2026-06-17
|
||||||
|
|
||||||
|
- `ExternalLinks` utility added with URL constants and `openUrl` helper using
|
||||||
|
`Intent.ACTION_VIEW` plus 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_NOTIFICATIONS` flow with
|
||||||
|
rationale check.
|
||||||
|
- `QuietHours` data class added with DataStore persistence via
|
||||||
|
`SettingsDataStore`.
|
||||||
|
- `SettingsRepository` updated with quiet-hours preferences.
|
||||||
|
- Cloud Functions added for `sendDailyQuestionReminder` and
|
||||||
|
`sendPartnerAnsweredNotification`, both callable and auth-gated.
|
||||||
|
- `NotificationModule` Hilt DI added for Firebase Messaging.
|
||||||
|
- `FirestoreUserDataSource` and `UserRepository`: `storeTokenMetadata()` added.
|
||||||
|
|
||||||
|
## v0.1.6 — Server-Side Entitlement Sync — 2026-06-17
|
||||||
|
|
||||||
|
- Cloud Functions bootstrap added: `package.json`, `tsconfig.json`,
|
||||||
|
`firebase-admin`, and `firebase-functions`.
|
||||||
|
- `revenueCatWebhook` HTTPS handler added for `TRANSFER`, `RENEWAL`,
|
||||||
|
`CANCELLATION`, `EXPIRATION`, and `BILLING_ISSUE`.
|
||||||
|
- `syncEntitlement` callable function added for forced re-sync.
|
||||||
|
- `entitlementLogic.ts` added with idempotent Firestore writes.
|
||||||
|
- `EntitlementChecker` interface added with `isPremium(): Flow<Boolean>`.
|
||||||
|
- `FirestoreEntitlementChecker` added with real-time Firestore observation and
|
||||||
|
RevenueCat fallback.
|
||||||
|
- `RevenueCatBillingRepository` updated to push `CustomerInfo` to
|
||||||
|
`EntitlementChecker`.
|
||||||
|
- Three ViewModels updated to consume the `isPremium()` Flow.
|
||||||
|
- `functions/node_modules` added to `.gitignore`.
|
||||||
|
|
||||||
|
## v0.1.5 — RevenueCat + Paywall — 2026-06-17
|
||||||
|
|
||||||
|
- RevenueCat SDK `v8.20.0` wired in `build.gradle.kts`.
|
||||||
|
- `BillingRepository` interface added with `BillingState` sealed class.
|
||||||
|
- `RevenueCatBillingRepository` added with `getOfferings`, `purchasePackage`,
|
||||||
|
`restorePurchases`, and `getCustomerInfo`.
|
||||||
|
- `ActivityProvider` added for safe foreground `Activity` reference.
|
||||||
|
- RevenueCat initialization added in `CloserApp`.
|
||||||
|
- `PaywallScreen` added with `CloserTheme` styling, benefits list, product
|
||||||
|
options, and purchase/restore flow.
|
||||||
|
- `PaywallViewModel` added with StateFlow pattern.
|
||||||
|
- Hilt DI binding added in `RepositoryModule`.
|
||||||
|
- `BuildConfig.RC_API_KEY` added from `local.properties` with 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-width `TextButton`.
|
||||||
|
- `AcceptInviteScreen`: back affordance, `navigateBackOrHome` wiring, and
|
||||||
|
tightened spacing.
|
||||||
|
- `InviteConfirmScreen`: back affordance, reduced vertical emptiness, and
|
||||||
|
`heightIn` on 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.
|
||||||
|
- `AccountScreen` shows proper local profile state with disabled sign-in/export.
|
||||||
|
- `DeleteAccountScreen` requires explicit checkbox acknowledgement.
|
||||||
|
- `CreateInviteScreen` polished with rounded card and fallback states.
|
||||||
|
|
||||||
|
## v0.1.2 — Date Builder + Bucket List + UI — 2026-06-16
|
||||||
|
|
||||||
|
- `DatePlanPreference`, `DatePlan`, and `DatePlanSuggestion` domain models
|
||||||
|
added.
|
||||||
|
- `BucketListItem` and `BucketListCategory` domain models added.
|
||||||
|
- Room entities and DAOs added for `date_plan_preferences` and `date_plans`.
|
||||||
|
- `FirestoreDatePlanDataSource` and `FirestoreBucketListDataSource` added.
|
||||||
|
- `DatePlanRepository` and `BucketListRepository` interfaces and implementations
|
||||||
|
added.
|
||||||
|
- `DateBuilderScreen`, `DateBuilderViewModel`, `BucketListScreen`, and
|
||||||
|
`BucketListViewModel` added.
|
||||||
|
- Navigation routes added for `date_builder` and `bucket_list`.
|
||||||
|
- Firestore rules added for `date_plans`, `date_plan_preferences`, and
|
||||||
|
`bucket_list`.
|
||||||
|
- `AppDatabase` updated with new entities and DAOs.
|
||||||
|
- Hilt DI bindings added.
|
||||||
|
|
||||||
|
## v0.1.1 — Date Match MVP Phase 1 — 2026-06-16
|
||||||
|
|
||||||
|
- `DateIdea`, `DateSwipe`, `DateMatch`, and `DateMatchSuggestion` domain models
|
||||||
|
added.
|
||||||
|
- `FirestoreDateSwipeDataSource` and `FirestoreDateMatchDataSource` added.
|
||||||
|
- `DateMatchRepository` interface and implementation added.
|
||||||
|
- `DateIdeaSeed` added with 30+ date ideas across seven categories.
|
||||||
|
- `DateMatchScreen`, card-stack swipe UI, and `DateMatchViewModel` added.
|
||||||
|
- `DateMatchesScreen`, suggestions list, and `DateMatchesViewModel` added.
|
||||||
|
- Firestore rules added for `date_swipes`, `date_matches`, and `date_ideas`.
|
||||||
|
- Hilt DI bindings added.
|
||||||
|
- Navigation routes added for `date_match` and `date_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.md` rewritten for the Firebase + RevenueCat stack.
|
||||||
|
- `STRUCTURE.md` rewritten with new architecture and agent roles.
|
||||||
|
- `FUTURE.md` rewritten with full `PLAN.md` content 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.kt` and `Couple.kt` placeholder.
|
||||||
|
- `./gradlew assembleDebug` completed 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.
|
||||||
Loading…
Reference in New Issue