Refuse writes and payments from accounts without a verified email (AUTH-B1): one shared guard gates limitWrite, every non-self-service REST route, MCP write tools, git and LFS pushes, release uploads, OAuth consent and Stripe checkout, while profile, email, password, 2FA, stars, follows and deletion stay open. The password-reset handover now also strips grants, agents, webhooks, secondary emails and invitations, and the web app shows a verify banner and hides write CTAs.
70 files changed+938−146
Rendering diff…