Mechanically
Bespoke auth: haloAuth.login checks a single-round salted SHA-256 hash and returns a profile with no token. The session is unsigned JSON in localStorage and is trusted verbatim on rehydrate.
Bespoke auth: haloAuth.login checks a single-round salted SHA-256 hash and returns a profile with no token. The session is unsigned JSON in localStorage and is trusted verbatim on rehydrate.
Nominally gates the whole app. In practice gates only the UI — the backend performs no identity check at all.
src/pages/Login.tsxsrc/pages/Register.tsxsrc/pages/ForgotPassword.tsxsrc/pages/ResetPassword.tsxsrc/pages/Invitation.tsxsrc/components/auth/haloAuth.tsauthUsersprofilesconvex/*.ts
convex/haloAuth.ts:4-9,28
src/context/SupabaseAuthContext.tsx:320-324
convex/resetHalo.ts:6-38
Research priority for this domain is low. Agent findings splice in below this line and survive regeneration.