basquetWi + New ticket

New ticket

Sub-ticket of MARS-151 Email drift: users.email != auth.users.email (dot/canonicalization mismatch) for 9 active users via supabaseAuthId FK; preRegistered/email lookups likely use lower(trim) not gmail-canonicalizeEmail. Analog of PLUTO-152. MARS-146 was immune (FK-join predicate, not email-join), but the data-quality gap exists: any email-based join/dedup/lookup can mis-match these 9. Audit the email match-key paths; align to gmail-canonical comparison key (never mutate stored address). Investigate-first, no mass write · mars