v0.39.0
google-gemini/gemini-cliv0.39.0Apr 23, 2026by gemini-cli-robot
AI Summary
A feature-rich release focusing on sandbox reliability, memory management improvements, and UI enhancements. It introduces new commands for memory review and refactors subagent tools.
Key Highlights
- Add `/memory inbox` command for reviewing extracted skills
- Refactor subagent tool to unified `invoke_subagent` tool
- Improve sandbox cleanup and resolve Windows symlink bypasses
- Migrate chat recording to JSONL streaming
- Add CPU performance integration test harness
New Features
- /memory inbox command
- Unified invoke_subagent tool
- Use AgentStream hook
- JSONL streaming for chat recording
- Generalized evals infrastructure
Full Release Notes
## What's Changed * refactor(plan): simplify policy priorities and consolidate read-only rules by @ruomengz in https://github.com/google-gemini/gemini-cli/pull/24849 * feat(test-utils): add memory usage integration test harness by @sripasg in https://github.com/google-gemini/gemini-cli/pull/24876 * feat(memory): add /memory inbox command for reviewing extracted skills by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/24544 * chore(release): bump version to 0.39.0-nightly.20260408.e77b22e63 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/24939 * fix(core): ensure robust sandbox cleanup in all process execution paths by @ehedlund in https://github.com/google-gemini/gemini-cli/pull/24763 * chore: update ink version to 6.6.8 by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/24934 * Changelog for v0.38.0-preview.0 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/24938 * chore: ignore conductor directory by @JayadityaGit in https://github.com/google-gemini/gemini-cli/pull/22128 * Changelog for v0.37.0 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/24940 * feat(plan): require user confirmation for activate_skill in Plan Mode by @ruomengz in https://github.com/google-gemini/gemini-cli/pull/24946 * feat(test-utils): add CPU performance integration test harness by @sripasg in https://github.com/google-gemini/gemini-cli/pull/24951 * fix(cli-ui): enable Ctrl+Backspace for word deletion in Windows Terminal by @dogukanozen in https://github.com/google-gemini/gemini-cli/pull/21447 * test(sdk): add unit tests for GeminiCliSession by @AdamyaSingh7 in https://github.com/google-gemini/gemini-cli/pull/21897 * fix(core): resolve windows symlink bypass and stabilize sandbox integration tests by @ehedlund in https://github.com/google-gemini/gemini-cli/pull/24834 * fix(cli): restore file path display in edit and write tool confirmations by @jwhelangoog in https://github.com/google-gemini/gemini-cli/pull/24974 * feat(core): refine shell tool description display logic by @jwhelangoog in https://github.com/google-gemini/gemini-cli/pull/24903 * fix(core): dynamic session ID injection to resolve resume bugs by @scidomino in https://github.com/google-gemini/gemini-cli/pull/24972 * Update ink version to 6.6.9 by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/24980 * Generalize evals infra to support more types of evals, organization and queuing of named suites by @gundermanc in https://github.com/google-gemini/gemini-cli/pull/24941 * fix(cli): optimize startup with lightweight parent process by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/24667 * refactor(sandbox): use centralized sandbox paths in macOS Seatbelt implementation by @ehedlund in https://github.com/google-gemini/gemini-cli/pull/24984 * feat(cli): refine tool output formatting for compact mode by @jwhelangoog in https://github.com/google-gemini/gemini-cli/pull/24677 * fix(sdk): skip broken sendStream tests to unblock nightly by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/25000 * refactor(core): use centralized path resolution for Linux sandbox by @ehedlund in https://github.com/google-gemini/gemini-cli/pull/24985 * Support ctrl+shift+g by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/25035 * feat(core): refactor subagent tool to unified invoke_subagent tool by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/24489 * fix(core): add explicit git identity env vars to prevent sandbox checkpointing error by @mrpmohiburrahman in https://github.com/google-gemini/gemini-cli/pull/19775 * fix: respect hideContextPercentage when FooterConfigDialog is closed without changes by @chernistry in https://github.com/google-gemini/gemini-cli/pull/24773 * fix(cli): suppress unhandled AbortError logs during request cancellation by @euxaristia in https://github.com/google-gemini/gemini-cli/pull/22621 * Automated documentation audit by @g-samroberts in https://github.com/google-gemini/gemini-cli/pull/24567 * feat(cli): implement useAgentStream hook by @mbleigh in https://github.com/google-gemini/gemini-cli/pull/24292 * refactor(plan) Clean default plan toml by @ruomengz in https://github.com/google-gemini/gemini-cli/pull/25037 * refactor(core): remove legacy subagent wrapping tools by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/25053 * fix(core): honor retryDelay in RetryInfo for 503 errors by @yunaseoul in https://github.com/google-gemini/gemini-cli/pull/25057 * fix(core): remediate subagent memory leaks using AbortSignal in MessageBus by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/25048 * feat(cli): wire up useAgentStream in AppContainer by @mbleigh in https://github.com/google-gemini/gemini-cli/pull/24297 * feat(core): migrate chat recording to JSONL streaming by @spencer426 in https://github.com/google-gemini/gemini-cli/pull/23749 * fix(core): clear 5-minute timeouts in oauth flow to prevent memory leaks by @spencer426 in https://github.com/google-gemini/gemini-cli/pull/24968 * fix(sandbox): centralize async git worktree resolution and enforce read-only security by @ehedlund in https://github.com/google-gemini/gemini-cli/pull/25040 * feat(test): add high-volume shell test and refine perf harness by @sripasg in https://github.com/google-gemini/gemini-cli/pull/24983 * fix(core): silently handle EPERM when listing dir structure by @scidomino in https://github.com/google-gemini/gemini-cli/pull/25066 * Changelog for v0.37.1 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/25055 * fix: decode Uint8Array and multi-byte UTF-8 in API error messages by @kimjune01 in https://github.com/google-gemini/gemini-cli/pull/23341 * Automated documentation audit results by @g-samroberts in https://github.com/google-gemini/gemini-cli/pull/22755 * debugging(ui): add optional debugRainbow setting by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/25088 * fix: resolve lifecycle memory leaks by cleaning up listeners and root closures by @spencer426 in https://github.com/google-gemini/gemini-cli/pull/25049 * docs(cli): updates f12 description to be more precise by @JayadityaGit in https://github.com/google-gemini/gemini-cli/pull/15816 * fix(cli): mark /settings as unsafe to run concurrently by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/25061 * fix(core): remove buffer slice to prevent OOM on large output streams by @spencer426 in https://github.com/google-gemini/gemini-cli/pull/25094 * feat(core): persist subagent agentId in tool call records by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/25092 * chore(core): increase codebase investigator turn limits to 50 by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/25125 * refactor(core): consolidate execute() arguments into ExecuteOptions by @mbleigh in https://github.com/google-gemini/gemini-cli/pull/25101 * feat(core): add Strategic Re-evaluation guidance to system prompt by @aishaneeshah in https://github.com/google-gemini/gemini-cli/pull/25062 * fix(core): preserve shell execution config fields on update by @jasonmatthewsuhari in https://github.com/google-gemini/gemini-cli/pull/25113 * docs: add vi shortcuts and clarify MCP sandbox setup by @chrisjcthomas in https://github.com/google-gemini/gemini-cli/pull/21679 * fix(cli): pass session id to interactive shell executions by @jasonmatthewsuhari in https://github.com/google-gemini/gemini-cli/pull/25114 * fix(cli): resolve text sanitization data loss due to C1 control characters by @euxaristia in https://github.com/google-gemini/gemini-cli/pull/22624 * feat(core): add large memory regression test by @cynthialong0-0 in https://github.com/google-gemini/gemini-cli/pull/25059 * fix(core): resolve PTY exhaustion and orphan MCP subprocess leaks by @spencer426 in https://github.com/google-gemini/gemini-cli/pull/25079 * chore(deps): update vulnerable dependencies via npm audit fix by @scidomino in https://github.com/google-gemini/gemini-cli/pull/25140 * perf(sandbox): optimize Windows sandbox initialization via native ACL application by @ehedlund in https://github.com/google-gemini/gemini-cli/pull/25077 * chore: switch from keytar to @github/keytar by @cocosheng-g in https://github.com/google-gemini/gemini-cli/pull/25143 * fix: improve audio MIME normalization and validation in file reads by @junaiddshaukat in https://github.com/google-gemini/gemini-cli/pull/21636 * docs: Update docs-audit to include changes in PR body by @g-samroberts in https://github.com/google-gemini/gemini-cli/pull/25153 * docs: correct documentation for enforced authentication type by @cocosheng-g in https://github.com/google-gemini/gemini-cli/pull/25142 * fix(cli): exclude update_topic from confirmation queue count by @Abhijit-2592 in https://github.com/google-gemini/gemini-cli/pull/24945 * Memory fix for trace's streamWrapper. by @anthraxmilkshake in https://github.com/google-gemini/gemini-cli/pull/25089 * fix(core): fix quota footer for non-auto models and improve display by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/25121 * docs(contributing): clarify self-assignment policy for issues by @jmr in https://github.com/google-gemini/gemini-cli/pull/23087 * feat(core): add skill patching support with /memory inbox integration by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/25148 * Stop suppressing thoughts and text in model response by @gundermanc in https://github.com/google-gemini/gemini-cli/pull/25073 * fix(release): prefix git hash in nightly versions to prevent semver normalization by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/25304 * feat(cli): extract QuotaContext and resolve infinite render loop by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/24959 * refactor(core): extract and centralize sandbox path utilities by @ehedlund in https://github.com/google-gemini/gemini-cli/pull/25305 * feat(ui): added enhancements to scroll momentum by @devr0306 in https://github.com/google-gemini/gemini-cli/pull/24447 * fix(core): replace custom binary detection with isbinaryfile to correctly handle UTF-8 (U+FFFD) by @Anjaligarhwal in https://github.com/google-gemini/gemini-cli/pull/25297 * feat(agent): implement tool-controlled display protocol (Steps 2-3) by @mbleigh in https://github.com/google-gemini/gemini-cli/pull/25134 * Stop showing scrollbar unless we are in terminalBuffer mode by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/25320 * feat: support auth block in MCP servers config in agents by @TanmayVartak in https://github.com/google-gemini/gemini-cli/pull/24770 * fix(core): expose GEMINI_PLANS_DIR to hook environment by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/25296 * feat(core): implement silent fallback for Plan Mode model routing by @jerop in https://github.com/google-gemini/gemini-cli/pull/25317 * fix: correct redirect count increment in fetchJson by @KevinZhao in https://github.com/google-gemini/gemini-cli/pull/24896 * fix(core): prevent secondary crash in ModelRouterService finally block by @gundermanc in https://github.com/google-gemini/gemini-cli/pull/25333 * feat(core): introduce decoupled ContextManager and Sidecar architecture by @joshualitt in https://github.com/google-gemini/gemini-cli/pull/24752 * docs(core): update generalist agent documentation by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/25325 * chore(mcp): check MCP error code over brittle string match by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/25381 * feat(plan): update plan mode prompt to allow showing plan content by @ruomengz in https://github.com/google-gemini/gemini-cli/pull/25058 * test(core): improve sandbox integration test coverage and fix OS-specific failures by @ehedlund in https://github.com/google-gemini/gemini-cli/pull/25307 * fix(core): use debug level for keychain fallback logging by @ehedlund in https://github.com/google-gemini/gemini-cli/pull/25398 * feat(test): add a performance test in asian language by @cynthialong0-0 in https://github.com/google-gemini/gemini-cli/pull/25392 * feat(cli): enable mouse clicking for cursor positioning in AskUser multi-line answers by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/24630 * fix(core): detect kmscon terminal as supporting true color by @claygeo in https://github.com/google-gemini/gemini-cli/pull/25282 * ci: add agent session drift check workflow by @adamfweidman in https://github.com/google-gemini/gemini-cli/pull/25389 * use macos-latest-large runner where applicable. by @scidomino in https://github.com/google-gemini/gemini-cli/pull/25413 * Changelog for v0.37.2 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/25336 * fix(patch): cherry-pick a4e98c0 to release/v0.39.0-preview.0-pr-25138 to patch version v0.39.0-preview.0 and create version 0.39.0-preview.1 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/25766 * fix(patch): cherry-pick d6f88f8 to release/v0.39.0-preview.1-pr-25670 to patch version v0.39.0-preview.1 and create version 0.39.0-preview.2 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/25776 ## New Contributors * @dogukanozen made their first contribution in https://github.com/google-gemini/gemini-cli/pull/21447 * @AdamyaSingh7 made their first contribution in https://github.com/google-gemini/gemini-cli/pull/21897 * @chernistry made their first contribution in https://github.com/google-gemini/gemini-cli/pull/24773 * @kimjune01 made their first contribution in https://github.com/google-gemini/gemini-cli/pull/23341 * @anthraxmilkshake made their first contribution in https://github.com/google-gemini/gemini-cli/pull/25089 * @jmr made their first contribution in https://github.com/google-gemini/gemini-cli/pull/23087 * @TanmayVartak made their first contribution in https://github.com/google-gemini/gemini-cli/pull/24770 * @KevinZhao made their first contribution in https://github.com/google-gemini/gemini-cli/pull/24896 * @claygeo made their first contribution in https://github.com/google-gemini/gemini-cli/pull/25282 **Full Changelog**: https://github.com/google-gemini/gemini-cli/compare/v0.38.2...v0.39.0