From be25e2cb96f8e1e5fed5b3bf2b6547cca707cc63 Mon Sep 17 00:00:00 2001 From: Allen Hutchison Date: Fri, 17 Oct 2025 08:58:00 -0700 Subject: [PATCH] feat: Remove deprecated flags (#11338) --- packages/cli/src/config/config.test.ts | 103 ----------------------- packages/cli/src/config/config.ts | 50 +---------- packages/cli/src/config/sandboxConfig.ts | 5 +- packages/cli/src/gemini.test.tsx | 4 - 4 files changed, 3 insertions(+), 159 deletions(-) diff --git a/packages/cli/src/config/config.test.ts b/packages/cli/src/config/config.test.ts index ef55b9f554..5312daf62b 100644 --- a/packages/cli/src/config/config.test.ts +++ b/packages/cli/src/config/config.test.ts @@ -514,74 +514,6 @@ describe('loadCliConfig', () => { vi.restoreAllMocks(); }); - it('should set showMemoryUsage to true when --show-memory-usage flag is present', async () => { - process.argv = ['node', 'script.js', '--show-memory-usage']; - const argv = await parseArguments({} as Settings); - const settings: Settings = {}; - const config = await loadCliConfig( - settings, - [], - new ExtensionEnablementManager( - ExtensionStorage.getUserExtensionsDir(), - argv.extensions, - ), - 'test-session', - argv, - ); - expect(config.getShowMemoryUsage()).toBe(true); - }); - - it('should set showMemoryUsage to false when --memory flag is not present', async () => { - process.argv = ['node', 'script.js']; - const argv = await parseArguments({} as Settings); - const settings: Settings = {}; - const config = await loadCliConfig( - settings, - [], - new ExtensionEnablementManager( - ExtensionStorage.getUserExtensionsDir(), - argv.extensions, - ), - 'test-session', - argv, - ); - expect(config.getShowMemoryUsage()).toBe(false); - }); - - it('should set showMemoryUsage to false by default from settings if CLI flag is not present', async () => { - process.argv = ['node', 'script.js']; - const argv = await parseArguments({} as Settings); - const settings: Settings = { ui: { showMemoryUsage: false } }; - const config = await loadCliConfig( - settings, - [], - new ExtensionEnablementManager( - ExtensionStorage.getUserExtensionsDir(), - argv.extensions, - ), - 'test-session', - argv, - ); - expect(config.getShowMemoryUsage()).toBe(false); - }); - - it('should prioritize CLI flag over settings for showMemoryUsage (CLI true, settings false)', async () => { - process.argv = ['node', 'script.js', '--show-memory-usage']; - const argv = await parseArguments({} as Settings); - const settings: Settings = { ui: { showMemoryUsage: false } }; - const config = await loadCliConfig( - settings, - [], - new ExtensionEnablementManager( - ExtensionStorage.getUserExtensionsDir(), - argv.extensions, - ), - 'test-session', - argv, - ); - expect(config.getShowMemoryUsage()).toBe(true); - }); - describe('Proxy configuration', () => { const originalProxyEnv: { [key: string]: string | undefined } = {}; const proxyEnvVars = [ @@ -675,41 +607,6 @@ describe('loadCliConfig', () => { expect(config.getProxy()).toBe(expected); }); }); - - it('should set proxy when --proxy flag is present', async () => { - process.argv = ['node', 'script.js', '--proxy', 'http://localhost:7890']; - const argv = await parseArguments({} as Settings); - const settings: Settings = {}; - const config = await loadCliConfig( - settings, - [], - new ExtensionEnablementManager( - ExtensionStorage.getUserExtensionsDir(), - argv.extensions, - ), - 'test-session', - argv, - ); - expect(config.getProxy()).toBe('http://localhost:7890'); - }); - - it('should prioritize CLI flag over environment variable for proxy (CLI http://localhost:7890, environment variable http://localhost:7891)', async () => { - vi.stubEnv('http_proxy', 'http://localhost:7891'); - process.argv = ['node', 'script.js', '--proxy', 'http://localhost:7890']; - const argv = await parseArguments({} as Settings); - const settings: Settings = {}; - const config = await loadCliConfig( - settings, - [], - new ExtensionEnablementManager( - ExtensionStorage.getUserExtensionsDir(), - argv.extensions, - ), - 'test-session', - argv, - ); - expect(config.getProxy()).toBe('http://localhost:7890'); - }); }); }); diff --git a/packages/cli/src/config/config.ts b/packages/cli/src/config/config.ts index accc621a6f..1e9b2a9dd9 100755 --- a/packages/cli/src/config/config.ts +++ b/packages/cli/src/config/config.ts @@ -62,21 +62,17 @@ export interface CliArgs { query: string | undefined; model: string | undefined; sandbox: boolean | string | undefined; - sandboxImage: string | undefined; debug: boolean | undefined; prompt: string | undefined; promptInteractive: string | undefined; - showMemoryUsage: boolean | undefined; yolo: boolean | undefined; approvalMode: string | undefined; - checkpointing: boolean | undefined; allowedMcpServerNames: string[] | undefined; allowedTools: string[] | undefined; experimentalAcp: boolean | undefined; extensions: string[] | undefined; listExtensions: boolean | undefined; - proxy: string | undefined; includeDirectories: string[] | undefined; screenReader: boolean | undefined; useSmartEdit: boolean | undefined; @@ -99,16 +95,6 @@ export async function parseArguments(settings: Settings): Promise { description: 'Run in debug mode?', default: false, }) - .option('proxy', { - type: 'string', - nargs: 1, - description: - 'Proxy for gemini client, like schema://user:password@host:port', - }) - .deprecateOption( - 'proxy', - 'Use the "proxy" setting in settings.json instead. This flag will be removed in a future version.', - ) .command('$0 [query..]', 'Launch Gemini CLI', (yargsInstance) => yargsInstance .positional('query', { @@ -139,17 +125,7 @@ export async function parseArguments(settings: Settings): Promise { type: 'boolean', description: 'Run in sandbox?', }) - .option('sandbox-image', { - type: 'string', - nargs: 1, - description: 'Sandbox image URI.', - }) - .option('show-memory-usage', { - type: 'boolean', - description: 'Show memory usage in status bar', - default: false, - }) .option('yolo', { alias: 'y', type: 'boolean', @@ -164,12 +140,6 @@ export async function parseArguments(settings: Settings): Promise { description: 'Set the approval mode: default (prompt for approval), auto_edit (auto-approve edit tools), yolo (auto-approve all tools)', }) - .option('checkpointing', { - alias: 'c', - type: 'boolean', - description: 'Enables checkpointing of file edits', - default: false, - }) .option('experimental-acp', { type: 'boolean', description: 'Starts the agent in ACP mode', @@ -233,19 +203,6 @@ export async function parseArguments(settings: Settings): Promise { description: 'The format of the CLI output.', choices: ['text', 'json', 'stream-json'], }) - .deprecateOption( - 'show-memory-usage', - 'Use the "ui.showMemoryUsage" setting in settings.json instead. This flag will be removed in a future version.', - ) - .deprecateOption( - 'sandbox-image', - 'Use the "tools.sandbox" setting in settings.json instead. This flag will be removed in a future version.', - ) - .deprecateOption( - 'checkpointing', - 'Use the "general.checkpointing.enabled" setting in settings.json instead. This flag will be removed in a future version.', - ) - .deprecateOption( 'prompt', 'Use the positional prompt instead. This flag will be removed in a future version.', @@ -648,8 +605,7 @@ export async function loadCliConfig( geminiMdFileCount: fileCount, geminiMdFilePaths: filePaths, approvalMode, - showMemoryUsage: - argv.showMemoryUsage || settings.ui?.showMemoryUsage || false, + showMemoryUsage: settings.ui?.showMemoryUsage || false, accessibility: { ...settings.ui?.accessibility, screenReader, @@ -657,10 +613,8 @@ export async function loadCliConfig( telemetry: telemetrySettings, usageStatisticsEnabled: settings.privacy?.usageStatisticsEnabled ?? true, fileFiltering, - checkpointing: - argv.checkpointing || settings.general?.checkpointing?.enabled, + checkpointing: settings.general?.checkpointing?.enabled, proxy: - argv.proxy || process.env['HTTPS_PROXY'] || process.env['https_proxy'] || process.env['HTTP_PROXY'] || diff --git a/packages/cli/src/config/sandboxConfig.ts b/packages/cli/src/config/sandboxConfig.ts index 8404e589eb..8d2242c441 100644 --- a/packages/cli/src/config/sandboxConfig.ts +++ b/packages/cli/src/config/sandboxConfig.ts @@ -15,7 +15,6 @@ import type { Settings } from './settings.js'; // to avoid circular dependencies. interface SandboxCliArgs { sandbox?: boolean | string; - sandboxImage?: string; } const VALID_SANDBOX_COMMANDS: ReadonlyArray = [ @@ -97,9 +96,7 @@ export async function loadSandboxConfig( const packageJson = await getPackageJson(); const image = - argv.sandboxImage ?? - process.env['GEMINI_SANDBOX_IMAGE'] ?? - packageJson?.config?.sandboxImageUri; + process.env['GEMINI_SANDBOX_IMAGE'] ?? packageJson?.config?.sandboxImageUri; return command && image ? { command, image } : undefined; } diff --git a/packages/cli/src/gemini.test.tsx b/packages/cli/src/gemini.test.tsx index 87708aa902..1ccb148375 100644 --- a/packages/cli/src/gemini.test.tsx +++ b/packages/cli/src/gemini.test.tsx @@ -315,21 +315,17 @@ describe('gemini.tsx main function kitty protocol', () => { vi.mocked(parseArguments).mockResolvedValue({ model: undefined, sandbox: undefined, - sandboxImage: undefined, debug: undefined, prompt: undefined, promptInteractive: undefined, query: undefined, - showMemoryUsage: undefined, yolo: undefined, approvalMode: undefined, - checkpointing: undefined, allowedMcpServerNames: undefined, allowedTools: undefined, experimentalAcp: undefined, extensions: undefined, listExtensions: undefined, - proxy: undefined, includeDirectories: undefined, screenReader: undefined, useSmartEdit: undefined,