From a2faf34df8ebfedaf53a6f72604c698ee21e2ceb Mon Sep 17 00:00:00 2001 From: Richie Foreman Date: Thu, 28 Aug 2025 14:22:39 -0400 Subject: [PATCH] fix(logging): Log NodeJS Version && Make Config.SessionID readonly (#7219) --- packages/core/src/config/config.ts | 6 +----- .../telemetry/clearcut-logger/clearcut-logger.test.ts | 11 +++++++++++ .../src/telemetry/clearcut-logger/clearcut-logger.ts | 4 ++++ .../telemetry/clearcut-logger/event-metadata-key.ts | 3 +++ 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts index ed2bac45bc..686c14e5f3 100644 --- a/packages/core/src/config/config.ts +++ b/packages/core/src/config/config.ts @@ -212,7 +212,7 @@ export interface ConfigParameters { export class Config { private toolRegistry!: ToolRegistry; private promptRegistry!: PromptRegistry; - private sessionId: string; + private readonly sessionId: string; private fileSystemService: FileSystemService; private contentGeneratorConfig!: ContentGeneratorConfig; private readonly embeddingModel: string; @@ -427,10 +427,6 @@ export class Config { return this.sessionId; } - setSessionId(sessionId: string): void { - this.sessionId = sessionId; - } - shouldLoadMemoryFromIncludeDirectories(): boolean { return this.loadMemoryFromIncludeDirectories; } diff --git a/packages/core/src/telemetry/clearcut-logger/clearcut-logger.test.ts b/packages/core/src/telemetry/clearcut-logger/clearcut-logger.test.ts index ba6b574495..9cd740bead 100644 --- a/packages/core/src/telemetry/clearcut-logger/clearcut-logger.test.ts +++ b/packages/core/src/telemetry/clearcut-logger/clearcut-logger.test.ts @@ -262,6 +262,17 @@ describe('ClearcutLogger', () => { ); }); + it('logs the current nodejs version', () => { + const { logger } = setup({}); + + const event = logger?.createLogEvent(EventNames.API_ERROR, []); + + expect(event?.event_metadata[0]).toContainEqual({ + gemini_cli_key: EventMetadataKey.GEMINI_CLI_NODE_VERSION, + value: process.versions.node, + }); + }); + it('logs the current surface', () => { const { logger } = setup({}); diff --git a/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts b/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts index 7ee3f9faa2..3280d25e18 100644 --- a/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts +++ b/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts @@ -889,6 +889,10 @@ export class ClearcutLogger { gemini_cli_key: EventMetadataKey.GEMINI_CLI_OS, value: process.platform, }, + { + gemini_cli_key: EventMetadataKey.GEMINI_CLI_NODE_VERSION, + value: process.versions.node, + }, ]; return [...data, ...defaultLogMetadata]; } diff --git a/packages/core/src/telemetry/clearcut-logger/event-metadata-key.ts b/packages/core/src/telemetry/clearcut-logger/event-metadata-key.ts index 46f55f5b22..4807b92451 100644 --- a/packages/core/src/telemetry/clearcut-logger/event-metadata-key.ts +++ b/packages/core/src/telemetry/clearcut-logger/event-metadata-key.ts @@ -325,4 +325,7 @@ export enum EventMetadataKey { // Logs the total duration in milliseconds for a content retry failure. GEMINI_CLI_CONTENT_RETRY_FAILURE_TOTAL_DURATION_MS = 81, + + // Logs the current nodejs version + GEMINI_CLI_NODE_VERSION = 83, }