$ the-wire · showcase
Gemini CLI fixes dropped long-thinking requests and leaked PTY handles
By RepoJournal · Filed · About Agentic Coding · Composed from the cited sources · methodology
Gemini CLI shipped the day's operator-relevant fixes: the 60-second header timeout is now overridable on every auth mode, a macOS file descriptor leak that exhausted kern.tty.ptmx_max is closed, and mid-stream retries no longer execute abandoned tool calls.
fix(core,cli): allow overriding 60s API headers timeout across all auth modes (`model.requestTimeoutMs` / `GEMINI_API_HEADERS_TIMEOUT_MS`) google-gemini/gemini-cli
Long-thinking requests (thinkingLevel: HIGH on large contexts) that took more than 60 seconds to return initial headers used to be dropped with UND_ERR_HEADERS_TIMEOUT and replayed from scratch; updateGlobalFetchTimeouts was reachable only through the DEFAULT_REQUEST_TIMEOUT experiment under LOGIN_WITH_GOOGLE OAuth, so Vertex AI and API key sessions could not override the limit. Both model.requ...
fix(core): close orphan /dev/ptmx master FD leaked on macOS PTY spawn google-gemini/gemini-cli
On macOS with @lydell/node-pty 1.1.0, a /dev/ptmx master descriptor survived every completed shell command, so long sessions could exhaust kern.tty.ptmx_max. The orphan descriptor is now closed on spawn.
fix(acp): handle mid-stream retries to prevent text concatenation google-gemini/gemini-cli
On a StreamEventType.RETRY in ACP mode, partial text and tool calls from the abandoned attempt were concatenated with the retry and executed; Turn now resets debugResponses, cachedResponseText and the pending tool-call list when the retry arrives.
fix(core): prevent multi-hour quota retries and notify ACP client on retry attempts google-gemini/gemini-cli
Quota exhaustion with a multi-hour reset window used to hang --experimental-acp sessions indefinitely; retry.ts now classifies terminal quota responses (QUOTA_EXHAUSTED, "quota will reset after") as terminal and surfaces retry attempts to the ACP client instead of leaving them invisible.
fix(automations): carry the script bundle through export and import OpenHands/OpenHands
Exporting a script automation wrote "prompt": null and nothing about the bundle, so the exported file failed to import; the bundle now travels with the export. Worth knowing if you move automations between instances.
Action items
- → Upgrade gemini-cli to a build containing these fixes if you run --experimental-acp or macOS shell commands in long se... google-gemini/gemini-cli [plan]