7b3a6434

By: Michael Lynch <git@mtlynch.io>

Merge master into email-auth

Resolve conflicts by preserving the email magic-link auth flow over master’s shared-secret auth while taking compatible master changes for protected-route coverage and logout error wording.