From d7e50cda01a585a034f4f13fddbddf3d8517cfa6 Mon Sep 17 00:00:00 2001 From: Romeo Balta <7095569+romeobalta@users.noreply.github.com> Date: Fri, 11 Sep 2026 07:51:35 +0000 Subject: [PATCH] fix(core): Make profile update telemetry consistent with account creation (no-changelog) (#38290) Co-authored-by: Claude Fable 5.1 --- .../__tests__/telemetry-event-relay.test.ts | 37 +++++++++++++------ .../events/relays/telemetry.event-relay.ts | 2 +- 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/packages/cli/src/events/__tests__/telemetry-event-relay.test.ts b/packages/cli/src/events/__tests__/telemetry-event-relay.test.ts index cc01fe93d0a..6923fe705c6 100644 --- a/packages/cli/src/events/__tests__/telemetry-event-relay.test.ts +++ b/packages/cli/src/events/__tests__/telemetry-event-relay.test.ts @@ -2537,7 +2537,7 @@ describe('TelemetryEventRelay', () => { }); describe('user events', () => { - it('should track on `user-updated` event', () => { + describe('on `user-updated` event', () => { const event: RelayEventMap['user-updated'] = { user: { id: 'user123', @@ -2549,18 +2549,31 @@ describe('TelemetryEventRelay', () => { fieldsChanged: ['firstName', 'lastName'], }; - eventService.emit('user-updated', event); + it('should track without `user_email` on a self-hosted deployment', () => { + eventService.emit('user-updated', event); - expect(telemetry.identify).toHaveBeenCalledWith( - { - user_role: GLOBAL_OWNER_ROLE.slug, - user_email: 'user@example.com', - }, - 'user123', - ); - expect(telemetry.track).toHaveBeenCalledWith('User changed personal settings', { - user_id: 'user123', - fields_changed: ['firstName', 'lastName'], + expect(telemetry.identify).toHaveBeenCalledWith( + { user_role: GLOBAL_OWNER_ROLE.slug }, + 'user123', + ); + expect(telemetry.track).toHaveBeenCalledWith('User changed personal settings', { + user_id: 'user123', + fields_changed: ['firstName', 'lastName'], + }); + }); + + it('should track with `user_email` on a cloud deployment', () => { + globalConfig.deployment.type = 'cloud'; + try { + eventService.emit('user-updated', event); + } finally { + globalConfig.deployment.type = 'default'; + } + + expect(telemetry.identify).toHaveBeenCalledWith( + { user_role: GLOBAL_OWNER_ROLE.slug, user_email: 'user@example.com' }, + 'user123', + ); }); }); diff --git a/packages/cli/src/events/relays/telemetry.event-relay.ts b/packages/cli/src/events/relays/telemetry.event-relay.ts index 3cfd51be156..cdf257c348d 100644 --- a/packages/cli/src/events/relays/telemetry.event-relay.ts +++ b/packages/cli/src/events/relays/telemetry.event-relay.ts @@ -1866,7 +1866,7 @@ export class TelemetryEventRelay extends EventRelay { this.telemetry.identify( { user_role: user?.role?.slug, - user_email: user.email, + ...(this.globalConfig.deployment.type === 'cloud' && { user_email: user.email }), }, user.id, );