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.