From 128b25b50e51d5b5049cd7f6d22aa31ec4d0b8ee Mon Sep 17 00:00:00 2001 From: Mahima Shanware Date: Wed, 15 Apr 2026 20:36:52 +0000 Subject: [PATCH] fix(core): use extensionId for JIT plans dir and update tests --- packages/core/src/tools/enter-plan-mode.test.ts | 8 ++++++-- packages/core/src/tools/enter-plan-mode.ts | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/core/src/tools/enter-plan-mode.test.ts b/packages/core/src/tools/enter-plan-mode.test.ts index ff584aaafc..1fbb633f94 100644 --- a/packages/core/src/tools/enter-plan-mode.test.ts +++ b/packages/core/src/tools/enter-plan-mode.test.ts @@ -137,20 +137,24 @@ describe('EnterPlanModeTool', () => { it('should create custom plan directories for active extensions, handling overrides and fallbacks', async () => { vi.mocked(mockConfig.getExtensions!).mockReturnValue([ { + id: 'ext-user-override-id', name: 'ext-user-override', isActive: true, plan: { directory: '.manifest-dir' }, // Manifest default exists } as import('../config/config.js').GeminiCLIExtension, { + id: 'ext-manifest-fallback-id', name: 'ext-manifest-fallback', isActive: true, plan: { directory: '.manifest-dir' }, // Only manifest default } as import('../config/config.js').GeminiCLIExtension, { + id: 'ext-no-custom-id', name: 'ext-no-custom', isActive: true, } as import('../config/config.js').GeminiCLIExtension, { + id: 'ext-inactive-id', name: 'ext-inactive', isActive: false, plan: { directory: '.inactive-dir' }, @@ -158,8 +162,8 @@ describe('EnterPlanModeTool', () => { ]); vi.mocked(mockConfig.getExtensionSetting!).mockImplementation( - (name, setting) => { - if (name === 'ext-user-override' && setting === 'plan.directory') { + (id, setting) => { + if (id === 'ext-user-override-id' && setting === 'plan.directory') { return '.user-override-dir'; // User setting wins } return undefined; diff --git a/packages/core/src/tools/enter-plan-mode.ts b/packages/core/src/tools/enter-plan-mode.ts index 072e300ca1..7c7a111774 100644 --- a/packages/core/src/tools/enter-plan-mode.ts +++ b/packages/core/src/tools/enter-plan-mode.ts @@ -144,7 +144,7 @@ export class EnterPlanModeInvocation extends BaseToolInvocation< // Check for user-defined custom plan directory setting first. // If not set, fallback to the default directory defined in the extension's manifest. const customDir = - this.config.getExtensionSetting(ext.name, 'plan.directory') ?? + this.config.getExtensionSetting(ext.id, 'plan.directory') ?? ext.plan?.directory; if (customDir) {