diff --git a/docs/changelogs/preview.md b/docs/changelogs/preview.md index 7be2a5ff6f..57ef9e7e25 100644 --- a/docs/changelogs/preview.md +++ b/docs/changelogs/preview.md @@ -1,6 +1,6 @@ -# Preview release: v0.41.0-preview.0 +# Preview release: v0.42.0-preview.0 -Released: April 28, 2026 +Released: May 05, 2026 Our preview release includes the latest, new, and experimental features. This release may not be as stable as our [latest weekly release](latest.md). @@ -13,109 +13,233 @@ npm install -g @google/gemini-cli@preview ## Highlights -- **Real-Time Voice Mode:** Implemented a new real-time voice mode supporting - both cloud and local backends for a more interactive experience. -- **Enhanced Security & Trust:** Enforced workspace trust in headless mode and - secured `.env` file loading to improve system integrity. -- **Expanded Model Support:** Added experimental support for Gemma 4 models in - both core and CLI packages. -- **Improved Core Infrastructure:** Wired up new `ContextManager` and - `AgentChatHistory` for better state management, and optimized boot performance - by fetching experiments and quota asynchronously. -- **New Developer Tools & UX:** Added support for output redirection for CLI - commands, manual session UUIDs via command-line arguments, and persistent - auto-memory scratchpad for skill extraction. +- **Auto Memory Enhancements:** Introduced an Auto Memory inbox flow with a + canonical-patch contract for better memory management. +- **Improved Voice Mode:** Added a wave animation, microphone icon updates, and + privacy/compliance UX warnings for the Gemini Live backend. +- **New CLI Commands & Flags:** Added a `--delete` flag to the `/exit` command + for session deletion, a `list` subcommand to `/commands`, and a `/bug-memory` + command for heap snapshots. +- **Expanded Model Support:** Gemma 4 models are now enabled by default via the + Gemini API. +- **Enhanced Core Resilience:** Improved API resilience with reduced timeouts, + automatic retries for stream errors, and better handling of invalid stream + events. ## What's Changed -- chore(release): bump version to 0.41.0-nightly.20260423.gaa05b4583 by - @gemini-cli-robot in - [#25847](https://github.com/google-gemini/gemini-cli/pull/25847) -- fix(core): only show `list` suggestion if the partial input is empty by - @cynthialong0-0 in - [#25821](https://github.com/google-gemini/gemini-cli/pull/25821) -- feat(cli): secure .env loading and enforce workspace trust in headless mode by - @ehedlund in [#25814](https://github.com/google-gemini/gemini-cli/pull/25814) -- fix: fatal hard-crash on loop detection via unhandled AbortError by @hsm207 in - [#20108](https://github.com/google-gemini/gemini-cli/pull/20108) -- update package-lock.json by @ehedlund in - [#25876](https://github.com/google-gemini/gemini-cli/pull/25876) -- feat(core): enhance shell command validation and add core tools allowlist by - @galz10 in [#25720](https://github.com/google-gemini/gemini-cli/pull/25720) -- fix(ui): corrected background color check in user message components by - @devr0306 in [#25880](https://github.com/google-gemini/gemini-cli/pull/25880) -- perf(core): fix slow boot by fetching experiments and quota asynchronously by - @spencer426 in - [#25758](https://github.com/google-gemini/gemini-cli/pull/25758) -- feat(core,cli): add support for Gemma 4 models (experimental) by @Abhijit-2592 - in [#25604](https://github.com/google-gemini/gemini-cli/pull/25604) -- update FatalUntrustedWorkspaceError message to include doc link by @ehedlund - in [#25874](https://github.com/google-gemini/gemini-cli/pull/25874) -- docs: add Gemini CLI course link to README by @JayadityaGit in - [#25925](https://github.com/google-gemini/gemini-cli/pull/25925) -- feat(repo): add gemini-cli-bot metrics and workflows by @gundermanc in - [#25888](https://github.com/google-gemini/gemini-cli/pull/25888) -- fix(cli): allow output redirection for cli commands by @spencer426 in - [#25894](https://github.com/google-gemini/gemini-cli/pull/25894) -- fix(core): fail closed in YOLO mode when shell parsing fails for restricted - rules by @ehedlund in - [#25935](https://github.com/google-gemini/gemini-cli/pull/25935) -- fix(cli-ui): revert backspace handling to fix Windows regression by @scidomino - in [#25941](https://github.com/google-gemini/gemini-cli/pull/25941) -- feat(voice): implement real-time voice mode with cloud and local backends by - @Abhijit-2592 in - [#24174](https://github.com/google-gemini/gemini-cli/pull/24174) -- Changelog for v0.39.0 by @gemini-cli-robot in - [#25848](https://github.com/google-gemini/gemini-cli/pull/25848) -- feat(memory): persist auto-memory scratchpad for skill extraction by - @SandyTao520 in - [#25873](https://github.com/google-gemini/gemini-cli/pull/25873) -- fix(cli): add missing response key to custom theme text schema by @gaurav0107 - in [#25822](https://github.com/google-gemini/gemini-cli/pull/25822) -- fix(cli): provide manual update command when automatic update fails by - @cocosheng-g in - [#26052](https://github.com/google-gemini/gemini-cli/pull/26052) -- test(cli): add unit tests for restore ACP command (#23402) by @cocosheng-g in - [#26053](https://github.com/google-gemini/gemini-cli/pull/26053) -- fix(ui): better error messages for ECONNRESET and ETIMEDOUT by @devr0306 in - [#26059](https://github.com/google-gemini/gemini-cli/pull/26059) -- feat(core): wire up the new ContextManager and AgentChatHistory by @joshualitt - in [#25409](https://github.com/google-gemini/gemini-cli/pull/25409) -- fix(cli): ensure sandbox proxy cleanup and remove handler leaks by @ehedlund - in [#26065](https://github.com/google-gemini/gemini-cli/pull/26065) -- fix(cli): correct alternate buffer warning logic for JetBrains by @Adib234 in - [#26067](https://github.com/google-gemini/gemini-cli/pull/26067) -- fix(cli): make MCP ping optional in list command and use configured timeout by - @cocosheng-g in - [#26068](https://github.com/google-gemini/gemini-cli/pull/26068) -- fix(core): better error message for failed cloudshell-gca auth by @devr0306 in - [#26079](https://github.com/google-gemini/gemini-cli/pull/26079) -- feat(cli): provide manual session UUID via command line arg by @cocosheng-g in - [#26060](https://github.com/google-gemini/gemini-cli/pull/26060) -- Changelog for v0.40.0-preview.2 by @gemini-cli-robot in - [#25846](https://github.com/google-gemini/gemini-cli/pull/25846) -- (docs) update sandboxing documentation by @g-samroberts in - [#25930](https://github.com/google-gemini/gemini-cli/pull/25930) -- fix(core): enforce parallel task tracker updates by @anj-s in - [#24477](https://github.com/google-gemini/gemini-cli/pull/24477) -- Update policy so transient errors are not marked terminal by @DavidAPierce in - [#26066](https://github.com/google-gemini/gemini-cli/pull/26066) -- Implement bot that performs time-series metric analysis and suggests repo - management improvements by @gundermanc in - [#25945](https://github.com/google-gemini/gemini-cli/pull/25945) -- fix(core): handle non-string model flags in resolution by @Adib234 in - [#26069](https://github.com/google-gemini/gemini-cli/pull/26069) -- fix(ux): added error message for ENOTDIR by @devr0306 in - [#26128](https://github.com/google-gemini/gemini-cli/pull/26128) -- Changelog for v0.40.0-preview.3 by @gemini-cli-robot in - [#25904](https://github.com/google-gemini/gemini-cli/pull/25904) -- fix(cli): prevent ACP stdout pollution from SessionEnd hooks by @cocosheng-g - in [#26125](https://github.com/google-gemini/gemini-cli/pull/26125) -- feat(cli): support boolean and number casting for env vars in settings.json by - @cocosheng-g in - [#26118](https://github.com/google-gemini/gemini-cli/pull/26118) -- fix(cli): preserve Request headers in DevTools activity logger by @Adib234 in - [#26078](https://github.com/google-gemini/gemini-cli/pull/26078) +- fix(cli): prevent automatic updates from switching to less stable channels in + [#26132](https://github.com/google-gemini/gemini-cli/pull/26132) +- chore(release): bump version to 0.42.0-nightly.20260428.g59b2dea0e in + [#26142](https://github.com/google-gemini/gemini-cli/pull/26142) +- fix(cli): pass node arguments via NODE_OPTIONS during relaunch to support SEA + in [#26130](https://github.com/google-gemini/gemini-cli/pull/26130) +- fix(cli): handle DECKPAM keypad Enter sequences in terminal in + [#26092](https://github.com/google-gemini/gemini-cli/pull/26092) +- docs(cli): point plan-mode session retention to actual /settings labels in + [#25978](https://github.com/google-gemini/gemini-cli/pull/25978) +- fix(core): add missing oauth fields support in subagent parsing in + [#26141](https://github.com/google-gemini/gemini-cli/pull/26141) +- fix(core): disconnect extension-backed MCP clients in stopExtension in + [#26136](https://github.com/google-gemini/gemini-cli/pull/26136) +- Update documentation workflows with workspace trust in + [#26150](https://github.com/google-gemini/gemini-cli/pull/26150) +- refactor(acp): modularize monolithic acpClient into specialized files in + [#26143](https://github.com/google-gemini/gemini-cli/pull/26143) +- test: fix failures due to antigravity environment leakage in + [#26162](https://github.com/google-gemini/gemini-cli/pull/26162) +- fix(core): add explicit empty log guard in A2A pushMessage in + [#26198](https://github.com/google-gemini/gemini-cli/pull/26198) +- feat(cli): add --delete flag to /exit command for session deletion in + [#19332](https://github.com/google-gemini/gemini-cli/pull/19332) +- test(core): add regression test for issue for ToolConfirmationResponse in + [#26194](https://github.com/google-gemini/gemini-cli/pull/26194) +- Add the ability to @ mention the gemini robot. in + [#26207](https://github.com/google-gemini/gemini-cli/pull/26207) +- test(evals): add EvalMetadata JSDoc annotations to older tests in + [#26147](https://github.com/google-gemini/gemini-cli/pull/26147) +- fix(core): reduce default API timeout to 60s and enable retries for undici + timeouts in [#26191](https://github.com/google-gemini/gemini-cli/pull/26191) +- fix(core): distinguish fallback chains and fix maxAttempts for auto vs + explicit model selection in + [#26163](https://github.com/google-gemini/gemini-cli/pull/26163) +- fix(cli): handle InvalidStream event gracefully without throwing in + [#26218](https://github.com/google-gemini/gemini-cli/pull/26218) +- ci(github-actions): switch to github app token and fix bot self-trigger in + [#26223](https://github.com/google-gemini/gemini-cli/pull/26223) +- Respect logPrompts flag for logging sensitive fields in + [#26153](https://github.com/google-gemini/gemini-cli/pull/26153) +- fix: correct API key validation logic in handleApiKeySubmit in + [#25453](https://github.com/google-gemini/gemini-cli/pull/25453) +- fix(agent): prevent exit_plan_mode from being called via shell in + [#26230](https://github.com/google-gemini/gemini-cli/pull/26230) +- # Fix: Inconsistent Case-Sensitivity in GrepTool in [#26235](https://github.com/google-gemini/gemini-cli/pull/26235) +- docs(core): add automated gemma setup guide in + [#26233](https://github.com/google-gemini/gemini-cli/pull/26233) +- Allow non-https proxy urls to support container environments in + [#26234](https://github.com/google-gemini/gemini-cli/pull/26234) +- fix(bot): productivity and backlog optimizations in + [#26236](https://github.com/google-gemini/gemini-cli/pull/26236) +- refactor(acp): delegate prompt turn processing logic to GeminiClient in + [#26222](https://github.com/google-gemini/gemini-cli/pull/26222) +- fix(cli): refine platform-specific undo/redo and smart bubbling for WSL in + [#26202](https://github.com/google-gemini/gemini-cli/pull/26202) +- fix: suppress duplicate extension warnings during startup in + [#26208](https://github.com/google-gemini/gemini-cli/pull/26208) +- fix(cli): use byte length instead of string length for readStdin size limits + in [#26224](https://github.com/google-gemini/gemini-cli/pull/26224) +- fix(ui): made shell tool header wrap on Ctrl+O in + [#26229](https://github.com/google-gemini/gemini-cli/pull/26229) +- Changelog for v0.41.0-preview.0 in + [#26244](https://github.com/google-gemini/gemini-cli/pull/26244) +- Skip binary CLI relaunch in + [#26261](https://github.com/google-gemini/gemini-cli/pull/26261) +- fix(cli): do not override GOOGLE_CLOUD_PROJECT in Cloud Shell when using + Vertex AI in [#24455](https://github.com/google-gemini/gemini-cli/pull/24455) +- docs(cli): add skill discovery troubleshooting checklist to tutorial in + [#26018](https://github.com/google-gemini/gemini-cli/pull/26018) +- docs(policy-engine): link to tools reference for tool names and args in + [#22081](https://github.com/google-gemini/gemini-cli/pull/22081) +- Fix posting invalid response to a comment in + [#26266](https://github.com/google-gemini/gemini-cli/pull/26266) +- fix(cli): prevent informational logs from polluting json output in + [#26264](https://github.com/google-gemini/gemini-cli/pull/26264) +- feat(ui): added microphone and updated placeholder for voice mode in + [#26270](https://github.com/google-gemini/gemini-cli/pull/26270) +- feat(cli): Add 'list' subcommand to '/commands' in + [#22324](https://github.com/google-gemini/gemini-cli/pull/22324) +- fix(core): ensure tool output cleanup on session deletion for legacy files in + [#26263](https://github.com/google-gemini/gemini-cli/pull/26263) +- Docs: Update Agent Skills documentation in + [#22388](https://github.com/google-gemini/gemini-cli/pull/22388) +- test(acp): add missing coverage for extensions command error paths in + [#25313](https://github.com/google-gemini/gemini-cli/pull/25313) +- Changelog for v0.40.0 in + [#26245](https://github.com/google-gemini/gemini-cli/pull/26245) +- fix: report AgentExecutionBlocked in non-interactive programmatic modes in + [#26262](https://github.com/google-gemini/gemini-cli/pull/26262) +- feat(extensions): add 'delete' as an alias for /extensions uninstall in + [#25660](https://github.com/google-gemini/gemini-cli/pull/25660) +- fix(core): silently skip GEMINI.md paths that are directories (EISDIR) in + [#25662](https://github.com/google-gemini/gemini-cli/pull/25662) +- fix(ci): checkout PR branch instead of main in bot workflow in + [#26289](https://github.com/google-gemini/gemini-cli/pull/26289) +- fix(cli): use resolved sandbox state for auto-update check in + [#26285](https://github.com/google-gemini/gemini-cli/pull/26285) +- # Metrics Integrity & Standardized Reporting (BT-01) in [#26240](https://github.com/google-gemini/gemini-cli/pull/26240) +- Add Star History section to README in + [#26290](https://github.com/google-gemini/gemini-cli/pull/26290) +- Add Star History section to README in + [#26308](https://github.com/google-gemini/gemini-cli/pull/26308) +- Remove Star History section from README in + [#26309](https://github.com/google-gemini/gemini-cli/pull/26309) +- test(evals): add behavioral eval for file creation and write_file tool + selection in [#26292](https://github.com/google-gemini/gemini-cli/pull/26292) +- feat(config): enable Gemma 4 models by default via Gemini API in + [#26307](https://github.com/google-gemini/gemini-cli/pull/26307) +- fix(cli): insert voice transcription at cursor position instead of ap… in + [#26287](https://github.com/google-gemini/gemini-cli/pull/26287) +- fix(ui): fix issue with box edges in + [#26148](https://github.com/google-gemini/gemini-cli/pull/26148) +- fix(cli): respect .env override for GOOGLE_CLOUD_PROJECT in + [#26288](https://github.com/google-gemini/gemini-cli/pull/26288) +- fix(ci): robust version checking in release verification in + [#26337](https://github.com/google-gemini/gemini-cli/pull/26337) +- fix(cli): enable daemon relaunch in binary and bundle keytar in + [#26333](https://github.com/google-gemini/gemini-cli/pull/26333) +- fix(core): discourage unprompted git add . in prompt snippets in + [#26220](https://github.com/google-gemini/gemini-cli/pull/26220) +- feat(ui): added wave animation for voice mode in + [#26284](https://github.com/google-gemini/gemini-cli/pull/26284) +- fix(cli): prevent Escape from clearing input buffer (#17083) in + [#26339](https://github.com/google-gemini/gemini-cli/pull/26339) +- fix(cli): undeprecate --prompt and correct positional query docs in + [#26329](https://github.com/google-gemini/gemini-cli/pull/26329) +- Metrics updates in + [#26348](https://github.com/google-gemini/gemini-cli/pull/26348) +- fix(core): remove "System: Please continue." injection on InvalidStream events + in [#26340](https://github.com/google-gemini/gemini-cli/pull/26340) +- docs(policy-engine): add tool argument keys reference and shell policy + cross-links in + [#25292](https://github.com/google-gemini/gemini-cli/pull/25292) +- fix(cli): resolve Ghostty/raw-mode False Cancellation in oauth flow in + [#25026](https://github.com/google-gemini/gemini-cli/pull/25026) +- fix(core): reset session-scoped state on resumption in + [#26342](https://github.com/google-gemini/gemini-cli/pull/26342) +- Fix bulk of remaining issues with generalist profile in + [#26073](https://github.com/google-gemini/gemini-cli/pull/26073) +- fix(core): make subagents aware of active approval modes in + [#23608](https://github.com/google-gemini/gemini-cli/pull/23608) +- fix(acp): resolve agent mode disconnect and improve mode awareness in + [#26332](https://github.com/google-gemini/gemini-cli/pull/26332) +- docs(sdk): add JSDoc to exported interfaces in packages/sdk/src/types.ts in + [#26441](https://github.com/google-gemini/gemini-cli/pull/26441) +- perf: skip redundant GEMINI.md loading in partialConfig in + [#26443](https://github.com/google-gemini/gemini-cli/pull/26443) +- Enhance React guidelines in + [#22667](https://github.com/google-gemini/gemini-cli/pull/22667) +- feat(core): reinforce Inquiry constraints to prevent unauthorized changes in + [#26310](https://github.com/google-gemini/gemini-cli/pull/26310) +- revert: fix(ci): robust version checking in release verification (#26337) in + [#26450](https://github.com/google-gemini/gemini-cli/pull/26450) +- refactor(UI): created constants file for ThemeDialog in + [#26446](https://github.com/google-gemini/gemini-cli/pull/26446) +- docs: fix GitHub capitalization in releases guide in + [#26379](https://github.com/google-gemini/gemini-cli/pull/26379) +- fix(cli): ensure branch indicator updates in sub-directories and worktrees in + [#26330](https://github.com/google-gemini/gemini-cli/pull/26330) +- feat: add minimal V8 heap snapshot utility for memory diagnostics in + [#26440](https://github.com/google-gemini/gemini-cli/pull/26440) +- fix(hooks): preserve non-text parts in fromHookLLMRequest in + [#26275](https://github.com/google-gemini/gemini-cli/pull/26275) +- fix(cli): allow early stdout when config is undefined in + [#26453](https://github.com/google-gemini/gemini-cli/pull/26453) +- fix(cli)#21297: clear skills consent dialog before reload in + [#26431](https://github.com/google-gemini/gemini-cli/pull/26431) +- fix(cli): render LaTeX-style output as Unicode in the TUI in + [#25802](https://github.com/google-gemini/gemini-cli/pull/25802) +- fix(core): use close event instead of exit in child_process fallback in + [#25695](https://github.com/google-gemini/gemini-cli/pull/25695) +- feat(voice): add privacy and compliance UX warning for Gemini Live backend in + [#26454](https://github.com/google-gemini/gemini-cli/pull/26454) +- feat(memory): add Auto Memory inbox flow with canonical-patch contract in + [#26338](https://github.com/google-gemini/gemini-cli/pull/26338) +- test(cleanup): fix temporary directory leaks in test suites in + [#26217](https://github.com/google-gemini/gemini-cli/pull/26217) +- feat: add ignoreLocalEnv setting and --ignore-env flag (#2493) in + [#26445](https://github.com/google-gemini/gemini-cli/pull/26445) +- docs(sdk): add JSDoc to all exported interfaces and types in + [#26277](https://github.com/google-gemini/gemini-cli/pull/26277) +- feat(cli): improve /agents refresh logging in + [#26442](https://github.com/google-gemini/gemini-cli/pull/26442) +- Fix: make Dockerfile self-contained with multi-stage build in + [#24277](https://github.com/google-gemini/gemini-cli/pull/24277) +- fix(core): filter unsupported multimodal types from tool responses in + [#26352](https://github.com/google-gemini/gemini-cli/pull/26352) +- fix(core): properly format markdown in AskUser tool by unescaping newlines in + [#26349](https://github.com/google-gemini/gemini-cli/pull/26349) +- feat(bot): add actions spend metric script in + [#26463](https://github.com/google-gemini/gemini-cli/pull/26463) +- feat(cli): add /bug-memory command and auto-capture heap snapshot in /bug in + [#25639](https://github.com/google-gemini/gemini-cli/pull/25639) +- fix(cli): make SkillInboxDialog fit and scroll in alternate buffer in + [#26455](https://github.com/google-gemini/gemini-cli/pull/26455) +- Robust Scale-Safe Lifecycle Consolidation in + [#26355](https://github.com/google-gemini/gemini-cli/pull/26355) +- fix(ci): respect exempt labels when closing stale items in + [#26475](https://github.com/google-gemini/gemini-cli/pull/26475) +- fix(cli): use os.homedir() for home directory warning check in + [#25890](https://github.com/google-gemini/gemini-cli/pull/25890) +- fix(a2a-server): resolve tool approval race condition and improve status + reporting in [#26479](https://github.com/google-gemini/gemini-cli/pull/26479) +- fix(cli): prevent settings dialog border clipping using maxHeight in + [#26507](https://github.com/google-gemini/gemini-cli/pull/26507) +- feat: allow queuing messages during compression (#24071) in + [#26506](https://github.com/google-gemini/gemini-cli/pull/26506) +- fix(core): retry on ERR_STREAM_PREMATURE_CLOSE errors in + [#26519](https://github.com/google-gemini/gemini-cli/pull/26519) +- fix(core): Minor fixes for generalist profile. in + [#26357](https://github.com/google-gemini/gemini-cli/pull/26357) **Full Changelog**: -https://github.com/google-gemini/gemini-cli/compare/v0.40.0-preview.5...v0.41.0-preview.0 +https://github.com/google-gemini/gemini-cli/compare/v0.41.0-preview.3...v0.42.0-preview.0