From 2548facc79f8b52a85d00c562d05d0933616ea95 Mon Sep 17 00:00:00 2001 From: Lee James <40045512+leehagoodjames@users.noreply.github.com> Date: Mon, 11 Aug 2025 11:11:20 -0400 Subject: [PATCH] feat: add "surface" to all logs (#5862) --- .../clearcut-logger/clearcut-logger.ts | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts b/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts index 09ae6741..1e67d1cf 100644 --- a/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts +++ b/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts @@ -150,13 +150,27 @@ export class ClearcutLogger { } } + addDefaultFields(data: EventValue[]): void { + const totalAccounts = getLifetimeGoogleAccounts(); + const surface = determineSurface(); + const defaultLogMetadata = [ + { + gemini_cli_key: EventMetadataKey.GEMINI_CLI_GOOGLE_ACCOUNTS_COUNT, + value: totalAccounts.toString(), + }, + { + gemini_cli_key: EventMetadataKey.GEMINI_CLI_SURFACE, + value: surface, + }, + ]; + data.push(...defaultLogMetadata); + } + createLogEvent(name: string, data: EventValue[]): LogEvent { const email = getCachedGoogleAccount(); - const totalAccounts = getLifetimeGoogleAccounts(); - data.push({ - gemini_cli_key: EventMetadataKey.GEMINI_CLI_GOOGLE_ACCOUNTS_COUNT, - value: totalAccounts.toString(), - }); + + // Add default fields that should exist for all logs + this.addDefaultFields(data); const logEvent: LogEvent = { console_type: 'GEMINI_CLI', @@ -340,8 +354,6 @@ export class ClearcutLogger { } logStartSessionEvent(event: StartSessionEvent): void { - const surface = determineSurface(); - const data: EventValue[] = [ { gemini_cli_key: EventMetadataKey.GEMINI_CLI_START_SESSION_MODEL, @@ -407,10 +419,6 @@ export class ClearcutLogger { EventMetadataKey.GEMINI_CLI_START_SESSION_TELEMETRY_LOG_USER_PROMPTS_ENABLED, value: event.telemetry_log_user_prompts_enabled.toString(), }, - { - gemini_cli_key: EventMetadataKey.GEMINI_CLI_SURFACE, - value: surface, - }, ]; // Flush start event immediately