From 6c6761862427279455256e7c99cc45a2f17583ca Mon Sep 17 00:00:00 2001 From: Louis Jimenez Date: Fri, 20 Jun 2025 00:39:15 -0400 Subject: Make checkpoints configurable in settings.json (#1251) --- packages/cli/src/config/config.integration.test.ts | 18 ++++++++++++++++++ packages/cli/src/config/config.ts | 6 +++--- packages/cli/src/config/settings.ts | 5 +++++ 3 files changed, 26 insertions(+), 3 deletions(-) (limited to 'packages/cli/src/config') diff --git a/packages/cli/src/config/config.integration.test.ts b/packages/cli/src/config/config.integration.test.ts index 4a965a1f..de329384 100644 --- a/packages/cli/src/config/config.integration.test.ts +++ b/packages/cli/src/config/config.integration.test.ts @@ -186,4 +186,22 @@ describe('Configuration Integration Tests', () => { expect(config.getFileFilteringRespectGitIgnore()).toBe(false); }); }); + + describe('Checkpointing Configuration', () => { + it('should enable checkpointing when the setting is true', async () => { + const configParams: ConfigParameters = { + cwd: '/tmp', + contentGeneratorConfig: TEST_CONTENT_GENERATOR_CONFIG, + embeddingModel: 'test-embedding-model', + sandbox: false, + targetDir: tempDir, + debugMode: false, + checkpointing: true, + }; + + const config = new Config(configParams); + + expect(config.getCheckpointingEnabled()).toBe(true); + }); + }); }); diff --git a/packages/cli/src/config/config.ts b/packages/cli/src/config/config.ts index 6e52c6e2..afc63b78 100644 --- a/packages/cli/src/config/config.ts +++ b/packages/cli/src/config/config.ts @@ -49,7 +49,7 @@ interface CliArgs { show_memory_usage: boolean | undefined; yolo: boolean | undefined; telemetry: boolean | undefined; - checkpoint: boolean | undefined; + checkpointing: boolean | undefined; telemetryTarget: string | undefined; telemetryOtlpEndpoint: string | undefined; telemetryLogPrompts: boolean | undefined; @@ -122,7 +122,7 @@ async function parseArguments(): Promise { description: 'Enable or disable logging of user prompts for telemetry. Overrides settings files.', }) - .option('checkpoint', { + .option('checkpointing', { alias: 'c', type: 'boolean', description: 'Enables checkpointing of file edits', @@ -229,7 +229,7 @@ export async function loadCliConfig( }, // Git-aware file filtering settings fileFilteringRespectGitIgnore: settings.fileFiltering?.respectGitIgnore, - checkpoint: argv.checkpoint, + checkpointing: argv.checkpointing || settings.checkpointing?.enabled, proxy: process.env.HTTPS_PROXY || process.env.https_proxy || diff --git a/packages/cli/src/config/settings.ts b/packages/cli/src/config/settings.ts index a90ed2d8..b63f5bb6 100644 --- a/packages/cli/src/config/settings.ts +++ b/packages/cli/src/config/settings.ts @@ -27,6 +27,10 @@ export enum SettingScope { Workspace = 'Workspace', } +export interface CheckpointingSettings { + enabled?: boolean; +} + export interface AccessibilitySettings { disableLoadingPhrases?: boolean; } @@ -47,6 +51,7 @@ export interface Settings { telemetry?: TelemetrySettings; preferredEditor?: string; bugCommand?: BugCommandSettings; + checkpointing?: CheckpointingSettings; // Git-aware file filtering settings fileFiltering?: { -- cgit v1.2.3