summaryrefslogtreecommitdiff
path: root/packages/cli/src
diff options
context:
space:
mode:
authorNiladri Das <[email protected]>2025-07-31 22:06:50 +0530
committerGitHub <[email protected]>2025-07-31 16:36:50 +0000
commit9a6422f331294ea2f56d67599ed142d09cc33320 (patch)
tree16f3e58fc1ce3b6de88082dd4bb194a6635bafac /packages/cli/src
parentae86c7ba05567264ca2d115a7f96d887bc576457 (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.ts1
-rw-r--r--packages/cli/src/config/config.ts21
-rw-r--r--packages/cli/src/config/settings.ts1
-rw-r--r--packages/cli/src/ui/App.tsx1
-rw-r--r--packages/cli/src/ui/commands/memoryCommand.ts1
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,
);