v1.0 • Beta
Authentication and purchase recovery
Authentication now runs through one service, user preferences avoid destructive fallback writes, and iOS purchases recover from incomplete RevenueCat responses.
This work removes several edge cases around signing in, restoring user state, and confirming access after a purchase.
What’s new
Moved authentication behind AuthService so scenes no longer manage provider behavior directly.
Retried transient preference reads and created defaults only after a confirmed missing document.
Inferred iOS purchase success from transaction and entitlement state, then re-read entitlement after purchase, restore, or login.
Why it matters
A temporary network failure should not overwrite a returning user’s onboarding state, and an incomplete purchase callback should not leave access stuck.