fix(test): Resolve visual orchestration test and prepare hook env injection

This commit is contained in:
2026-03-06 11:27:16 -05:00
parent 3ec8ef8e05
commit 5066e98240
4 changed files with 16 additions and 7 deletions

View File

@@ -352,9 +352,9 @@ class AppController:
'btn_approve_spawn': lambda: self._handle_mma_respond(approved=True),
}
self._predefined_callbacks: dict[str, Callable[..., Any]] = {
'_test_callback_func_write_to_file': self._test_callback_func_write_to_file
'_test_callback_func_write_to_file': self._test_callback_func_write_to_file,
'_set_env_var': lambda k, v: os.environ.update({k: v})
}
def _update_gcli_adapter(self, path: str) -> None:
sys.stderr.write(f"[DEBUG] _update_gcli_adapter called with: {path}\n")
sys.stderr.flush()

View File

@@ -79,7 +79,14 @@ class GeminiCliAdapter:
# Use communicate to avoid pipe deadlocks with large input/output.
# This blocks until the process exits, so we lose real-time streaming,
# but it's much more robust. We then simulate streaming by processing the output.
stdout_final, stderr_final = process.communicate(input=prompt_text)
try:
stdout_final, stderr_final = process.communicate(input=prompt_text, timeout=60.0)
except subprocess.TimeoutExpired:
process.kill()
stdout_final, stderr_final = process.communicate()
stderr_final += "\n\n[ERROR] Gemini CLI subprocess timed out after 60 seconds."
# Mock a JSON error result to bubble up
stdout_final += '\n{"type": "result", "status": "error", "error": "subprocess timeout"}\n'
for line in stdout_final.splitlines():
line = line.strip()