From 926adc17e356b5467d8731dc9a46a1fcdbb800f8 Mon Sep 17 00:00:00 2001 From: Ravi Kumar Date: Tue, 9 Dec 2025 18:12:36 +0530 Subject: [PATCH] feat(telemetry): Add userId and sessionId metadata to experimental_telemetry --- packages/opencode/src/agent/agent.ts | 7 ++++++- packages/opencode/src/session/compaction.ts | 8 +++++++- packages/opencode/src/session/prompt.ts | 16 ++++++++++++++-- packages/opencode/src/session/summary.ts | 16 ++++++++++++++-- 4 files changed, 41 insertions(+), 6 deletions(-) diff --git a/packages/opencode/src/agent/agent.ts b/packages/opencode/src/agent/agent.ts index 73a7a79963e..de0d2e50416 100644 --- a/packages/opencode/src/agent/agent.ts +++ b/packages/opencode/src/agent/agent.ts @@ -245,7 +245,12 @@ export namespace Agent { system.push(PROMPT_GENERATE) const existing = await list() const result = await generateObject({ - experimental_telemetry: { isEnabled: cfg.experimental?.openTelemetry }, + experimental_telemetry: { + isEnabled: cfg.experimental?.openTelemetry, + metadata: { + userId: cfg.username ?? "unknown", + }, + }, temperature: 0.3, prompt: [ ...system.map( diff --git a/packages/opencode/src/session/compaction.ts b/packages/opencode/src/session/compaction.ts index 0dbdf89792c..5e593250e25 100644 --- a/packages/opencode/src/session/compaction.ts +++ b/packages/opencode/src/session/compaction.ts @@ -192,7 +192,13 @@ export namespace SessionCompaction { }, ], }), - experimental_telemetry: { isEnabled: cfg.experimental?.openTelemetry }, + experimental_telemetry: { + isEnabled: cfg.experimental?.openTelemetry, + metadata: { + userId: cfg.username ?? "unknown", + sessionId: input.sessionID, + }, + }, }) if (result === "continue" && input.auto) { const continueMsg = await Session.updateMessage({ diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 3164bec5019..266879ebb20 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -628,7 +628,13 @@ export namespace SessionPrompt { }, ], }), - experimental_telemetry: { isEnabled: cfg.experimental?.openTelemetry }, + experimental_telemetry: { + isEnabled: cfg.experimental?.openTelemetry, + metadata: { + userId: cfg.username ?? "unknown", + sessionId: sessionID, + }, + }, }) if (result === "stop") break continue @@ -1491,7 +1497,13 @@ export namespace SessionPrompt { ], headers: small.headers, model: language, - experimental_telemetry: { isEnabled: cfg.experimental?.openTelemetry }, + experimental_telemetry: { + isEnabled: cfg.experimental?.openTelemetry, + metadata: { + userId: cfg.username ?? "unknown", + sessionId: input.session.id, + }, + }, }) .then((result) => { if (result.text) diff --git a/packages/opencode/src/session/summary.ts b/packages/opencode/src/session/summary.ts index d1004aa0e35..ab6a986862c 100644 --- a/packages/opencode/src/session/summary.ts +++ b/packages/opencode/src/session/summary.ts @@ -111,7 +111,13 @@ export namespace SessionSummary { ], headers: small.headers, model: language, - experimental_telemetry: { isEnabled: cfg.experimental?.openTelemetry }, + experimental_telemetry: { + isEnabled: cfg.experimental?.openTelemetry, + metadata: { + userId: cfg.username ?? "unknown", + sessionId: assistantMsg.sessionID, + }, + }, }) log.info("title", { title: result.text }) userMsg.summary.title = result.text @@ -153,7 +159,13 @@ export namespace SessionSummary { }, ], headers: small.headers, - experimental_telemetry: { isEnabled: cfg.experimental?.openTelemetry }, + experimental_telemetry: { + isEnabled: cfg.experimental?.openTelemetry, + metadata: { + userId: cfg.username ?? "unknown", + sessionId: assistantMsg.sessionID, + }, + }, }).catch(() => {}) if (result) summary = result.text }