From 30271d64ebabd2a9676fc7f8e8987b4a5fe86756 Mon Sep 17 00:00:00 2001 From: Sandy Tao Date: Mon, 16 Mar 2026 15:12:28 -0700 Subject: [PATCH] feat(config): enable JIT context loading by default (#22736) --- docs/reference/configuration.md | 2 +- packages/cli/src/config/config.test.ts | 6 +++++- packages/cli/src/config/config.ts | 2 +- packages/cli/src/config/settingsSchema.ts | 2 +- packages/core/src/config/config.ts | 2 +- schemas/settings.schema.json | 4 ++-- 6 files changed, 11 insertions(+), 7 deletions(-) diff --git a/docs/reference/configuration.md b/docs/reference/configuration.md index 8845b6dd69..a3b4788026 100644 --- a/docs/reference/configuration.md +++ b/docs/reference/configuration.md @@ -1190,7 +1190,7 @@ their corresponding top-level category object in your `settings.json` file. - **`experimental.jitContext`** (boolean): - **Description:** Enable Just-In-Time (JIT) context loading. - - **Default:** `false` + - **Default:** `true` - **Requires restart:** Yes - **`experimental.useOSC52Paste`** (boolean): diff --git a/packages/cli/src/config/config.test.ts b/packages/cli/src/config/config.test.ts index 72c55a64b3..8990224b0f 100644 --- a/packages/cli/src/config/config.test.ts +++ b/packages/cli/src/config/config.test.ts @@ -814,7 +814,9 @@ describe('Hierarchical Memory Loading (config.ts) - Placeholder Suite', () => { it('should pass extension context file paths to loadServerHierarchicalMemory', async () => { process.argv = ['node', 'script.js']; - const settings = createTestMergedSettings(); + const settings = createTestMergedSettings({ + experimental: { jitContext: false }, + }); vi.spyOn(ExtensionManager.prototype, 'getExtensions').mockReturnValue([ { path: '/path/to/ext1', @@ -865,6 +867,7 @@ describe('Hierarchical Memory Loading (config.ts) - Placeholder Suite', () => { process.argv = ['node', 'script.js']; const includeDir = path.resolve(path.sep, 'path', 'to', 'include'); const settings = createTestMergedSettings({ + experimental: { jitContext: false }, context: { includeDirectories: [includeDir], loadMemoryFromIncludeDirectories: true, @@ -892,6 +895,7 @@ describe('Hierarchical Memory Loading (config.ts) - Placeholder Suite', () => { it('should NOT pass includeDirectories to loadServerHierarchicalMemory when loadMemoryFromIncludeDirectories is false', async () => { process.argv = ['node', 'script.js']; const settings = createTestMergedSettings({ + experimental: { jitContext: false }, context: { includeDirectories: ['/path/to/include'], loadMemoryFromIncludeDirectories: false, diff --git a/packages/cli/src/config/config.ts b/packages/cli/src/config/config.ts index ab6a22fb64..c635d5b470 100755 --- a/packages/cli/src/config/config.ts +++ b/packages/cli/src/config/config.ts @@ -494,7 +494,7 @@ export async function loadCliConfig( .getExtensions() .find((ext) => ext.isActive && ext.plan?.directory)?.plan; - const experimentalJitContext = settings.experimental?.jitContext ?? false; + const experimentalJitContext = settings.experimental.jitContext; let extensionRegistryURI = process.env['GEMINI_CLI_EXTENSION_REGISTRY_URI'] ?? diff --git a/packages/cli/src/config/settingsSchema.ts b/packages/cli/src/config/settingsSchema.ts index 04db402f07..b06df48bc3 100644 --- a/packages/cli/src/config/settingsSchema.ts +++ b/packages/cli/src/config/settingsSchema.ts @@ -1894,7 +1894,7 @@ const SETTINGS_SCHEMA = { label: 'JIT Context Loading', category: 'Experimental', requiresRestart: true, - default: false, + default: true, description: 'Enable Just-In-Time (JIT) context loading.', showInDialog: false, }, diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts index f0cf3c1eee..fe3f31edfc 100644 --- a/packages/core/src/config/config.ts +++ b/packages/core/src/config/config.ts @@ -994,7 +994,7 @@ export class Config implements McpContext, AgentLoopContext { modelConfigServiceConfig ?? DEFAULT_MODEL_CONFIGS, ); - this.experimentalJitContext = params.experimentalJitContext ?? false; + this.experimentalJitContext = params.experimentalJitContext ?? true; this.topicUpdateNarration = params.topicUpdateNarration ?? false; this.modelSteering = params.modelSteering ?? false; this.injectionService = new InjectionService(() => diff --git a/schemas/settings.schema.json b/schemas/settings.schema.json index df802f97a9..1f180ac6dd 100644 --- a/schemas/settings.schema.json +++ b/schemas/settings.schema.json @@ -2013,8 +2013,8 @@ "jitContext": { "title": "JIT Context Loading", "description": "Enable Just-In-Time (JIT) context loading.", - "markdownDescription": "Enable Just-In-Time (JIT) context loading.\n\n- Category: `Experimental`\n- Requires restart: `yes`\n- Default: `false`", - "default": false, + "markdownDescription": "Enable Just-In-Time (JIT) context loading.\n\n- Category: `Experimental`\n- Requires restart: `yes`\n- Default: `true`", + "default": true, "type": "boolean" }, "useOSC52Paste": {