fix(cli) : fixed bug #8310 where /memory refresh will create discrepancies with initial memory load ignoring settings/config for trusted folder and file filters (#10611)

Co-authored-by: Bryan Morgan <bryanmorgan@google.com>
This commit is contained in:
sgnagnarella
2025-10-10 12:04:15 -04:00
committed by GitHub
parent 65b9e367f0
commit 971eb64e98
7 changed files with 84 additions and 37 deletions
@@ -12,7 +12,10 @@ import type {
ConfigParameters,
ContentGeneratorConfig,
} from '@google/gemini-cli-core';
import { Config } from '@google/gemini-cli-core';
import {
Config,
DEFAULT_FILE_FILTERING_OPTIONS,
} from '@google/gemini-cli-core';
import { http, HttpResponse } from 'msw';
import { setupServer } from 'msw/node';
@@ -78,12 +81,14 @@ describe('Configuration Integration Tests', () => {
sandbox: false,
targetDir: tempDir,
debugMode: false,
fileFilteringRespectGitIgnore: undefined, // Should default to true
fileFilteringRespectGitIgnore: undefined, // Should default to DEFAULT_FILE_FILTERING_OPTIONS
};
const config = new Config(configParams);
expect(config.getFileFilteringRespectGitIgnore()).toBe(true);
expect(config.getFileFilteringRespectGitIgnore()).toBe(
DEFAULT_FILE_FILTERING_OPTIONS.respectGitIgnore,
);
});
it('should load custom file filtering settings from configuration', async () => {
@@ -112,7 +117,9 @@ describe('Configuration Integration Tests', () => {
sandbox: false,
targetDir: tempDir,
debugMode: false,
fileFilteringRespectGitIgnore: true,
fileFiltering: {
respectGitIgnore: true,
},
};
const config = new Config(configParams);
@@ -149,13 +156,15 @@ describe('Configuration Integration Tests', () => {
sandbox: false,
targetDir: tempDir,
debugMode: false,
fileFilteringRespectGitIgnore: undefined,
fileFiltering: {},
};
const config = new Config(configParams);
// All settings should use defaults
expect(config.getFileFilteringRespectGitIgnore()).toBe(true);
expect(config.getFileFilteringRespectGitIgnore()).toBe(
DEFAULT_FILE_FILTERING_OPTIONS.respectGitIgnore,
);
});
it('should handle missing configuration sections gracefully', async () => {
@@ -172,7 +181,9 @@ describe('Configuration Integration Tests', () => {
const config = new Config(configParams);
// All git-aware settings should use defaults
expect(config.getFileFilteringRespectGitIgnore()).toBe(true);
expect(config.getFileFilteringRespectGitIgnore()).toBe(
DEFAULT_FILE_FILTERING_OPTIONS.respectGitIgnore,
);
});
});
@@ -185,7 +196,9 @@ describe('Configuration Integration Tests', () => {
sandbox: false,
targetDir: tempDir,
debugMode: false,
fileFilteringRespectGitIgnore: true,
fileFiltering: {
respectGitIgnore: true,
},
};
const config = new Config(configParams);
+6 -1
View File
@@ -16,7 +16,12 @@ import {
OutputFormat,
type GeminiCLIExtension,
} from '@google/gemini-cli-core';
import { loadCliConfig, parseArguments, type CliArgs } from './config.js';
import {
loadCliConfig,
loadHierarchicalGeminiMemory,
parseArguments,
type CliArgs,
} from './config.js';
import type { Settings } from './settings.js';
import { ExtensionStorage } from './extension.js';
import * as ServerConfig from '@google/gemini-cli-core';
+1 -1
View File
@@ -715,7 +715,7 @@ export async function loadCliConfig(
},
telemetry: telemetrySettings,
usageStatisticsEnabled: settings.privacy?.usageStatisticsEnabled ?? true,
fileFiltering: settings.context?.fileFiltering,
fileFiltering,
checkpointing:
argv.checkpointing || settings.general?.checkpointing?.enabled,
proxy: