Problem
A cached entitlement can become stale after refund, revoke, or indexer lag, so download access must fail safely when source-of-truth status is uncertain.
Scope
- Reconcile cached entitlement with latest purchase state
- Return pending/denied states when indexer freshness is insufficient
- Add tests for delayed and missing purchase events
Acceptance criteria
Relevant areas
docs/entitlement-authorization.md
docs/purchase-flow-architecture.md
src
Complexity
High - 200 points
Contributor guidance
Start with a short design note in the issue discussion, then implement with focused tests and documentation for the affected workflow.
Problem
A cached entitlement can become stale after refund, revoke, or indexer lag, so download access must fail safely when source-of-truth status is uncertain.
Scope
Acceptance criteria
Relevant areas
docs/entitlement-authorization.mddocs/purchase-flow-architecture.mdsrcComplexity
High - 200 points
Contributor guidance
Start with a short design note in the issue discussion, then implement with focused tests and documentation for the affected workflow.