Account Billing: Upgrade / Change plan / Cancel CTAs (Stripe portal–first), plan picker when multiple public selectable plans exist, cancel confirmation with period-end messaging, complimentary users get no fake cancel
Usage card Upgrade scrolls/focuses Billing; analytics for upgrade/change/cancel intents
Danger Zone: email-confirmed DELETE /user/ then logout → /signin/
Test plan
npm test -- --watchAll=false --testPathPattern='BillingSection|DeleteAccountSection'
Paid Stripe user: Upgrade / Change plan / Cancel → portal (or checkout for higher selectable plan)
Surface Upgrade, Change plan, and Cancel on Account billing (portal-first),
plan picker when multiple public plans exist, complimentary-safe messaging,
and Danger Zone self-delete against DELETE /user/ (backend #34).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
DELETE /user/then logout →/signin/Test plan
npm test -- --watchAll=false --testPathPattern='BillingSection|DeleteAccountSection'cancel_at_period_end/signin/