Closer/functions/src/billing
null 4eed0a8115 feat(premium): couple-shared unlock notification + reveal retry + users update allowlist + brand glyphs
- New Cloud Function: onEntitlementChanged (Firestore onWrite on entitlements/premium) — edge-triggered inactive→active, notifies the OTHER partner so couple-shared unlock isn't silent
- New notification type SUBSCRIPTION_CHANGED → routes to SUBSCRIPTION
- AnswerRevealViewModel: re-issue markRevealed if best-effort failed (offline/transient) so partner_opened_answer push eventually fires
- firestore.rules: harden users/{uid} update allowlist (defense-in-depth; no live hole)
- 18 new brand glyph vector drawables (drawable-nodpi/)
- SettingsScreen / PlayHubScreen / WaitingForPartnerScreen: swap Material icons for new brand glyphs
- ClaudeQA docs + Future.md updated
2026-06-27 16:35:41 -05:00
..
entitlementLogic.test.ts fix: test infrastructure and entitlement logic updates 2026-06-17 21:08:13 -05:00
entitlementLogic.ts fix: test infrastructure and entitlement logic updates 2026-06-17 21:08:13 -05:00
onEntitlementChanged.ts feat(premium): couple-shared unlock notification + reveal retry + users update allowlist + brand glyphs 2026-06-27 16:35:41 -05:00
revenueCatWebhook.ts docs(readme): add privacy slogan to header 2026-06-23 22:14:36 -05:00
syncEntitlement.ts feat(billing): server-side entitlement sync — RevenueCat webhook handler, entitlement logic, Firestore EntitlementChecker, Hilt DI, callable sync function (batch 10) 2026-06-17 01:25:51 -05:00