Push non-primary emails to Lobbyside (other_emails column)#3869
Conversation
Surfaces a CC user's secondary email addresses (everything except the primary, which already shows under their name) as a new custom column in the Lobbyside live-visitors table.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 589c858. Configure here.
Codecov Report❌ Patch coverage is
❌ Your patch check has failed because the patch coverage (85.71%) is below the target coverage (100.00%). You can increase the patch coverage or adjust the target coverage. 📢 Thoughts on this report? Let us know! |
Bundle ReportChanges will increase total bundle size by 264 bytes (0.0%) ⬆️. This is within the configured threshold ✅ Detailed changes
Affected Assets, Files, and Routes:view changes for bundle: client-array-pushAssets Changed:
Files in
|
The other_emails field reads currentUser.emailAddresses, an async:false relationship that stays empty unless sideloaded. Include it in the auth sync alongside course-participations so the Lobbyside column populates. Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Pull request overview
Adds an other_emails custom field to the Lobbyside visitor payload so non-primary user email addresses appear as an OTHER_EMAILS column in Lobbyside’s live-visitors table (without requiring Lobbyside-side changes).
Changes:
- Derive
other_emailsfromcurrentUser.emailAddresses, excludingprimaryEmailAddress, trimming blanks, deduping, and joining via,. - Include
email-addressesinauthenticator.syncCurrentUser()so the relationship is hydrated for the widget. - Wire the new field into the
setVisitortype and{{did-update}}deps; add unit test coverage for key edge cases.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| tests/unit/components/lobbyside-widget-test.ts | Adds unit tests covering other_emails join/exclude/dedupe/empty behaviors. |
| app/services/authenticator.ts | Ensures email-addresses are included when syncing the current user. |
| app/components/lobbyside-widget/index.ts | Implements otherEmails() derivation and includes other_emails in the Lobbyside payload/type. |
| app/components/lobbyside-widget/index.hbs | Adds other_emails to {{did-update}} dependencies to re-sync on hydration/changes. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Summary
LobbysideWidgetnow derives another_emailscustom field from the current user'semailAddresses, excludingprimaryEmailAddress(already shown under the visitor's name in Lobbyside).setVisitorkey as a column, so this surfaces as a new OTHER_EMAILS column in the live-visitors table with no Lobbyside-side change.setVisitorpayload, theWindow.Lobbyside.setVisitortype, and the{{did-update}}dependency list (so it re-syncs when the email relationship hydrates in a later pass — same two-pass-hydration rationale as the existing tracked fields).Test plan
ember test --filter "lobbyside-widget"— 13/13 pass, incl. 4 newother_emailscases (join, exclude-primary, dedupe/blank-drop, empty-when-none).eslint,ember-template-lint,glintall clean.Made with Cursor