From 624eb2495541033d1f221a0d82ef97521b3aeb12 Mon Sep 17 00:00:00 2001 From: Haoyu Wang Date: Thu, 14 May 2026 11:50:09 -0400 Subject: [PATCH 1/2] fix: allow-list files in fake home directory for Gemini CLI --- evalbench/generators/models/gemini_cli.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/evalbench/generators/models/gemini_cli.py b/evalbench/generators/models/gemini_cli.py index 3b69a8a0..b59c9923 100644 --- a/evalbench/generators/models/gemini_cli.py +++ b/evalbench/generators/models/gemini_cli.py @@ -46,6 +46,29 @@ def __init__(self, querygenerator_config): os.makedirs(self.extensions_dir, exist_ok=True) os.makedirs(self.skills_dir, exist_ok=True) + # Allow-list the fake home directory to enable access to files under it. + # This is needed to ensure Gemini CLI can read files within a skill + # after resuming the session. + gemini_settings_path = os.path.join(self.gemini_home, "settings.json") + os.makedirs(os.path.dirname(gemini_settings_path), exist_ok=True) + + current_settings = {} + if os.path.exists(gemini_settings_path): + try: + with open(gemini_settings_path, "r") as f: + current_settings = json.load(f) + except json.JSONDecodeError: + pass + + context_config = current_settings.setdefault("context", {}) + include_dirs = context_config.setdefault("includeDirectories", []) + + if self.fake_home not in include_dirs: + include_dirs.append(self.fake_home) + + with open(gemini_settings_path, "w") as f: + json.dump(current_settings, f, indent=2) + self.env = querygenerator_config.get("env", {}) self.env["HOME"] = self.fake_home From 7bc288c81de06996236d463d0bbf08803c1abaf2 Mon Sep 17 00:00:00 2001 From: Haoyu Wang Date: Thu, 14 May 2026 14:45:53 -0400 Subject: [PATCH 2/2] minor fix --- evalbench/generators/models/gemini_cli.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/evalbench/generators/models/gemini_cli.py b/evalbench/generators/models/gemini_cli.py index b59c9923..b12eba35 100644 --- a/evalbench/generators/models/gemini_cli.py +++ b/evalbench/generators/models/gemini_cli.py @@ -51,18 +51,21 @@ def __init__(self, querygenerator_config): # after resuming the session. gemini_settings_path = os.path.join(self.gemini_home, "settings.json") os.makedirs(os.path.dirname(gemini_settings_path), exist_ok=True) - + current_settings = {} if os.path.exists(gemini_settings_path): try: with open(gemini_settings_path, "r") as f: current_settings = json.load(f) except json.JSONDecodeError: - pass - + logging.warning( + "Invalid JSON in Gemini settings at %s; using default settings.", + gemini_settings_path, + ) + context_config = current_settings.setdefault("context", {}) include_dirs = context_config.setdefault("includeDirectories", []) - + if self.fake_home not in include_dirs: include_dirs.append(self.fake_home)