mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-22 12:01:39 -07:00
Check folder trust before allowing add directory (#12652)
This commit is contained in:
@@ -430,7 +430,6 @@ describe('Server Config (config.ts)', () => {
|
||||
});
|
||||
|
||||
it('should initialize WorkspaceContext with includeDirectories', () => {
|
||||
const resolved = path.resolve(baseParams.targetDir);
|
||||
const includeDirectories = ['dir1', 'dir2'];
|
||||
const paramsWithIncludeDirs: ConfigParameters = {
|
||||
...baseParams,
|
||||
@@ -439,11 +438,13 @@ describe('Server Config (config.ts)', () => {
|
||||
const config = new Config(paramsWithIncludeDirs);
|
||||
const workspaceContext = config.getWorkspaceContext();
|
||||
const directories = workspaceContext.getDirectories();
|
||||
// Should include the target directory plus the included directories
|
||||
expect(directories).toHaveLength(3);
|
||||
expect(directories).toContain(resolved);
|
||||
expect(directories).toContain(path.join(resolved, 'dir1'));
|
||||
expect(directories).toContain(path.join(resolved, 'dir2'));
|
||||
|
||||
// Should include only the target directory initially
|
||||
expect(directories).toHaveLength(1);
|
||||
expect(directories).toContain(path.resolve(baseParams.targetDir));
|
||||
|
||||
// The other directories should be in the pending list
|
||||
expect(config.getPendingIncludeDirectories()).toEqual(includeDirectories);
|
||||
});
|
||||
|
||||
it('Config constructor should set telemetry to true when provided as true', () => {
|
||||
|
||||
@@ -411,6 +411,7 @@ export class Config {
|
||||
readonly fakeResponses?: string;
|
||||
readonly recordResponses?: string;
|
||||
private readonly disableYoloMode: boolean;
|
||||
private pendingIncludeDirectories: string[];
|
||||
private readonly enableHooks: boolean;
|
||||
private readonly hooks:
|
||||
| { [K in HookEventName]?: HookDefinition[] }
|
||||
@@ -425,10 +426,9 @@ export class Config {
|
||||
this.fileSystemService = new StandardFileSystemService();
|
||||
this.sandbox = params.sandbox;
|
||||
this.targetDir = path.resolve(params.targetDir);
|
||||
this.workspaceContext = new WorkspaceContext(
|
||||
this.targetDir,
|
||||
params.includeDirectories ?? [],
|
||||
);
|
||||
this.folderTrust = params.folderTrust ?? false;
|
||||
this.workspaceContext = new WorkspaceContext(this.targetDir, []);
|
||||
this.pendingIncludeDirectories = params.includeDirectories ?? [];
|
||||
this.debugMode = params.debugMode;
|
||||
this.question = params.question;
|
||||
|
||||
@@ -927,6 +927,14 @@ export class Config {
|
||||
return this.disableYoloMode || !this.isTrustedFolder();
|
||||
}
|
||||
|
||||
getPendingIncludeDirectories(): string[] {
|
||||
return this.pendingIncludeDirectories;
|
||||
}
|
||||
|
||||
clearPendingIncludeDirectories(): void {
|
||||
this.pendingIncludeDirectories = [];
|
||||
}
|
||||
|
||||
getShowMemoryUsage(): boolean {
|
||||
return this.showMemoryUsage;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user