Files
gemini-cli/docs/changelogs/latest.md
2026-05-22 22:26:32 +00:00

13 KiB

Latest stable release: v0.43.0

Released: May 22, 2026

For most users, our latest stable release is the recommended release. Install the latest stable version with:

npm install -g @google/gemini-cli

Highlights

  • Surgical Code Edits: Gemini models are now steered to prefer the edit tool for surgical modifications, leading to faster and more precise code updates.
  • Session Portability: Introduced features to export active sessions to files and import them later via a CLI flag, allowing for easier session sharing and resumption.
  • Adaptive Token Estimation: A new adaptive token calculator provides more accurate content size measurements, optimizing context window usage and reducing API overhead.
  • Improved UI Rendering: Core tools now utilize native ToolDisplay properties, fixing various UI rendering issues and improving the experience in ACP-compliant IDEs.
  • Enhanced Agent Architecture: Introduced LocalSubagentProtocol and RemoteSubagentProtocol behind a unified AgentProtocol, laying the groundwork for more complex multi-agent interactions.

What's Changed

  • feat(core): steer model to use edit tool for surgical edits, fix a typo by @aishaneeshah in #26480
  • docs: clarify Auto Memory proposes memory updates and skills by @SandyTao520 in #26527
  • fix(core): reject numeric project IDs in GOOGLE_CLOUD_PROJECT (#24695) by @Abhijit-2592 in #26532
  • fix(core): remove unsafe type assertion suppressions in error utils by @himanshu748 in #19881
  • fix(core): allow redirection in YOLO and AUTO_EDIT modes without sandboxing by @galz10 in #26542
  • ci(release): build and attach unsigned macOS binaries to releases by @ruomengz in #26462
  • fix(core): Fix chat corruption bug in context manager. by @joshualitt in #26534
  • fix(cli): provide JSON output for AgentExecutionStopped in non-interactive mode by @cynthialong0-0 in #26504
  • feat(evals): add shell command safety evals by @akh64bit in #26528
  • fix(core): handle invalid custom plans directory gracefully by @cynthialong0-0 in #26560
  • fix(acp): move tool explanation from thought stream to tool call content by @sripasg in #26554
  • fix(a2a-server): Resolve race condition in tool completion waiting by @kschaab in #26568
  • fix(cli): randomize sandbox container names by @Kkartik14 in #26014
  • fix(core): Fix hysteresis in async context management pipelines. by @joshualitt in #26452
  • Tighten private Auto Memory patch allowlist by @SandyTao520 in #26535
  • fix(cli): hide read-only settings scopes by @cvan20191 in #26249
  • fix(ci): preserve executable bit for mac binaries by @ruomengz in #26600
  • fix(cli): improve mcp list UX in untrusted folders by @Adib234 in #26457
  • fix(core): prevent silent hang during OAuth auth on headless Linux by @RhysSullivan in #26571
  • Changelog for v0.42.0-preview.0 by @gemini-cli-robot in #26537
  • ci: fix Argument list too long in triage workflows by @cocosheng-g in #26603
  • refactor(cli): migrate core tools to native ToolDisplay property and fix UI rendering by @mbleigh in #25186
  • don't wrap args unnecessarily by @scidomino in #26599
  • fix(core): preserve system PATH in Git environment to fix ENOENT (#25034) by @cocosheng-g in #26587
  • fix(routing): fix resolveClassifierModel argument mismatch in ApprovalModeStrategy by @danielweis in #26658
  • docs: add vi mode shortcuts and clarify MCP/custom sandbox setup by @chrisjcthomas in #23853
  • fix(ux): fixed issue with transcribed text not showing after releasing space by @devr0306 in #26609
  • ci: fix json parsing in scheduled triage workflow by @cocosheng-g in #26656
  • fix(cli): hide /memory add subcommand when memoryV2 is enabled by @SandyTao520 in #26605
  • fix: prevent false command conflicts when launching from home directory by @Br1an67 in #23069
  • fix(core): cache model routing decision in LocalAgentExecutor by @akh64bit in #26548
  • Changelog for v0.42.0-preview.2 by @gemini-cli-robot in #26597
  • skip broken test by @scidomino in #26705
  • feat: export session to file and import via flag by @cocosheng-g in #26514
  • Feat: Add Machine Hostname to CLI interface by @M-DEV-1 in #25637
  • docs(extensions): refactor releasing guide and add update mechanisms by @ruomengz in #26595
  • fix(ci): fix maintainer identification in lifecycle manager by @gundermanc in #26706
  • fix(ui): added quotes around session id in resume tip by @devr0306 in #26669
  • Changelog for v0.41.0 by @gemini-cli-robot in #26670
  • refactor(core): agent session protocol changes by @adamfweidman in #26661
  • fix(context): implement loose boundary policy for gc backstop. by @joshualitt in #26594
  • fix(core): throw explicit error on dropped tool responses by @aishaneeshah in #26668
  • fix: resolve "function response turn must come immediately after function call" error by @danielweis in #26691
  • fix(core): resolve parallel tool call streaming ID collision by @aishaneeshah in #26646
  • feat(core): add LocalSubagentProtocol behind AgentProtocol by @adamfweidman in #25302
  • fix(cli): remove noisy theme registration logs from terminal by @JayadityaGit in #25858
  • ci: implement codebase-aware effort level triage by @cocosheng-g in #26666
  • feat(acp/core): prefix tool call IDs with tool names to support tool rendering in ACP compliant IDEs. by @sripasg in #26676
  • fix(mcp): treat GET 404 as 405 in StreamableHTTPClientTransport by @krishdef7 in #24847
  • feat(core): add RemoteSubagentProtocol behind AgentProtocol by @adamfweidman in #25303
  • feat(context): Improvements to the snapshotter. by @joshualitt in #26655
  • fix(context): Change snapshotter model config. by @joshualitt in #26745
  • fix(cli): allow installing extensions from ssh repo by @danielmundi in #26274
  • fix(cli): prevent duplicate SessionStart systemMessage render by @dimssu in #25827
  • fix(cli/acp): prevent infinite thought loop in ACP mode by disablig nextSpeakerCheck by @sripasg in #26874
  • fix(cli): use static tool name in confirmation prompt to avoid parsing errors by @cocosheng-g in #26866
  • fix(routing): Refactor tool turn handling for the conversation history in NumericalClassifierStrategy to prevent 400 Bad Request by @danielweis in #26761
  • fix(core): handle malformed projects.json in ProjectRegistry by @cocosheng-g in #26885
  • fix(ui): added a gutter width to the input prompt width calculation by @devr0306 in #26882
  • fix: prevent EISDIR crash when customIgnoreFilePaths contains directories (#19868) by @suhaan-24 in #19898
  • revert 6b9b778d82 by @danielweis in #26893
  • Fix/vscode run current file ts by @Neil-N4 in #22894
  • Allow Enter to select session while in search mode in /resume by @f-pieri in #21523
  • fix(core): ignore .pak and .rpa game archive formats by default by @Eswar809 in #26884
  • fix(cli): enable adk non-interactive session by @adamfweidman in #26895
  • fix(cli): restore resume for legacy sessions by @KurodaKayn in #26577
  • fix: respect explicit model selection after Flash quota exhaustion (#26759) by @cocosheng-g in #26872
  • feat(context): Introduce adaptive token calculator to more accurately calculate content sizes. by @joshualitt in #26888
  • chore: update checkout action configuration in workflows by @galz10 in #26897
  • fix (telemetry): inject quota_project_id to prevent fallback to default oauth client by @TNTCompany in #26698
  • Exclude extension context from skill extraction agent by @SandyTao520 in #26879
  • Enable NumericalRouter when using dynamic model configs by @kevinjwang1 in #26929
  • ci: actively triage missing priority labels and intelligently clean up conflicting labels by @cocosheng-g in #26865
  • refactor(core): introduce SubagentState enum for progress by @adamfweidman in #26934
  • fix(ci): replace brittle --no-tag with explicit staging-tmp tag by @scidomino in #26940
  • Incremental refactor repo agent towards skills-based composition by @gundermanc in #26717
  • fix(ui): fixed line wrap padding for selection lists by @devr0306 in #26944
  • fix(core): update read_file schema for v1 compatibility (#22183) by @cocosheng-g in #26922
  • fix(ci): configure git remote with token for authentication by @scidomino in #26949
  • fix(patch): cherry-pick 85566a7 to release/v0.43.0-preview.0-pr-27073 [CONFLICTS] by @gemini-cli-robot in #27256

Full Changelog: https://github.com/google-gemini/gemini-cli/compare/v0.42.0...v0.43.0