Gemini CLI v0.64.0: atomic file writes, state recovery, reliable Ctrl+C#
Published by Alex Sorokoletov
Part of the Gemini CLI Version Tracker series. | Gemini CLI on GitHub | Releases
Gemini CLI v0.64.0 follows v0.63.0 with a reliability release that adds no new models or environment variables. File tool operations are now serialized and writes are atomic, session state is persisted atomically and recovered from a backup when it is found corrupted, and Ctrl+C reaches the cancellation handler during an active operation.[1]
Durable file writes and state#
The file tool is the center of this release. v0.64.0 serializes file tool operations and makes writes atomic, so an interrupted or overlapping write no longer leaves a file half-written.[2] Session state gets the same treatment: it is persisted atomically, and when the state file is found corrupted the CLI recovers from a backup copy rather than starting clean.[3] The chat recording service moves to append-only delta patching and bounds the window of history it keeps, instead of rewriting the full record each turn.[4]
Cancellation and input handling#
A set of fixes targets the moment you interrupt or type into the prompt. A Ctrl+C emergency abort now reaches the cancellation handler during an active operation, so a long-running turn can be stopped.[5] Typing @ inside a code span no longer causes a CPU hang or swallows quotes, and @file:line references resolve without the ghost-text wrap hang that could freeze the input.[6] Enter and Spacebar now reliably confirm a selection in a list, and the view preserves its scroll position while partitioning the pending height budget.[7]
Platform and protocol fixes#
| Area | What changed |
|---|---|
| Headless folder trust | The resolved folder-trust state is propagated in headless mode, so a run without an interactive prompt uses the trust decision instead of re-resolving it.[8] |
| Windows terminal | Windows ConPTY forwards the IME cursor position, which affects composed (non-Latin) input in the Windows terminal.[9] |
| Windows extensions | Directory removal is retried on Windows file-locking errors during an extension update.[10] |
| ACP usage | In ACP mode the CLI bridges PromptResponse.usage and emits usage_update notifications, so a client driving the CLI receives token-usage updates.[11] |
| ACP sessions | An ACP session is resolved by exact id, and listeners are cleaned up when a session fails.[12] |
| a2a-server | The a2a-server migrates its settings from the V1 to the V2 layout.[13] |
What this tells us#
v0.64.0 carries no new models and no new environment variables. Every shipped entry is a fix or a migration, and the weight sits on durability: atomic file writes, atomic state persistence with backup recovery, and append-only chat recording. Taken with v0.63.0's non-interactive plan execution and headless auth fixes, the recent releases keep hardening the paths that matter when the CLI runs unattended or embedded in another tool rather than in front of a person.
The protocol fixes point the same way. The ACP changes give an external client that drives Gemini CLI real token-usage updates and exact session resolution, and the folder-trust fix carries a trust decision into headless runs. This is the unglamorous reliability work that editor integrations and CI jobs depend on, the same ground Claude Code and Codex CLI compete on, and Gemini CLI spent this weekly cut entirely there. The two Windows fixes narrow the gap between the macOS or Linux experience and the Windows one.
The only net-new configuration this cycle is a pair of experimental settings keys, experimental.skills and experimental.extensionManagement, that the release notes do not describe. No behavior is documented for them in v0.64.0, so they read as groundwork rather than a shipped feature.
Sources#
- [1] Gemini CLI v0.64.0 release notes (v0.63.0 to v0.64.0)
- [2] PR #29499: serialize file tool operations and make writes atomic (#29078)
- [3] PR #29558: persist state atomically and recover from backup on corruption
- [4] PR #29568: append-only delta patching and bounded history windowing in ChatRecordingService
- [5] PR #29586: ensure Ctrl+C emergency abort reaches cancellation handler during active operations
- [6] PR #29557: prevent CPU hang and quote swallowing on @ within code (#29434), PR #29581: resolve @file:line references and prevent ghost text wrap hang
- [7] PR #29502: ensure Enter and Spacebar reliably confirm selection list options, PR #29520: preserve scroll position and partition pending height budget
- [8] PR #29528: propagate resolved folder trust state in headless mode (#29031)
- [9] PR #29560: ensure Windows ConPTY forwards IME cursor position
- [10] PR #29540: retry directory removal on Windows locking errors during extension updates
- [11] PR #29549: bridge PromptResponse.usage and emit usage_update notifications (#29389)
- [12] PR #29580: resolve session by exact id and handle listener cleanup on session failure
- [13] PR #29450: implement V1 to V2 settings migration logic (a2a-server)
This analysis is based on publicly available open-source code and release metadata, conducted for educational and research purposes. All trademarks and software referenced belong to their respective owners.
Previous Gemini CLI analysis: v0.63.0 (October 6, 2026)
All 6 Gemini CLI analyses: Gemini CLI Version Tracker · Official Gemini CLI changelog