mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-04-22 02:54:31 -07:00
fix(cli): prevent OOM crash by limiting file search traversal and adding timeout (#16696)
This commit is contained in:
@@ -310,6 +310,8 @@ export interface ConfigParameters {
|
||||
respectGeminiIgnore?: boolean;
|
||||
enableRecursiveFileSearch?: boolean;
|
||||
disableFuzzySearch?: boolean;
|
||||
maxFileCount?: number;
|
||||
searchTimeout?: number;
|
||||
};
|
||||
checkpointing?: boolean;
|
||||
proxy?: string;
|
||||
@@ -441,6 +443,8 @@ export class Config {
|
||||
respectGeminiIgnore: boolean;
|
||||
enableRecursiveFileSearch: boolean;
|
||||
disableFuzzySearch: boolean;
|
||||
maxFileCount: number;
|
||||
searchTimeout: number;
|
||||
};
|
||||
private fileDiscoveryService: FileDiscoveryService | null = null;
|
||||
private gitService: GitService | undefined = undefined;
|
||||
@@ -593,6 +597,14 @@ export class Config {
|
||||
enableRecursiveFileSearch:
|
||||
params.fileFiltering?.enableRecursiveFileSearch ?? true,
|
||||
disableFuzzySearch: params.fileFiltering?.disableFuzzySearch ?? false,
|
||||
maxFileCount:
|
||||
params.fileFiltering?.maxFileCount ??
|
||||
DEFAULT_FILE_FILTERING_OPTIONS.maxFileCount ??
|
||||
20000,
|
||||
searchTimeout:
|
||||
params.fileFiltering?.searchTimeout ??
|
||||
DEFAULT_FILE_FILTERING_OPTIONS.searchTimeout ??
|
||||
5000,
|
||||
};
|
||||
this.checkpointing = params.checkpointing ?? false;
|
||||
this.proxy = params.proxy;
|
||||
@@ -1385,6 +1397,8 @@ export class Config {
|
||||
return {
|
||||
respectGitIgnore: this.fileFiltering.respectGitIgnore,
|
||||
respectGeminiIgnore: this.fileFiltering.respectGeminiIgnore,
|
||||
maxFileCount: this.fileFiltering.maxFileCount,
|
||||
searchTimeout: this.fileFiltering.searchTimeout,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -7,16 +7,22 @@
|
||||
export interface FileFilteringOptions {
|
||||
respectGitIgnore: boolean;
|
||||
respectGeminiIgnore: boolean;
|
||||
maxFileCount?: number;
|
||||
searchTimeout?: number;
|
||||
}
|
||||
|
||||
// For memory files
|
||||
export const DEFAULT_MEMORY_FILE_FILTERING_OPTIONS: FileFilteringOptions = {
|
||||
respectGitIgnore: false,
|
||||
respectGeminiIgnore: true,
|
||||
maxFileCount: 20000,
|
||||
searchTimeout: 5000,
|
||||
};
|
||||
|
||||
// For all other files
|
||||
export const DEFAULT_FILE_FILTERING_OPTIONS: FileFilteringOptions = {
|
||||
respectGitIgnore: true,
|
||||
respectGeminiIgnore: true,
|
||||
maxFileCount: 20000,
|
||||
searchTimeout: 5000,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user