Gemini CLI v0.64.0 stops parallel agents overwriting each other’s edits

1 hour ago

Gemini CLI v0.64.0 makes parallel sub-agents take turns on file edits, writes files atomically, stops long sessions from building huge chat logs, lets @file references take line numbers, fixes a CPU hang on piped code, makes Ctrl+C cancel a running reply, quiets approval prompts for read-only shell flags, unsticks sessions after a rewind, fixes MCP OAuth sign-in for servers like Notion's, and reports real token usage to ACP editors like Zed. https://github.com/google-gemini/gemini-cli/releases/tag/v0.64.0 https://github.com/google-gemini/gemini-cli/compare/v0.63.0...v0.64.0

Ask

Ask about this presentation

Answers are generated from this presentation.

Chapters

  1. 0:00Gemini CLI v0.64.0
  2. 0:1301: Files and sessions
  3. 0:15Writes land whole, and a corrupted state file restores itself
  4. 0:29Long sessions stop building a 400 MB chat log
  5. 0:4602: Your prompt
  6. 0:47@file references take line numbers and ranges
  7. 0:57Piping in code with scoped imports no longer pins the CPU
  8. 1:13Ctrl+C stops a running reply, even with text in the prompt
  9. 1:24Scrolling, list choices and Windows typing behave
  10. 1:3703: Shell, rewind and MCP
  11. 1:40Read-only shell flags stop triggering approval prompts
  12. 1:55Rewind no longer leaves a session stuck on a 400 error
  13. 2:07MCP servers like Notion’s finish OAuth sign-in
  14. 2:2304: Editors and headless runs
  15. 2:25Zed and other ACP clients get real token counts
  16. 2:40Headless trust, Windows extension updates and A2A settings
  17. 2:57Release notes
Show transcript

Gemini CLI v0.64.0

Gemini CLI

Gemini CLI v0.64.0 stops parallel agents overwriting each other’s edits

Edits to one file now run one at a time.

Gemini CLI running in a terminal
packages/core/src/utils/pathMutex.ts

In Gemini CLI, two sub-agents editing the same file could both start from the same copy, and one edit quietly erased the other. Edits and writes to the same file now run one at a time.

01: Files and sessions

> files and sessions2026-10-13
01
Files and sessions

Files and sessions.

Writes land whole, and a corrupted state file restores itself

> files and sessions2026-10-13
file tools write a temp file, then rename it ~/.gemini/state.json keeps a .bak copy a broken file is kept as .corrupt
packages/cli/src/utils/persistentState.ts

File writes now go through a temporary file that is renamed into place, so a crash can't leave one half written. Gemini CLI's own state file keeps a backup, and restores from it when the file is corrupted.

Long sessions stop building a 400 MB chat log

> files and sessions2026-10-13
every turn rewrote the whole history each turn appends only what changed memory holds the last 50 messages
packages/core/src/services/chatRecordingService.ts

Session recording rewrote the whole chat to disk on every turn, so a 100-turn session could reach a 400 megabyte file and more than 7 gigabytes of memory. Each turn now appends only its changes, and memory keeps the last 50 messages.

02: Your prompt

> your prompt2026-10-13
02
Your prompt

Your prompt.

@file references take line numbers and ranges

> your prompt2026-10-13
> explain @src/app.ts:10> explain @src/app.ts:10-20> explain @src/app.ts#L10-L25
packages/core/src/utils/atCommandUtils.ts

A file reference that ends in a line number or a range now resolves to that file. Before, it failed, and could set off a slow search of the whole workspace.

Piping in code with scoped imports no longer pins the CPU

> your prompt2026-10-13
$ cat app.ts | gemini -p "review"import { useThing } from "@scope/pkg";100% CPU, Ctrl+C ignored
packages/cli/src/ui/hooks/atCommandProcessor.ts

Piping source code into Gemini CLI's headless mode could lock it at 100 percent CPU. An import from a scoped npm package set off a runaway file search, and Control C couldn't stop it. That's fixed.

Ctrl+C stops a running reply, even with text in the prompt

> your prompt2026-10-13
Ctrl+C cleared the typed text Ctrl+C cancels the request
packages/cli/src/ui/components/InputPrompt.tsx

With text typed in the prompt while Gemini was responding, Control C only cleared that text and the reply kept going. It now reaches the cancel handler and stops the running request.

Scrolling, list choices and Windows typing behave

> your prompt2026-10-13
scroll position holds while a reply streams Enter and Space confirm list options the Windows IME window sits at the prompt
packages/cli/src/ui/components/MainContent.tsx

Scrolled-up history keeps its place while a reply streams. Enter and Space confirm list choices in PyCharm on Windows. And Windows input for Chinese, Japanese and Korean now opens at the prompt.

03: Shell, rewind and MCP

> shell, rewind and mcp2026-10-13
03
Shell, rewind and MCP

Shell commands, rewind and MCP.

Read-only shell flags stop triggering approval prompts

> shell, rewind and mcp2026-10-13
$ grep -rn TODO src$ git -C repo log --all --oneline$ for repo in a b; do git -C "$repo" status; done
packages/core/src/utils/untrustedContextTracker.ts

Gemini CLI stops pausing for approval on harmless read-only flags in commands like grep and git log. A loop or chained command now runs when every part of it matches one of your allow rules.

Rewind no longer leaves a session stuck on a 400 error

> shell, rewind and mcp2026-10-13
history could end on the model’s turn Gemini API answered HTTP 400 every request ends on your turn
packages/core/src/utils/historyHardening.ts

A rewind or a cancelled stream could leave the chat ending on the model's turn, which the Gemini API rejects with a 400 error, freezing the session. Every request now ends on your turn.

MCP servers like Notion’s finish OAuth sign-in

> shell, rewind and mcp2026-10-13
issuer required in every redirect required only when the server declares it
packages/core/src/mcp/oauth-utils.ts

Sign-in failed for MCP servers like Notion's that leave the issuer out of their OAuth redirect. Gemini CLI now requires it only when the server says it sends one, and still checks it whenever it arrives.

04: Editors and headless runs

> editors and headless runs2026-10-13
04
Editors and headless runs

Editors and headless runs.

Zed and other ACP clients get real token counts

> editors and headless runs2026-10-13
cached-session cost estimate, beforeabout 3×
with cached tokens reported1×
packages/cli/src/acp/acpSession.ts

In ACP mode, editors like Zed and OpenHands got no token counts in the standard fields, and cached tokens were dropped. Cost estimates on cached sessions ran about three times too high. Both are now reported.

Headless trust, Windows extension updates and A2A settings

> editors and headless runs2026-10-13
headless mode reports untrusted folders as untrusted Windows extension updates retry locked folders the A2A server reads nested V2 settings
packages/cli/src/ui/hooks/useFolderTrust.ts

Headless mode now reports an untrusted folder as untrusted. Extension updates on Windows retry while a folder is still locked. And the A2A server reads the nested settings file, and old flat ones still work.

Release notes

> release notes2026-10-13
Gemini CLI

Every change is listed in the v0.64.0 release notes on GitHub

github.com/google-gemini/gemini-cli/releases

Every change, with its pull request, is in the Gemini CLI release notes on GitHub.