Release Notes — Jun 10–11, 2026

Incremental update for testers reviewing staging (https://stg-rcme.membervu.com). Covers issues closed in membervu/membervu-pm after the Jun 4–10 note was published (afternoon 2026-06-10 through 2026-06-11) — the event-questions, member-directory, and notifications work, the email-preferences fix, and (added later 2026-06-11) the per-tenant domain / URL overhaul (#236 / #237). Grouped by module, with a "What to verify" hint. Verified against dev on 2026-06-11.
Branch reality (still true on 2026-06-11): stage builds from dev. The accounting/retention items below remain ⛔ not on stage. Local-dev-only and devops/CI issues closed this window (#200 local http CSP, #39 / #86 / #176 / #197 deploy/CI) are not tester-facing on stage and are omitted here.
♻️ Superseded 2026-06-15: the "not on stage" box below was accurate at the time. The accounting items have since landed on stage via the Jun 15 release (!136 / accounting milestone)#152 / #153 / #158 / #178 / #213 are now testable, #151 is fixed, and treasury loads for all roles (#262). Use the Jun 15 note for current scope.
⛔ Still NOT on stage — DO NOT test (on mile/accounting / feature branches, not dev) — see superseded note above: These are "closed" in the tracker but their commits (e.g. ebe3b822) are not ancestors of dev. Verify the current dev behaviour and report if you see otherwise.

🎟 Events — registration questions & notifications

✨ Enhancements

#ChangeFeatureWhat to verify on stage
#212Per-event configurable registration fields (reuses the #185 field palette; applies to both guests and members).Events admin · Registration formAs admin, edit an event → registration fields; toggle/configure fields; open the public registration form for that event and confirm it reflects the per-event configuration (and differs from another event configured differently).
#225Per-event authored custom questions on the registration form (extends #185/#212 — free-authored questions, not just the standard palette).Events admin · Registration formAuthor a custom question on one event; register for that event (as guest and as member) and confirm the custom question appears and the answer is captured.
#234Admin/coordinator per-registrant view of event answers on the Attendees tab.Events admin · AttendeesOpen an event with answered custom questions → Attendees tab → a registrant; their submitted answers are visible to the coordinator/admin.
#230 / #233Event-registration notifications — admins/hosts get an email + in-app bell on a new event registration (role-based recipients incl. MEMBERSHIP_MANAGER; registrant excluded).Events · NotificationsFirst enable Settings → Notifications → event-registration master switch (eventRegNotifEnabled, default OFF as of #244). Then register for an event; the event host/admin receives a registration email + bell notification (registrant excluded). No switch = no notification (expected).

🐛 Bug Fixes

#FixFeatureWhat to verify on stage
#232Authored event questions were not surfaced to members — the member registration endpoint filtered them out (so members never saw custom questions guests did). Fixed.Events · Registration (member path)As a logged-in member, register for an event that has authored custom questions; the questions now appear (previously hidden for members only).

🌐 Tenant Domains & URLs (#236 / #237)

Cross-cutting fix landed later on 2026-06-11 (MRs !107/!108/!109). App-generated links no longer use a single hardcoded FRONTEND_URL — they now resolve to the per-tenant domain via buildTenantOrigin (priority: Tenant.appDomain → validated request host → FRONTEND_URL fallback). On staging this means links should point at stg-rcme.membervu.com, matching what this guide already assumes.

🐛 Bug Fixes

#FixFeatureWhat to verify on stage
#236Event / share / Open-Graph URLs were hardcoded to a static FRONTEND_URL+path; now derived from the tenant domain (request host / Tenant.appDomain). Adds Tenant.appDomain as the universal per-tenant host source-of-truth + appDomain-first buildTenantOrigin.Events · Sharing / link previewsShare an event from the stg-rcme tenant; the share/OG link and og:url use stg-rcme.membervu.com (the tenant's host), not a generic/other host. Preview still renders the event's own banner/title (regression check vs last week's #170/#179).
#237Tenant-facing email/action URLs were hardcodedmagic-link, account activation, and invoice links now use the appDomain-aware buildTenantOrigin (adopts #236).Auth · Email links / BillingTrigger a magic-link login, an activation/"set up password" email, and open an invoice link — all on the stg-rcme tenant. Each URL host is stg-rcme.membervu.com (the tenant domain), and the link lands on the correct tenant (no cross-tenant or generic-host bounce). Check the email body in stg-webmail.membervu.com.

👥 Membership & Directory

🐛 Bug Fixes

#FixFeatureWhat to verify on stage
#215Profile form saved an invalid phone number (no validation) — TC-PROF-04. Validation added (validatePhone in the account Profile tab).Profile · My AccountMy Account → Profile; enter an invalid phone → save is blocked with a validation message; a valid phone saves. (Pairs with #182 registration-phone fix from last week.)
#216Member Directory did not display Membership Type — TC-DIR-01.DirectoryOpen the member Directory; each member row/card shows its Membership Type (Regular / Associate / Student).
#219Member Directory had no Membership Type filter — TC-DIR-03.Directory · FilteringIn the Directory, a Membership Type filter is present; filtering by a type narrows the list correctly.

✉️ Communications & Notifications

🐛 Bug Fixes

#FixFeatureWhat to verify on stage
#226Email/notification preferences UI is now reachable. Previously an orphan page mounted on no route; now the Notifications tab at /account/notifications (My Account → Notifications).My Account · NotificationsLog in as a member → My Account → Notifications tab loads with preference toggles. ⚠️ Known issue to flag: only Payment Reminders and Event Reminders map to backend fields; Membership Alerts / Newsletter / Marketing Emails use FE-only field names — toggle all 5, save, reload, and report any that don't persist. (See Communications index §6.)
#231Email preferences returned 403 for every member (GET/PUT /api/email-preferences read the wrong memberId source). Fixed (user?.memberId) — unblocks #226.API · Email preferencesAs a member, the Notifications tab loads preferences (no 403) and a save returns 200.
#217In-app notifications for new member sign-ups (bell/badge) — follow-up to last week's #186 email+widget.Admin · Notifications bellFirst enable Settings → Notifications → sign-up master switch (signupNotifEnabled, default OFF as of #243). Then trigger a sign-up; an admin sees a bell/badge in-app notification + the email. No switch = nothing (expected).

🎨 UI & Responsive

🐛 Bug Fixes

#FixFeatureWhat to verify on stage
#214Sidebar collapse icon didn't render properly on mobile.Navigation · MobileOn a narrow/mobile viewport, the sidebar collapse/expand icon renders correctly and toggles the sidebar.
#218Home → Club News content overflowed the screen (responsive).Home · Club NewsOn the member Home, the Club News block stays within the viewport (no horizontal overflow) on small screens.

Source of truth: the membervu/membervu-pm issue tracker. Stage builds from the dev branch — dev-presence of each fix verified on 2026-06-11. Accounting/retention items (#148, #151, #152, #153, #158) remain on mile/accounting and are excluded from "what to verify on stage."