February 19, 20261.0.77v1.0.77RSS

v1.0.77 — [DepthAudit] Stripe Billing Integration (Webhook + Sync)

Release Notes

Verdict: N/A Evidence: src/lib/stripe.ts: Real Stripe client instantiated from STRIPE_SECRET_KEY, lazy singleton. src/lib/stripe-sync.ts: syncCustomerToStripe, syncProductToStripe, createCheckoutSession, createPortalSession, chargeInvoiceViaStripe all make real Stripe API calls — not mocked. handlePaymentIntentSucceeded/Failed/StripeSubscriptionEvent write back to internal DB from webhook. src/app/api/webhooks/stripe/route.ts: Verifies stripe-signature header via stripeClient.webhooks.constructEvent, routes 4 event types to sync handlers. package.json: stripe v17.0.0 installed. CRITICAL PARTIAL: topUp mutation in src/lib/routers/billing.ts line 47-70 is explicitly a virtual credit top-up with no Stripe charge — comment says 'Virtual top-up for now — Stripe billing coming soon'. The credit balance UI in credit-top-up.tsx line 60 also says 'Virtual credits for now — Stripe billing coming soon'. File: N/A Recommendation: CRITICAL: The 'Top Up Credits' button in the UI does NOT charge Stripe — it just adds credits to the database for free. This must be wired to a real Stripe Checkout Session before launch. Users believe they are being charged but no payment is collected.