Back
AI summary
Written by AI from the official notes. Check them for exact details.Gemini CLI 0.4.0 introduces 13 new features and fixes 36 bugs, enhancing functionality and stability.
- Add fuzzy matching for command suggestions.
- Create base class for handling tokens stored in files.
- Integrate chat recording into GeminiChat.
- Enable citations by default for certain users.
- Add support for Ctrl+Backspace to delete a word backward.
Why it matters: Users of Gemini CLI should care as these updates improve usability and security.
Full release notes125 changes
What's Changed
- fix(ide): polyfill import.meta.url for cjs build
- feat(cli) - Create base class for handling tokens stored in files
- fix(process-utils): replace wmic with powershell for windows process
- chore(release): v0.2.2
- fix(cli): remove settings migration console logs
- Refine stream validation to prevent unnecessary retries
- bug(core): Strip thoughts when loading history.
- fix(settings/env): Ensure that
loadEnvironmentis always called with settings. - fix(logging): Log NodeJS Version && Make Config.SessionID readonly
- docs(contributing): add section on self-assigning issues
- fix(trust): Refuse to load from untrusted process.cwd() sources; Add tests
- Add MCP loading indicator when initializing Gemini CLI
- fix: Settings in Folder trust hook
- fix(trust): Refuse to load extensions from untrusted workspaces
- Screen reader updates
- Fix(trust) - Disable commands from untrusted directories when useFolderTrust is enabled
- docs(config): update documentation for settings structure
- Skip MCP server connections in untrusted folders
- feat: add Pro Quota Dialog
- feat(cli): deprecate redundant CLI flags
- Show citations at the end of each turn
- fix(core): treat UTF16/32 BOM files as text and decode correctly
- fix(trust): Update config.isTrustedFolder
- Fix backwards-compatibility for allowedTools -> tools.allowed
- fix: add flash lite with respect to api defaults
- fix(a2a): Don't mutate 'replace' tool args in scheduleToolCalls
- Restore missing
resolvedandintegrityof some dependencies and add check of lockfile integrity - Fix enable command typo
- feat: Add a
--session-summaryflag - Add flag to update all extensions
- fix(core): Fix permissions for oauth_creds.json
- refactor(core): reuse computeNewContent in performAddMemoryEntry
- feat(extension): resolve environment variables in extension configuration
- fix(trust): Respect folder trust setting when reading GEMINI.md
- fix(cli): preserve input history after /clear command
- feat(cli): add fuzzy matching for command suggestions
- fix: show parent name in trust folder confirmation
- refactor: remove redundant 'undefined' type or '?'
- Smart Edit Tool
- chore(dedup): Mock tools refix
- Fix(Cli) - Restart gemini cli on folder trust settings changes
- fix(workflows): improve issue triage
- Update Issue Triage
- fix(diffstats): Fix diff stats to correctly capture the edits
- Update gemini-automated-issue-triage.yml
- Fix duplicate LOC counting due to diff_stat being passed in multiple places
- fix(auth): Fix failing auth test
- fix(release) - make release failures p0
- Merge general settings from different configuration sources
- fix(int-tests): fix failing integration tests
- update(deps): genai sdk now handles empty GEMINI_API_KEY correctly
- fix(ide): use port number for server port file instead of vscode pid
- fix(build): allow builds to continue when sandbox detection fails
- refactor(core): Require model for utility calls
- Support installing extensions with org/repo
- Fix(cli) - Remove Foldertrust Feature Flag
- Add highlights for input /commands and @file/paths
- Enable citations by default for certain users.
- Add
gemini extensions linkcommand - Add footer configuration settings
- feat(quality): Skip the next speaker check by default
- Fix screen reader config bug
- chore(ci): Update GitHub /assign workflow to use advanced search API
- feat(oauth) - Create hybrid storage class
- Fix Arrow Keys and make Kitty Protocol more robust
- chore: improve inclusive-language
- fix(a2a-server): Fix flaky test on Windows by awaiting server close
- test(auth): improve test environment variable cleanup
- Rename smart_edit to replace to align with the EditTool
- feat(cli): Add support for Ctrl+Backspace to delete a word backward
- chore(e2e): Stabilize e2e test by adding a more descriptive prompt
- fix(ide): prevent race condition when diff accepted through CLI
- feat(sessions): Integrate chat recording into GeminiChat
- fix(gitIgnore): prevent crash/error when processing malformed file paths in GitIgnoreParser
- Log config.useSmartEdit to Clearcut
- fix: gemini-cli-vscode-ide-companion's package script
- feat: handle nested gitignore files
- chore(a2a-server): refactor a2a-server src directory
- chore(a2a-server): Merge A2A types
- feat(cli): custom witty message
- fix(deps): Add fzf as a direct dependency to CLI
- fix(cli): Correctly pass file filtering settings and add tests
- Simplify MCP server timeout configuration
- Move settings error throwing to loadSettings
- Fix(core): Log exact model version from API response
- Override Gemini CLI trust with VScode workspace trust when in IDE
- chore(e2e): Stabilize PNG integration test part2
- fix(core): Fix more logging issues
- feat: run e2e tests on pull requests
- fix(tests): make read_many_files test more reliable
- fix(auth): improve Google OAuth error handling and prevent empty error messages
- Fix diff approval race between CLI and IDE
- fix(settings): Add missing v1 settings to migration map
- feat/e2e workflow improvements
- Add enforcedAuthType setting
- feat: Add positional argument for prompt
- feat(telemetry): Add character counts to diff stats
- Enable smart edit by default on main
- fix: Update permissions for trustedFolders.json file to make it more …
- Remove command from extension docs
- Enhance json configuration docs
- feat(extension) - Notify users when there is a new version and update it
- Handle cleaning up the response text in the UI when a response stream retry occurs
- refactor(setting): Improve settings migration and tool loading
- rename(telemetry): Update ai_(added|removed)_lines to model_(added|removed)_lines
- fix(core): tend to history with dangling function calls/responses
- improve performance of shell commands with lots of output
- Use IdeClient directly instead of config.ideClient
- add(telemetry): Add OTel logging for
FileOperationEvent - fix(diffstats): Always return diff stats from EditTool
- Takethree
- chore(release): v0.3.1
- Feat(security) - Make the OAuthTokenStorage non static
- Reduce bundle size & check it in CI
- temp disable windows e2e tests
- Final Changes for stable release
Show the rest (9 more changes)Show less
New Contributors
- @dracic made their first contribution in https://github.com/google-gemini/gemini-cli/pull/7087
- @tayyab3245 made their first contribution in https://github.com/google-gemini/gemini-cli/pull/6081
- @xplo1t-sec made their first contribution in https://github.com/google-gemini/gemini-cli/pull/6662
- @chen893 made their first contribution in https://github.com/google-gemini/gemini-cli/pull/6689
- @skal88 made their first contribution in https://github.com/google-gemini/gemini-cli/pull/7213
- @xiaoxiangmoe made their first contribution in https://github.com/google-gemini/gemini-cli/pull/7555
- @sammccauley117 made their first contribution in https://github.com/google-gemini/gemini-cli/pull/7593
- @rahatarmanahmed made their first contribution in https://github.com/google-gemini/gemini-cli/pull/7609
- @paulirish made their first contribution in https://github.com/google-gemini/gemini-cli/pull/7628
Full Changelog: https://github.com/google-gemini/gemini-cli/compare/v0.3.4...v0.4.0