Gemini CLI v0.31.0

What's Changed Use ranged reads and limited searches and fuzzy editing improvements by @gundermanc in https://github.com/google-gemini/gemini-cli/pull/19240 Fix bottom border color by @jacob314 in ...

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