Some checks failed
Deploy / Deploy to Production (push) Has been cancelled
A user who picked a plan + brands, clicked the checkout button to create the pending subscription, then closed the tab without paying came back to a frozen "Mevcut Plan · Bekliyor" card with no payment button and no way to edit. Status was "pending", which my conditional treated as an active subscription and routed away from the stepper. Frontend - hasActiveSub narrowed to active|cancelled only. Pending users now see the stepper again. - New effect pre-fills selectedPlanKey, selectedBrandIds, billingPeriod from the pending row on first render and jumps straight to the payment step. - New PendingPaymentBanner at the top of the stepper with "Odemeye devam et" (scrolls + sets step=payment) and "Vazgec" (calls cancel-pending then resets selection). Backend - subscriptions.service.create() auto-expires existing pending rows for the user before inserting a new one — abandoned checkouts no longer accumulate and a fresh attempt with a different plan doesn't 409. - New PATCH /subscriptions/cancel-pending + service method for the banner's explicit cancel action. i18n: subscription.pendingBanner.* (tr/en). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>