Task
The admin-managed email allowlist (#374/#375) blocks normal local development: a fresh npm run dev:backend + npm run dev:frontend checkout can no longer register/sign in without first running scripts/approve_email.py by hand. Add a dev-only bypass so local development works exactly as it did before the allowlist existed, while production keeps enforcing it exactly as-is.
Rationale
The allowlist is a real, intentional production access-control decision (#374) — this is not a rollback of it. It's specifically about restoring the previous frictionless npm run dev experience for contributors, matching the existing app_env-gated leniency pattern already used elsewhere in Settings (AUTH_SECRET_KEY, AI_ENCRYPTION_KEY both substitute safe defaults outside production, never in it).
Acceptance Criteria
Task
The admin-managed email allowlist (#374/#375) blocks normal local development: a fresh
npm run dev:backend+npm run dev:frontendcheckout can no longer register/sign in without first runningscripts/approve_email.pyby hand. Add a dev-only bypass so local development works exactly as it did before the allowlist existed, while production keeps enforcing it exactly as-is.Rationale
The allowlist is a real, intentional production access-control decision (#374) — this is not a rollback of it. It's specifically about restoring the previous frictionless
npm run devexperience for contributors, matching the existingapp_env-gated leniency pattern already used elsewhere inSettings(AUTH_SECRET_KEY,AI_ENCRYPTION_KEYboth substitute safe defaults outside production, never in it).Acceptance Criteria
developmentmode specifically, registration (and OAuth first-time sign-in) works with no invite/approval step, identical to pre-feat(auth): replace invite-code registration with an admin-managed email allowlist #374 behavior.app_enva real local dev server does, so this needs a deliberate, explicit distinction, not just reusing the existing dev/test leniency pattern verbatim).