From a7456476ea316d4c8cd610c8c7cacd0f62a9b0dc Mon Sep 17 00:00:00 2001 From: Owen Obrien Date: Fri, 21 Nov 2025 13:59:53 -0600 Subject: [PATCH 1/2] Moved client id logging into createBasicLogEvent to ensure that extension events include a client identifier. --- .../clearcut-logger/clearcut-logger.ts | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts b/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts index a465e9dec82..c9a051cdb7a 100644 --- a/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts +++ b/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts @@ -259,8 +259,9 @@ export class ClearcutLogger { eventName: EventNames, data: EventValue[] = [], ): LogEvent { + const email = this.userAccountManager.getCachedGoogleAccount(); const surface = determineSurface(); - return { + const logEvent: LogEvent = { console_type: 'GEMINI_CLI', application: 102, // GEMINI_CLI event_name: eventName as string, @@ -286,11 +287,18 @@ export class ClearcutLogger { ], ], }; + + // Should log either email or install ID, not both. See go/cloudmill-1p-oss-instrumentation#define-sessionable-id + if (email) { + logEvent.client_email = email; + } else { + logEvent.client_install_id = this.installationManager.getInstallationId(); + } + + return logEvent; } createLogEvent(eventName: EventNames, data: EventValue[] = []): LogEvent { - const email = this.userAccountManager.getCachedGoogleAccount(); - if (eventName !== EventNames.START_SESSION) { data.push(...this.sessionData); } @@ -298,16 +306,7 @@ export class ClearcutLogger { data = this.addDefaultFields(data, totalAccounts); - const logEvent = this.createBasicLogEvent(eventName, data); - - // Should log either email or install ID, not both. See go/cloudmill-1p-oss-instrumentation#define-sessionable-id - if (email) { - logEvent.client_email = email; - } else { - logEvent.client_install_id = this.installationManager.getInstallationId(); - } - - return logEvent; + return this.createBasicLogEvent(eventName, data); } flushIfNeeded(): void { From d944ade63bbaf18f7d0c437ac9fb01c1627d318b Mon Sep 17 00:00:00 2001 From: Owen Obrien Date: Fri, 21 Nov 2025 15:09:15 -0600 Subject: [PATCH 2/2] Ran linter --- packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts b/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts index 6c0b2f2199c..d6468816d93 100644 --- a/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts +++ b/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts @@ -295,7 +295,7 @@ export class ClearcutLogger { const email = this.userAccountManager.getCachedGoogleAccount(); const surface = determineSurface(); const ghWorkflowName = determineGHWorkflowName(); - + const baseMetadata: EventValue[] = [ ...data, {