Treats and Gifting
Treats provide a simple gifting loop: create a token, share it, and let the recipient claim in-app with status and expiry checks.
What this feature does today
- Treat creation generates a unique token with configurable expiry windows.
- Claims validate treat status, expiry, and recipient restrictions before success.
- Pending treats auto-transition to expired status when checked after expiration.
- Web deep-link pages route recipients into the app claim experience.
Where it is used
Convex treat mutations and web landing routes under `/treat/[id]`.