npm @google/gemini-cli 0.31.0-preview.0
Release v0.31.0-preview.0

latest release: 0.30.0
3 hours ago

What's Changed

  • Use ranged reads and limited searches and fuzzy editing improvements by @gundermanc in #19240
  • Fix bottom border color by @jacob314 in #19266
  • Release note generator fix by @g-samroberts in #19363
  • test(evals): add behavioral tests for tool output masking by @NTaylorMullen in #19172
  • docs: clarify preflight instructions in GEMINI.md by @NTaylorMullen in #19377
  • feat(cli): add gemini --resume hint on exit by @Mag1ck in #16285
  • fix: optimize height calculations for ask_user dialog by @jackwotherspoon in #19017
  • feat(cli): add Alt+D for forward word deletion by @scidomino in #19300
  • Disable failing eval test by @chrstnb in #19455
  • fix(cli): support legacy onConfirm callback in ToolActionsContext by @SandyTao520 in #19369
  • chore(deps): bump tar from 7.5.7 to 7.5.8 by @dependabot[bot] in #19367
  • fix(plan): allow safe fallback when experiment setting for plan is not enabled but approval mode at startup is plan by @Adib234 in #19439
  • Add explicit color-convert dependency by @chrstnb in #19460
  • feat(devtools): migrate devtools package into monorepo by @SandyTao520 in #18936
  • fix(core): clarify plan mode constraints and exit mechanism by @jerop in #19438
  • feat(cli): add macOS run-event notifications (interactive only) by @LyalinDotCom in #19056
  • Changelog for v0.29.0 by @gemini-cli-robot in #19361
  • fix(ui): preventing empty history items from being added by @devr0306 in #19014
  • Changelog for v0.30.0-preview.0 by @gemini-cli-robot in #19364
  • feat(core): add support for MCP progress updates by @NTaylorMullen in #19046
  • fix(core): ensure directory exists before writing conversation file by @godwiniheuwa in #18429
  • fix(ui): move margin from top to bottom in ToolGroupMessage by @imadraude in #17198
  • fix(cli): treat unknown slash commands as regular input instead of showing error by @skyvanguard in #17393
  • feat(core): experimental in-progress steering hints (2 of 2) by @joshualitt in #19307
  • docs(plan): add documentation for plan mode command by @Adib234 in #19467
  • fix(core): ripgrep fails when pattern looks like ripgrep flag by @syvb in #18858
  • fix(cli): disable auto-completion on Shift+Tab to preserve mode cycling by @NTaylorMullen in #19451
  • use issuer instead of authorization_endpoint for oauth discovery by @garrettsparks in #17332
  • feat(cli): include /dir add directories in @ autocomplete suggestions by @jasmeetsb in #19246
  • feat(admin): Admin settings should only apply if adminControlsApplicable = true and fetch errors should be fatal by @skeshive in #19453
  • Format strict-development-rules command by @g-samroberts in #19484
  • feat(core): centralize compatibility checks and add TrueColor detection by @spencer426 in #19478
  • Remove unused files and update index and sidebar. by @g-samroberts in #19479
  • Migrate core render util to use xterm.js as part of the rendering loop. by @jacob314 in #19044
  • Changelog for v0.30.0-preview.1 by @gemini-cli-robot in #19496
  • build: replace deprecated built-in punycode with userland package by @jacob314 in #19502
  • Speculative fixes to try to fix react error. by @jacob314 in #19508
  • fix spacing by @jacob314 in #19494
  • fix(core): ensure user rejections update tool outcome for telemetry by @abhiasap in #18982
  • fix(acp): Initialize config (#18897) by @Mervap in #18898
  • fix(core): add error logging for IDE fetch failures by @yuvrajangadsingh in #17981
  • feat(acp): support set_mode interface (#18890) by @Mervap in #18891
  • fix(core): robust workspace-based IDE connection discovery by @ehedlund in #18443
  • Deflake windows tests. by @jacob314 in #19511
  • Fix: Avoid tool confirmation timeout when no UI listeners are present by @pdHaku0 in #17955
  • format md file by @scidomino in #19474
  • feat(cli): add experimental.useOSC52Copy setting by @scidomino in #19488
  • feat(cli): replace loading phrases boolean with enum setting by @LyalinDotCom in #19347
  • Update skill to adjust for generated results. by @g-samroberts in #19500
  • Fix message too large issue. by @gundermanc in #19499
  • fix(core): prevent duplicate tool approval entries in auto-saved.toml by @Abhijit-2592 in #19487
  • fix(core): resolve crash in ClearcutLogger when os.cpus() is empty by @Adib234 in #19555
  • chore(core): improve encapsulation and remove unused exports by @adamfweidman in #19556
  • Revert "Add generic searchable list to back settings and extensions (… by @chrstnb in #19434
  • fix(core): improve error type extraction for telemetry by @yunaseoul in #19565
  • fix: remove extra padding in Composer by @jackwotherspoon in #19529
  • feat(plan): support configuring custom plans storage directory by @jerop in #19577
  • Migrate files to resource or references folder. by @g-samroberts in #19503
  • feat(policy): implement project-level policy support by @Abhijit-2592 in #18682
  • feat(core): Implement parallel FC for read only tools. by @joshualitt in #18791
  • chore(skills): adds pr-address-comments skill to work on PR feedback by @mbleigh in #19576
  • refactor(sdk): introduce session-based architecture by @mbleigh in #19180
  • fix(ci): add fallback JSON extraction to issue triage workflow by @bdmorgan in #19593
  • feat(core): refine Edit and WriteFile tool schemas for Gemini 3 by @SandyTao520 in #19476
  • Changelog for v0.30.0-preview.3 by @gemini-cli-robot in #19585
  • fix(plan): exclude EnterPlanMode tool from YOLO mode by @Adib234 in #19570
  • chore: resolve build warnings and update dependencies by @mattKorwel in #18880
  • feat(ui): add source indicators to slash commands by @ehedlund in #18839
  • docs: refine Plan Mode documentation structure and workflow by @jerop in #19644
  • Docs: Update release information regarding Gemini 3.1 by @jkcinouye in #19568
  • fix(security): rate limit web_fetch tool to mitigate DDoS via prompt injection by @mattKorwel in #19567
  • Add initial implementation of /extensions explore command by @chrstnb in #19029
  • fix: use discoverOAuthFromWWWAuthenticate for reactive OAuth flow (#18760) by @maximus12793 in #19038
  • Search updates by @alisa-alisa in #19482
  • feat(cli): add support for numpad SS3 sequences by @scidomino in #19659
  • feat(cli): enhance folder trust with configuration discovery and security warnings by @galz10 in #19492
  • feat(ui): improve startup warnings UX with dismissal and show-count limits by @spencer426 in #19584
  • feat(a2a): Add API key authentication provider by @adamfweidman in #19548
  • Send accepted/removed lines with ACCEPT_FILE telemetry. by @gundermanc in #19670
  • feat(models): support Gemini 3.1 Pro Preview and fixes by @sehoon38 in #19676
  • feat(plan): enforce read-only constraints in Plan Mode by @mattKorwel in #19433
  • fix(cli): allow perfect match @-path completions to submit on Enter by @spencer426 in #19562
  • fix(core): treat 503 Service Unavailable as retryable quota error by @sehoon38 in #19642
  • Update sidebar.json for to allow top nav tabs. by @g-samroberts in #19595
  • security: strip deceptive Unicode characters from terminal output by @ehedlund in #19026
  • Fixes 'input.on' is not a function error in Gemini CLI by @gundermanc in #19691
  • Revert "feat(ui): add source indicators to slash commands" by @ehedlund in #19695
  • security: implement deceptive URL detection and disclosure in tool confirmations by @ehedlund in #19288
  • fix(core): restore auth consent in headless mode and add unit tests by @ehedlund in #19689
  • Fix unsafe assertions in code_assist folder. by @gundermanc in #19706
  • feat(cli): make JetBrains warning more specific by @jacob314 in #19687
  • fix(cli): extensions dialog UX polish by @jacob314 in #19685
  • fix(cli): use getDisplayString for manual model selection in dialog by @sehoon38 in #19726
  • feat(policy): repurpose "Always Allow" persistence to workspace level by @Abhijit-2592 in #19707
  • fix(cli): re-enable CLI banner by @sehoon38 in #19741
  • Disallow and suppress unsafe assignment by @gundermanc in #19736
  • feat(core): migrate read_file to 1-based start_line/end_line parameters by @adamfweidman in #19526
  • feat(cli): improve CTRL+O experience for both standard and alternate screen buffer (ASB) modes by @jwhelangoog in #19010
  • Utilize pipelining of grep_search -> read_file to eliminate turns by @gundermanc in #19574
  • refactor(core): remove unsafe type assertions in error utils (Phase 1.1) by @mattKorwel in #19750
  • Disallow unsafe returns. by @gundermanc in #19767
  • fix(cli): filter subagent sessions from resume history by @abhipatel12 in #19698
  • chore(lint): fix lint errors seen when running npm run lint by @abhipatel12 in #19844
  • feat(core): remove unnecessary login verbiage from Code Assist auth by @NTaylorMullen in #19861
  • fix(plan): time share by approval mode dashboard reporting negative time shares by @Adib234 in #19847
  • fix(core): allow any preview model in quota access check by @bdmorgan in #19867
  • fix(core): prevent omission placeholder deletions in replace/write_file by @nsalerni in #19870
  • fix(core): add uniqueness guard to edit tool by @Shivangisharma4 in #19890
  • refactor(config): remove enablePromptCompletion from settings by @sehoon38 in #19974
  • refactor(core): move session conversion logic to core by @abhipatel12 in #19972
  • Fix: Persist manual model selection on restart #19864 by @Nixxx19 in #19891
  • fix(core): increase default retry attempts and add quota error backoff by @sehoon38 in #19949
  • feat(core): add policy chain support for Gemini 3.1 by @sehoon38 in #19991
  • Updates command reference and /stats command. by @g-samroberts in #19794
  • Fix for silent failures in non-interactive mode by @owenofbrien in #19905
  • fix(plan): allow plan mode writes on Windows and fix prompt paths by @Adib234 in #19658
  • fix(core): prevent OAuth server crash on unexpected requests by @reyyanxahmed in #19668
  • feat: Map tool kinds to explicit ACP.ToolKind values and update test … by @sripasg in #19547
  • chore: restrict gemini-automted-issue-triage to only allow echo by @galz10 in #20047
  • Allow ask headers longer than 16 chars by @scidomino in #20041
  • fix(core): prevent state corruption in McpClientManager during collis by @h30s in #19782
  • fix(bundling): copy devtools package to bundle for runtime resolution by @SandyTao520 in #19766
  • feat(policy): Support MCP Server Wildcards in Policy Engine by @jerop in #20024
  • docs(CONTRIBUTING): update React DevTools version to 6 by @mmgok in #20014
  • feat(core): optimize tool descriptions and schemas for Gemini 3 by @aishaneeshah in #19643
  • feat(core): implement experimental direct web fetch by @mbleigh in #19557
  • feat(core): replace expected_replacements with allow_multiple in replace tool by @SandyTao520 in #20033
  • fix(sandbox): harden image packaging integrity checks by @aviralgarg05 in #19552
  • fix(core): allow environment variable expansion and explicit overrides for MCP servers by @galz10 in #18837
  • feat(policy): Implement Tool Annotation Matching in Policy Engine by @jerop in #20029
  • fix(core): prevent utility calls from changing session active model by @adamfweidman in #20035
  • fix(cli): skip workspace policy loading when in home directory by @Abhijit-2592 in #20054
  • fix(scripts): Add Windows (win32/x64) support to lint.js by @ZafeerMahmood in #16193
  • fix(a2a-server): Remove unsafe type assertions in agent by @Nixxx19 in #19723
  • Fix: Handle corrupted token file gracefully when switching auth types (#19845) by @Nixxx19 in #19850
  • fix critical dep vulnerability by @scidomino in #20087
  • Add new setting to configure maxRetries by @kevinjwang1 in #20064
  • Stabilize tests. by @gundermanc in #20095
  • make windows tests mandatory by @scidomino in #20096
  • Add 3.1 pro preview to behavioral evals. by @gundermanc in #20088
  • feat:PR-rate-limit by @JagjeevanAK in #19804
  • feat(cli): allow expanding full details of MCP tool on approval by @y-okt in #19916
  • feat(security): Introduce Conseca framework by @shrishabh in #13193
  • fix(cli): Remove unsafe type assertions in activityLogger #19713 by @Nixxx19 in #19745
  • feat: implement AfterTool tail tool calls by @googlestrobe in #18486
  • ci(actions): fix PR rate limiter excluding maintainers by @scidomino in #20117
  • Shortcuts: Move SectionHeader title below top line and refine styling by @keithguerin in #18721
  • refactor(ui): Update and simplify use of gray colors in themes by @keithguerin in #20141
  • fix punycode2 by @jacob314 in #20154
  • feat(ide): add GEMINI_CLI_IDE_PID env var to override IDE process detection by @kiryltech in #15842
  • feat(policy): Propagate Tool Annotations for MCP Servers by @jerop in #20083
  • fix(a2a-server): pass allowedTools settings to core Config by @reyyanxahmed in #19680
  • feat(mcp): add progress bar, throttling, and input validation for MCP tool progress by @jasmeetsb in #19772
  • feat(policy): centralize plan mode tool visibility in policy engine by @jerop in #20178
  • feat(browser): implement experimental browser agent by @gsquared94 in #19284
  • feat(plan): summarize work after executing a plan by @jerop in #19432
  • fix(core): create new McpClient on restart to apply updated config by @h30s in #20126
  • Changelog for v0.30.0-preview.5 by @gemini-cli-robot in #20107
  • Update packages. by @jacob314 in #20152
  • Fix extension env dir loading issue by @chrstnb in #20198
  • restrict /assign to help-wanted issues by @scidomino in #20207
  • feat(plan): inject message when user manually exits Plan mode by @jerop in #20203
  • feat(extensions): enforce folder trust for local extension install by @galz10 in #19703
  • feat(hooks): adds support for RuntimeHook functions. by @mbleigh in #19598
  • Docs: Update UI links. by @jkcinouye in #20224
  • feat: prompt users to run /terminal-setup with yes/no by @ishaanxgupta in #16235
  • fix: additional high vulnerabilities (minimatch, cross-spawn) by @adamfweidman in #20221
  • feat(telemetry): Add context breakdown to API response event by @SandyTao520 in #19699
  • Docs: Add nested sub-folders for related topics by @g-samroberts in #20235
  • feat(plan): support automatic model switching for Plan Mode by @jerop in #20240

New Contributors

Full Changelog: v0.30.0-preview.6...v0.31.0-preview.0

Don't miss a new gemini-cli release

NewReleases is sending notifications on new releases.