Plumb extension context filenames through for /memory refresh (#1312)

This commit is contained in:
Billy Biggs 2025-06-22 16:17:05 -07:00 committed by GitHub
parent b05b8673cd
commit c9bea8e646
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 39 additions and 0 deletions

View File

@ -210,4 +210,34 @@ describe('Configuration Integration Tests', () => {
expect(config.getCheckpointingEnabled()).toBe(true);
});
});
describe('Extension Context Files', () => {
it('should have an empty array for extension context files by default', () => {
const configParams: ConfigParameters = {
cwd: '/tmp',
contentGeneratorConfig: TEST_CONTENT_GENERATOR_CONFIG,
embeddingModel: 'test-embedding-model',
sandbox: false,
targetDir: tempDir,
debugMode: false,
};
const config = new Config(configParams);
expect(config.getExtensionContextFilePaths()).toEqual([]);
});
it('should correctly store and return extension context file paths', () => {
const contextFiles = ['/path/to/file1.txt', '/path/to/file2.js'];
const configParams: ConfigParameters = {
cwd: '/tmp',
contentGeneratorConfig: TEST_CONTENT_GENERATOR_CONFIG,
embeddingModel: 'test-embedding-model',
sandbox: false,
targetDir: tempDir,
debugMode: false,
extensionContextFilePaths: contextFiles,
};
const config = new Config(configParams);
expect(config.getExtensionContextFilePaths()).toEqual(contextFiles);
});
});
});

View File

@ -244,6 +244,7 @@ export async function loadCliConfig(
fileDiscoveryService: fileService,
bugCommand: settings.bugCommand,
model: argv.model!,
extensionContextFilePaths,
});
}

View File

@ -183,6 +183,7 @@ const App = ({ config, settings, startupWarnings = [] }: AppProps) => {
process.cwd(),
config.getDebugMode(),
config.getFileService(),
config.getExtensionContextFilePaths(),
);
config.setUserMemory(memoryContent);
config.setGeminiMdFileCount(fileCount);

View File

@ -118,6 +118,7 @@ export interface ConfigParameters {
bugCommand?: BugCommandSettings;
model: string;
disableDataCollection?: boolean;
extensionContextFilePaths?: string[];
}
export class Config {
@ -155,6 +156,7 @@ export class Config {
private readonly bugCommand: BugCommandSettings | undefined;
private readonly model: string;
private readonly disableDataCollection: boolean;
private readonly extensionContextFilePaths: string[];
constructor(params: ConfigParameters) {
this.sessionId = params.sessionId;
@ -196,6 +198,7 @@ export class Config {
this.model = params.model;
this.disableDataCollection =
params.telemetry?.disableDataCollection ?? true;
this.extensionContextFilePaths = params.extensionContextFilePaths ?? [];
if (params.contextFileName) {
setGeminiMdFilename(params.contextFileName);
@ -387,6 +390,10 @@ export class Config {
return this.disableDataCollection;
}
getExtensionContextFilePaths(): string[] {
return this.extensionContextFilePaths;
}
async getGitService(): Promise<GitService> {
if (!this.gitService) {
this.gitService = new GitService(this.targetDir);