Stories were written for a subscription SaaS model, but SurfSense is a
self-hosted product with BYOK + optional PAYG page packs via Stripe.
Key corrections:
- Story 3.5: Not "remove BYOK + token billing" → actual gap is adding
HTTP-layer quota pre-check before document upload enqueue
- Story 5.1: Pricing UI already exists (Free/PAYG/Enterprise) → gap is
wiring "Get Started" button to existing Stripe checkout endpoint
- Story 5.2: mode=payment PAYG already works → needs verification/hardening
not a subscription checkout rewrite
- Story 5.3: Webhook already handles checkout.session.completed correctly
→ no subscription events needed, gap is idempotency test + purchase history UI
- Story 5.4: PageLimitService + enforcement in tasks/connectors already exists
→ gap is HTTP-layer pre-check, quota UI indicator, and 402 frontend handling
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>