Matrix onboarding guide and setup tool — Added a step-by-step public guide at /matrix/getting-started for joining the Multiverse's Matrix chat, plus a personalized setup checklist for logged-in students. The single most common mistake — signing up on matrix.org instead of the school's own server, which happened to 8 of 10 students in one recent cohort — now has a clear "use this server, not that one" comparison up front. (#1229)
Scholarship awards now grant track access, not just one class — Approved scholarship applicants receive a full learning-track pass — that track's curriculum and a seat in its live classes — instead of only a single free class seat. The scholarship application also asks new goal/track questions so the right track gets granted. (#1277)
Improved
Clearer communication when an account is deleted — The login page now shows a banner after account deletion explaining the 7-day grace period and that logging back in cancels it; a new reminder email goes out 48 hours before permanent deletion; and the deletion confirmation modal/email and support contact info are clearer throughout. (#1169)
Fixed
GDPR account-deletion requests were silently failing — Every deletion request crashed partway through because it tried to delete from CRM tables that don't actually exist in the database, leaving accounts un-anonymized well past their deletion date (10 affected, the oldest by nearly two months). Deletions now complete correctly. (#1290)
Browsing resource categories showed nothing — Browsing employment, healthcare, or mortgage resources on /resources could return no results because a resource's listed category could drift out of sync with the resource pack it actually belonged to; the two are now kept in sync. (#1283)
Mutual aid resources weren't reaching the right region — A community resource submitted from a region with no existing resource "pack" had nowhere to land and was silently dropped from the board; regional packs are now created automatically the first time a region gets a submission. Also fixed international and other no-specific-region submissions occasionally being mis-filed under an unrelated real sub-region. (#1284, #1282)
Admin database tool's preview could mislead — The admin SQL console's "preview before you run it" step for UPDATE statements checked only which rows would be targeted, not what the edit would actually do — so a broken or no-op statement could preview cleanly with a green light to apply. The preview now safely runs the exact statement typed and rolls it back, so what you see is what you'd get. (Admin/staff-facing) (#1165)
Old campus links led nowhere — The "go to Campus" link in the members area pointed at a deleted database row and silently sent people to the homepage instead of Campus; it's now looked up reliably. /campus, /gather, /gathertown, and /gather-town also now redirect to Campus instead of dead-ending for anyone still looking for the retired Gather Town space. (#1128)
Scholarship form still said "track" after the site-wide rename to "paths" — The public scholarship application and the admin scholarships review page kept using old "track" terminology; both now consistently say "path," while still reading older applications correctly. (#1276)
Free alumni re-attendance was eating into funded scholarship seats — A background reconciliation check was counting free alumni class re-attendance against the pool of sponsor-funded scholarship seats, which could make a class wrongly show zero scholarship slots left for new applicants. (Admin/staff-facing) (#1252)
Outdated Gather Town and contact info on student-facing pages — The student agreement and FAQ pages still pointed students to the retired Gather Town space, and the weekly schedule email and registration template referenced a dead email domain and an outdated "New Campus" name; these now point to the current Campus and working contacts. (#1306)
XSS gap in enrollment alert emails — Internal alert emails about enrollment errors could have rendered attacker-supplied HTML/script from error data verbatim, since fields weren't escaped before being placed into the email. All fields are now HTML-escaped. (Admin/staff-facing) (#1301)