summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBilly Biggs <[email protected]>2025-06-22 16:17:05 -0700
committerGitHub <[email protected]>2025-06-22 16:17:05 -0700
commitc9bea8e6465e1a67879cde649c4125ea6b9007f5 (patch)
treee2d9015282b6d6af15ce1bb3286467ecc2abc44a
parentb05b8673cd96b70d18cffb91cd347d176905dee6 (diff)
Plumb extension context filenames through for /memory refresh (#1312)
-rw-r--r--packages/cli/src/config/config.integration.test.ts30
-rw-r--r--packages/cli/src/config/config.ts1
-rw-r--r--packages/cli/src/ui/App.tsx1
-rw-r--r--packages/core/src/config/config.ts7
4 files changed, 39 insertions, 0 deletions
diff --git a/packages/cli/src/config/config.integration.test.ts b/packages/cli/src/config/config.integration.test.ts
index 868538ab..6d8a6c7d 100644
--- a/packages/cli/src/config/config.integration.test.ts
+++ b/packages/cli/src/config/config.integration.test.ts
@@ -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);
+ });
+ });
});
diff --git a/packages/cli/src/config/config.ts b/packages/cli/src/config/config.ts
index d8502bdd..30614082 100644
--- a/packages/cli/src/config/config.ts
+++ b/packages/cli/src/config/config.ts
@@ -244,6 +244,7 @@ export async function loadCliConfig(
fileDiscoveryService: fileService,
bugCommand: settings.bugCommand,
model: argv.model!,
+ extensionContextFilePaths,
});
}
diff --git a/packages/cli/src/ui/App.tsx b/packages/cli/src/ui/App.tsx
index 6caa4026..5b116869 100644
--- a/packages/cli/src/ui/App.tsx
+++ b/packages/cli/src/ui/App.tsx
@@ -183,6 +183,7 @@ const App = ({ config, settings, startupWarnings = [] }: AppProps) => {
process.cwd(),
config.getDebugMode(),
config.getFileService(),
+ config.getExtensionContextFilePaths(),
);
config.setUserMemory(memoryContent);
config.setGeminiMdFileCount(fileCount);
diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts
index f6128e11..a9696206 100644
--- a/packages/core/src/config/config.ts
+++ b/packages/core/src/config/config.ts
@@ -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);