fix(telemetry): implement bounded structural truncation and decouple traces

This commit is contained in:
Spencer
2026-04-10 18:22:10 +00:00
parent 82e8d67a78
commit c6d3849d0c
25 changed files with 244 additions and 95 deletions
@@ -2966,6 +2966,11 @@ export const SETTINGS_SCHEMA_DEFINITIONS: Record<
description: 'Protocol for OTLP exporters.',
enum: ['grpc', 'http'],
},
traces: {
type: 'boolean',
description:
'Whether detailed traces with large attributes are captured.',
},
logPrompts: {
type: 'boolean',
description: 'Whether prompts are logged in telemetry payloads.',
+2
View File
@@ -241,6 +241,7 @@ describe('gemini.tsx main function cleanup', () => {
getCoreTools: vi.fn(() => []),
getTelemetryEnabled: vi.fn(() => false),
getTelemetryLogPromptsEnabled: vi.fn(() => false),
getTelemetryTracesEnabled: () => false,
getFileFilteringRespectGitIgnore: vi.fn(() => true),
getOutputFormat: vi.fn(() => 'text'),
getUsageStatisticsEnabled: vi.fn(() => false),
@@ -325,6 +326,7 @@ describe('gemini.tsx main function cleanup', () => {
getCoreTools: vi.fn(() => []),
getTelemetryEnabled: vi.fn(() => false),
getTelemetryLogPromptsEnabled: vi.fn(() => false),
getTelemetryTracesEnabled: () => false,
getFileFilteringRespectGitIgnore: vi.fn(() => true),
getOutputFormat: vi.fn(() => 'text'),
getUsageStatisticsEnabled: vi.fn(() => false),
@@ -87,6 +87,7 @@ export const createMockConfig = (overrides: Partial<Config> = {}): Config =>
getAccessibility: vi.fn().mockReturnValue({}),
getTelemetryEnabled: vi.fn().mockReturnValue(false),
getTelemetryLogPromptsEnabled: vi.fn().mockReturnValue(false),
getTelemetryTracesEnabled: vi.fn().mockReturnValue(false),
getTelemetryOtlpEndpoint: vi.fn().mockReturnValue(''),
getTelemetryOtlpProtocol: vi.fn().mockReturnValue('grpc'),
getTelemetryTarget: vi.fn().mockReturnValue(''),
@@ -308,6 +308,8 @@ describe('useGeminiStream', () => {
sandbox: false,
targetDir: '/test/dir',
debugMode: false,
getTelemetryLogPromptsEnabled: vi.fn().mockReturnValue(false),
getTelemetryTracesEnabled: vi.fn().mockReturnValue(false),
question: undefined,
coreTools: [],
toolDiscoveryCommand: undefined,
@@ -1559,6 +1559,8 @@ export const useGeminiStream = (
operation: options?.isContinuation
? GeminiCliOperation.SystemPrompt
: GeminiCliOperation.UserPrompt,
logPrompts: config.getTelemetryLogPromptsEnabled(),
tracesEnabled: config.getTelemetryTracesEnabled(),
sessionId: config.getSessionId(),
},
async ({ metadata: spanMetadata }) => {