diff options
| author | Niladri Das <[email protected]> | 2025-07-31 22:06:50 +0530 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-07-31 16:36:50 +0000 |
| commit | 9a6422f331294ea2f56d67599ed142d09cc33320 (patch) | |
| tree | 16f3e58fc1ce3b6de88082dd4bb194a6635bafac /packages/cli/src | |
| parent | ae86c7ba05567264ca2d115a7f96d887bc576457 (diff) | |
fix: CLAUDE.md compatibility for GEMINI.md '@' file import behavior (#2978)
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Allen Hutchison <[email protected]>
Diffstat (limited to 'packages/cli/src')
| -rw-r--r-- | packages/cli/src/config/config.test.ts | 1 | ||||
| -rw-r--r-- | packages/cli/src/config/config.ts | 21 | ||||
| -rw-r--r-- | packages/cli/src/config/settings.ts | 1 | ||||
| -rw-r--r-- | packages/cli/src/ui/App.tsx | 1 | ||||
| -rw-r--r-- | packages/cli/src/ui/commands/memoryCommand.ts | 1 |
5 files changed, 20 insertions, 5 deletions
diff --git a/packages/cli/src/config/config.test.ts b/packages/cli/src/config/config.test.ts index d87d0c8f..d8d463c2 100644 --- a/packages/cli/src/config/config.test.ts +++ b/packages/cli/src/config/config.test.ts @@ -494,6 +494,7 @@ describe('Hierarchical Memory Loading (config.ts) - Placeholder Suite', () => { '/path/to/ext3/context1.md', '/path/to/ext3/context2.md', ], + 'tree', { respectGitIgnore: false, respectGeminiIgnore: true, diff --git a/packages/cli/src/config/config.ts b/packages/cli/src/config/config.ts index d650a9af..a147bca8 100644 --- a/packages/cli/src/config/config.ts +++ b/packages/cli/src/config/config.ts @@ -59,6 +59,7 @@ export interface CliArgs { experimentalAcp: boolean | undefined; extensions: string[] | undefined; listExtensions: boolean | undefined; + ideMode?: boolean | undefined; ideModeFeature: boolean | undefined; proxy: string | undefined; includeDirectories: string[] | undefined; @@ -224,7 +225,11 @@ export async function parseArguments(): Promise<CliArgs> { }); yargsInstance.wrap(yargsInstance.terminalWidth()); - return yargsInstance.argv; + const result = yargsInstance.parseSync(); + + // The import format is now only controlled by settings.memoryImportFormat + // We no longer accept it as a CLI argument + return result as CliArgs; } // This function is now a thin wrapper around the server's implementation. @@ -236,11 +241,12 @@ export async function loadHierarchicalGeminiMemory( fileService: FileDiscoveryService, settings: Settings, extensionContextFilePaths: string[] = [], + memoryImportFormat: 'flat' | 'tree' = 'tree', fileFilteringOptions?: FileFilteringOptions, ): Promise<{ memoryContent: string; fileCount: number }> { if (debugMode) { logger.debug( - `CLI: Delegating hierarchical memory load to server for CWD: ${currentWorkingDirectory}`, + `CLI: Delegating hierarchical memory load to server for CWD: ${currentWorkingDirectory} (memoryImportFormat: ${memoryImportFormat})`, ); } @@ -251,6 +257,7 @@ export async function loadHierarchicalGeminiMemory( debugMode, fileService, extensionContextFilePaths, + memoryImportFormat, fileFilteringOptions, settings.memoryDiscoveryMaxDirs, ); @@ -266,9 +273,12 @@ export async function loadCliConfig( argv.debug || [process.env.DEBUG, process.env.DEBUG_MODE].some( (v) => v === 'true' || v === '1', - ); - - const ideMode = settings.ideMode ?? false; + ) || + false; + const memoryImportFormat = settings.memoryImportFormat || 'tree'; + const ideMode = + (argv.ideMode ?? settings.ideMode ?? false) && + process.env.TERM_PROGRAM === 'vscode'; const ideModeFeature = (argv.ideModeFeature ?? settings.ideModeFeature ?? false) && @@ -314,6 +324,7 @@ export async function loadCliConfig( fileService, settings, extensionContextFilePaths, + memoryImportFormat, fileFiltering, ); diff --git a/packages/cli/src/config/settings.ts b/packages/cli/src/config/settings.ts index 5d1b1aaf..752d7159 100644 --- a/packages/cli/src/config/settings.ts +++ b/packages/cli/src/config/settings.ts @@ -98,6 +98,7 @@ export interface Settings { summarizeToolOutput?: Record<string, SummarizeToolOutputSettings>; vimMode?: boolean; + memoryImportFormat?: 'tree' | 'flat'; // Flag to be removed post-launch. ideModeFeature?: boolean; diff --git a/packages/cli/src/ui/App.tsx b/packages/cli/src/ui/App.tsx index db9e5be4..046713ac 100644 --- a/packages/cli/src/ui/App.tsx +++ b/packages/cli/src/ui/App.tsx @@ -277,6 +277,7 @@ const App = ({ config, settings, startupWarnings = [], version }: AppProps) => { config.getFileService(), settings.merged, config.getExtensionContextFilePaths(), + settings.merged.memoryImportFormat || 'tree', // Use setting or default to 'tree' config.getFileFilteringOptions(), ); diff --git a/packages/cli/src/ui/commands/memoryCommand.ts b/packages/cli/src/ui/commands/memoryCommand.ts index fe698c0f..370bb1fb 100644 --- a/packages/cli/src/ui/commands/memoryCommand.ts +++ b/packages/cli/src/ui/commands/memoryCommand.ts @@ -92,6 +92,7 @@ export const memoryCommand: SlashCommand = { config.getDebugMode(), config.getFileService(), config.getExtensionContextFilePaths(), + context.services.settings.merged.memoryImportFormat || 'tree', // Use setting or default to 'tree' config.getFileFilteringOptions(), context.services.settings.merged.memoryDiscoveryMaxDirs, ); |
