From ebf5437e52ae0b0c8fb1839a3ff21b97360f2c31 Mon Sep 17 00:00:00 2001 From: Jerop Kipruto Date: Wed, 17 Sep 2025 00:16:05 +0900 Subject: [PATCH] feat: remove session summary feature (#8545) --- integration-tests/session-summary.test.ts | 37 ----------------------- packages/cli/src/config/config.ts | 5 --- packages/cli/src/gemini.test.tsx | 3 +- packages/cli/src/gemini.tsx | 12 +------- 4 files changed, 2 insertions(+), 55 deletions(-) delete mode 100644 integration-tests/session-summary.test.ts diff --git a/integration-tests/session-summary.test.ts b/integration-tests/session-summary.test.ts deleted file mode 100644 index 9acf9d61d5..0000000000 --- a/integration-tests/session-summary.test.ts +++ /dev/null @@ -1,37 +0,0 @@ -/** - * @license - * Copyright 2025 Google LLC - * SPDX-License-Identifier: Apache-2.0 - */ - -import { TestRig } from './test-helper.js'; -import { describe, it, expect, beforeEach, afterEach } from 'vitest'; -import { join } from 'node:path'; -import { readFileSync } from 'node:fs'; - -describe('session-summary flag', () => { - let rig: TestRig; - - beforeEach(function (context) { - rig = new TestRig(); - if (context.task.name) { - rig.setup(context.task.name); - } - }); - - afterEach(async () => { - await rig.cleanup(); - }); - - it('should write a session summary in non-interactive mode', async () => { - const summaryPath = join(rig.testDir!, 'summary.json'); - await rig.run('Say hello', '--session-summary', summaryPath); - - const summaryContent = readFileSync(summaryPath, 'utf-8'); - const summary = JSON.parse(summaryContent); - - expect(summary).toBeDefined(); - expect(summary.sessionMetrics.models).toBeDefined(); - expect(summary.sessionMetrics.tools).toBeDefined(); - }); -}); diff --git a/packages/cli/src/config/config.ts b/packages/cli/src/config/config.ts index 440c923aa3..f2d058b2bf 100755 --- a/packages/cli/src/config/config.ts +++ b/packages/cli/src/config/config.ts @@ -81,7 +81,6 @@ export interface CliArgs { includeDirectories: string[] | undefined; screenReader: boolean | undefined; useSmartEdit: boolean | undefined; - sessionSummary: string | undefined; promptWords: string[] | undefined; outputFormat: string | undefined; } @@ -232,10 +231,6 @@ export async function parseArguments(settings: Settings): Promise { description: 'Enable screen reader mode for accessibility.', default: false, }) - .option('session-summary', { - type: 'string', - description: 'File to write session summary to.', - }) .option('output-format', { type: 'string', description: 'The format of the CLI output.', diff --git a/packages/cli/src/gemini.test.tsx b/packages/cli/src/gemini.test.tsx index 7d6a522572..131b771dc1 100644 --- a/packages/cli/src/gemini.test.tsx +++ b/packages/cli/src/gemini.test.tsx @@ -45,7 +45,7 @@ vi.mock('./config/config.js', () => ({ getSandbox: vi.fn(() => false), getQuestion: vi.fn(() => ''), } as unknown as Config), - parseArguments: vi.fn().mockResolvedValue({ sessionSummary: null }), + parseArguments: vi.fn().mockResolvedValue({}), })); vi.mock('read-package-up', () => ({ @@ -242,7 +242,6 @@ describe('gemini.tsx main function kitty protocol', () => { includeDirectories: undefined, screenReader: undefined, useSmartEdit: undefined, - sessionSummary: undefined, promptWords: undefined, outputFormat: undefined, }); diff --git a/packages/cli/src/gemini.tsx b/packages/cli/src/gemini.tsx index af2d0d6c9b..3fea2befeb 100644 --- a/packages/cli/src/gemini.tsx +++ b/packages/cli/src/gemini.tsx @@ -34,7 +34,6 @@ import { logUserPrompt, AuthType, getOauthClient, - uiTelemetryService, } from '@google/gemini-cli-core'; import { initializeApp, @@ -48,7 +47,7 @@ import { checkForUpdates } from './ui/utils/updateCheck.js'; import { handleAutoUpdate } from './utils/handleAutoUpdate.js'; import { appEvents, AppEvent } from './utils/events.js'; import { SettingsContext } from './ui/contexts/SettingsContext.js'; -import { writeFileSync } from 'node:fs'; + import { SessionStatsProvider } from './ui/contexts/SessionContext.js'; import { VimModeProvider } from './ui/contexts/VimModeContext.js'; import { KeypressProvider } from './ui/contexts/KeypressContext.js'; @@ -235,15 +234,6 @@ export async function main() { // Detect and enable Kitty keyboard protocol once at startup. kittyProtocolDetectionComplete = detectAndEnableKittyProtocol(); } - if (argv.sessionSummary) { - registerCleanup(() => { - const metrics = uiTelemetryService.getMetrics(); - writeFileSync( - argv.sessionSummary!, - JSON.stringify({ sessionMetrics: metrics }, null, 2), - ); - }); - } const consolePatcher = new ConsolePatcher({ stderr: true,