@google/gemini-cli-core 0.32.0-preview.0 → 0.33.0-preview.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/README.md +11 -9
  2. package/dist/docs/CONTRIBUTING.md +7 -4
  3. package/dist/docs/changelogs/index.md +24 -2
  4. package/dist/docs/changelogs/latest.md +389 -310
  5. package/dist/docs/changelogs/preview.md +186 -394
  6. package/dist/docs/cli/cli-reference.md +12 -12
  7. package/dist/docs/cli/custom-commands.md +9 -0
  8. package/dist/docs/cli/enterprise.md +19 -0
  9. package/dist/docs/cli/model.md +5 -14
  10. package/dist/docs/cli/plan-mode.md +38 -7
  11. package/dist/docs/cli/sandbox.md +42 -2
  12. package/dist/docs/cli/session-management.md +16 -7
  13. package/dist/docs/cli/settings.md +10 -10
  14. package/dist/docs/cli/telemetry.md +29 -0
  15. package/dist/docs/cli/tutorials/automation.md +101 -5
  16. package/dist/docs/cli/tutorials/mcp-setup.md +8 -0
  17. package/dist/docs/cli/tutorials/skills-getting-started.md +8 -0
  18. package/dist/docs/extensions/reference.md +9 -1
  19. package/dist/docs/extensions/writing-extensions.md +16 -0
  20. package/dist/docs/get-started/authentication.md +86 -5
  21. package/dist/docs/get-started/installation.md +1 -1
  22. package/dist/docs/hooks/best-practices.md +33 -1
  23. package/dist/docs/hooks/writing-hooks.md +24 -0
  24. package/dist/docs/ide-integration/index.md +8 -0
  25. package/dist/docs/reference/commands.md +3 -0
  26. package/dist/docs/reference/configuration.md +19 -15
  27. package/dist/docs/reference/keyboard-shortcuts.md +10 -0
  28. package/dist/docs/reference/policy-engine.md +10 -0
  29. package/dist/docs/resources/faq.md +8 -0
  30. package/dist/docs/resources/troubleshooting.md +4 -1
  31. package/dist/docs/sidebar.json +8 -1
  32. package/dist/src/agents/a2aUtils.d.ts +2 -0
  33. package/dist/src/agents/a2aUtils.js +12 -0
  34. package/dist/src/agents/a2aUtils.js.map +1 -1
  35. package/dist/src/agents/a2aUtils.test.js +50 -1
  36. package/dist/src/agents/a2aUtils.test.js.map +1 -1
  37. package/dist/src/agents/agentLoader.d.ts +2 -1
  38. package/dist/src/agents/agentLoader.js +17 -4
  39. package/dist/src/agents/agentLoader.js.map +1 -1
  40. package/dist/src/agents/agentLoader.test.js +46 -0
  41. package/dist/src/agents/agentLoader.test.js.map +1 -1
  42. package/dist/src/agents/auth-provider/factory.js +6 -3
  43. package/dist/src/agents/auth-provider/factory.js.map +1 -1
  44. package/dist/src/agents/auth-provider/http-provider.d.ts +28 -0
  45. package/dist/src/agents/auth-provider/http-provider.js +73 -0
  46. package/dist/src/agents/auth-provider/http-provider.js.map +1 -0
  47. package/dist/src/agents/auth-provider/http-provider.test.d.ts +6 -0
  48. package/dist/src/agents/auth-provider/http-provider.test.js +112 -0
  49. package/dist/src/agents/auth-provider/http-provider.test.js.map +1 -0
  50. package/dist/src/agents/auth-provider/types.d.ts +5 -0
  51. package/dist/src/agents/browser/browserAgentInvocation.d.ts +2 -3
  52. package/dist/src/agents/browser/browserAgentInvocation.js +1 -1
  53. package/dist/src/agents/browser/browserAgentInvocation.js.map +1 -1
  54. package/dist/src/agents/local-executor.js +36 -7
  55. package/dist/src/agents/local-executor.js.map +1 -1
  56. package/dist/src/agents/local-executor.test.js +18 -13
  57. package/dist/src/agents/local-executor.test.js.map +1 -1
  58. package/dist/src/agents/local-invocation.d.ts +3 -4
  59. package/dist/src/agents/local-invocation.js +164 -11
  60. package/dist/src/agents/local-invocation.js.map +1 -1
  61. package/dist/src/agents/local-invocation.test.js +49 -29
  62. package/dist/src/agents/local-invocation.test.js.map +1 -1
  63. package/dist/src/agents/registry.js +66 -12
  64. package/dist/src/agents/registry.js.map +1 -1
  65. package/dist/src/agents/registry.test.js +220 -0
  66. package/dist/src/agents/registry.test.js.map +1 -1
  67. package/dist/src/agents/remote-invocation.d.ts +2 -1
  68. package/dist/src/agents/remote-invocation.js +20 -2
  69. package/dist/src/agents/remote-invocation.js.map +1 -1
  70. package/dist/src/agents/remote-invocation.test.js +62 -10
  71. package/dist/src/agents/remote-invocation.test.js.map +1 -1
  72. package/dist/src/agents/subagent-tool.js.map +1 -1
  73. package/dist/src/agents/subagent-tool.test.js +7 -0
  74. package/dist/src/agents/subagent-tool.test.js.map +1 -1
  75. package/dist/src/agents/types.d.ts +18 -0
  76. package/dist/src/agents/types.js +6 -0
  77. package/dist/src/agents/types.js.map +1 -1
  78. package/dist/src/code_assist/server.js.map +1 -1
  79. package/dist/src/config/config.d.ts +11 -4
  80. package/dist/src/config/config.js +23 -47
  81. package/dist/src/config/config.js.map +1 -1
  82. package/dist/src/config/config.test.js +29 -101
  83. package/dist/src/config/config.test.js.map +1 -1
  84. package/dist/src/core/client.js +5 -3
  85. package/dist/src/core/client.js.map +1 -1
  86. package/dist/src/core/client.test.js +47 -7
  87. package/dist/src/core/client.test.js.map +1 -1
  88. package/dist/src/core/coreToolHookTriggers.d.ts +3 -3
  89. package/dist/src/core/coreToolHookTriggers.js.map +1 -1
  90. package/dist/src/core/coreToolScheduler.js +38 -22
  91. package/dist/src/core/coreToolScheduler.js.map +1 -1
  92. package/dist/src/core/geminiChat.d.ts +2 -2
  93. package/dist/src/core/geminiChat.js +3 -0
  94. package/dist/src/core/geminiChat.js.map +1 -1
  95. package/dist/src/core/loggingContentGenerator.d.ts +1 -0
  96. package/dist/src/core/loggingContentGenerator.js +31 -1
  97. package/dist/src/core/loggingContentGenerator.js.map +1 -1
  98. package/dist/src/core/loggingContentGenerator.test.js +94 -0
  99. package/dist/src/core/loggingContentGenerator.test.js.map +1 -1
  100. package/dist/src/generated/git-commit.d.ts +2 -2
  101. package/dist/src/generated/git-commit.js +2 -2
  102. package/dist/src/hooks/hookRunner.js +30 -4
  103. package/dist/src/hooks/hookRunner.js.map +1 -1
  104. package/dist/src/index.d.ts +1 -0
  105. package/dist/src/index.js +1 -0
  106. package/dist/src/index.js.map +1 -1
  107. package/dist/src/mcp/mcp-oauth-provider.d.ts +43 -0
  108. package/dist/src/mcp/mcp-oauth-provider.js +67 -0
  109. package/dist/src/mcp/mcp-oauth-provider.js.map +1 -0
  110. package/dist/src/mcp/mcp-oauth-provider.test.d.ts +6 -0
  111. package/dist/src/mcp/mcp-oauth-provider.test.js +63 -0
  112. package/dist/src/mcp/mcp-oauth-provider.test.js.map +1 -0
  113. package/dist/src/policy/config.d.ts +1 -1
  114. package/dist/src/policy/config.js +4 -3
  115. package/dist/src/policy/config.js.map +1 -1
  116. package/dist/src/policy/policies/plan.toml +50 -13
  117. package/dist/src/policy/policies/read-only.toml +12 -11
  118. package/dist/src/policy/policies/write.toml +12 -11
  119. package/dist/src/policy/policies/yolo.toml +21 -11
  120. package/dist/src/policy/policy-engine.test.js +62 -2
  121. package/dist/src/policy/policy-engine.test.js.map +1 -1
  122. package/dist/src/policy/toml-loader.d.ts +19 -1
  123. package/dist/src/policy/toml-loader.js +127 -0
  124. package/dist/src/policy/toml-loader.js.map +1 -1
  125. package/dist/src/policy/toml-loader.test.js +218 -14
  126. package/dist/src/policy/toml-loader.test.js.map +1 -1
  127. package/dist/src/prompts/snippets.js +7 -7
  128. package/dist/src/prompts/snippets.js.map +1 -1
  129. package/dist/src/scheduler/scheduler.js +1 -1
  130. package/dist/src/scheduler/scheduler.js.map +1 -1
  131. package/dist/src/scheduler/scheduler.test.js +1 -1
  132. package/dist/src/scheduler/scheduler.test.js.map +1 -1
  133. package/dist/src/scheduler/state-manager.d.ts +1 -2
  134. package/dist/src/scheduler/state-manager.js +19 -10
  135. package/dist/src/scheduler/state-manager.js.map +1 -1
  136. package/dist/src/scheduler/tool-executor.d.ts +3 -2
  137. package/dist/src/scheduler/tool-executor.js +89 -32
  138. package/dist/src/scheduler/tool-executor.js.map +1 -1
  139. package/dist/src/scheduler/tool-executor.test.js +191 -0
  140. package/dist/src/scheduler/tool-executor.test.js.map +1 -1
  141. package/dist/src/scheduler/types.d.ts +3 -4
  142. package/dist/src/services/chatRecordingService.js +12 -0
  143. package/dist/src/services/chatRecordingService.js.map +1 -1
  144. package/dist/src/services/chatRecordingService.test.js +15 -4
  145. package/dist/src/services/chatRecordingService.test.js.map +1 -1
  146. package/dist/src/services/loopDetectionService.d.ts +2 -1
  147. package/dist/src/services/loopDetectionService.js +49 -11
  148. package/dist/src/services/loopDetectionService.js.map +1 -1
  149. package/dist/src/services/loopDetectionService.test.js +63 -22
  150. package/dist/src/services/loopDetectionService.test.js.map +1 -1
  151. package/dist/src/skills/builtin/skill-creator/scripts/package_skill.cjs +35 -10
  152. package/dist/src/tools/ask-user.d.ts +1 -0
  153. package/dist/src/tools/ask-user.js +2 -1
  154. package/dist/src/tools/ask-user.js.map +1 -1
  155. package/dist/src/tools/definitions/base-declarations.d.ts +51 -0
  156. package/dist/src/tools/definitions/base-declarations.js +75 -1
  157. package/dist/src/tools/definitions/base-declarations.js.map +1 -1
  158. package/dist/src/tools/definitions/coreTools.d.ts +1 -1
  159. package/dist/src/tools/definitions/coreTools.js +5 -1
  160. package/dist/src/tools/definitions/coreTools.js.map +1 -1
  161. package/dist/src/tools/definitions/dynamic-declaration-helpers.js +14 -12
  162. package/dist/src/tools/definitions/dynamic-declaration-helpers.js.map +1 -1
  163. package/dist/src/tools/definitions/model-family-sets/default-legacy.js +97 -81
  164. package/dist/src/tools/definitions/model-family-sets/default-legacy.js.map +1 -1
  165. package/dist/src/tools/definitions/model-family-sets/gemini-3.js +99 -82
  166. package/dist/src/tools/definitions/model-family-sets/gemini-3.js.map +1 -1
  167. package/dist/src/tools/enter-plan-mode.d.ts +1 -0
  168. package/dist/src/tools/enter-plan-mode.js +2 -1
  169. package/dist/src/tools/enter-plan-mode.js.map +1 -1
  170. package/dist/src/tools/exit-plan-mode.d.ts +1 -0
  171. package/dist/src/tools/exit-plan-mode.js +2 -1
  172. package/dist/src/tools/exit-plan-mode.js.map +1 -1
  173. package/dist/src/tools/mcp-client.d.ts +6 -0
  174. package/dist/src/tools/mcp-client.js +14 -0
  175. package/dist/src/tools/mcp-client.js.map +1 -1
  176. package/dist/src/tools/mcp-tool.js +20 -9
  177. package/dist/src/tools/mcp-tool.js.map +1 -1
  178. package/dist/src/tools/mcp-tool.test.js +48 -1
  179. package/dist/src/tools/mcp-tool.test.js.map +1 -1
  180. package/dist/src/tools/read-file.test.js +7 -0
  181. package/dist/src/tools/read-file.test.js.map +1 -1
  182. package/dist/src/tools/shell.d.ts +2 -3
  183. package/dist/src/tools/shell.js +10 -9
  184. package/dist/src/tools/shell.js.map +1 -1
  185. package/dist/src/tools/tool-names.d.ts +2 -2
  186. package/dist/src/tools/tool-names.js +14 -4
  187. package/dist/src/tools/tool-names.js.map +1 -1
  188. package/dist/src/tools/tool-names.test.js +2 -0
  189. package/dist/src/tools/tool-names.test.js.map +1 -1
  190. package/dist/src/tools/tool-registry.d.ts +3 -2
  191. package/dist/src/tools/tool-registry.js +41 -5
  192. package/dist/src/tools/tool-registry.js.map +1 -1
  193. package/dist/src/tools/tool-registry.test.js +42 -7
  194. package/dist/src/tools/tool-registry.test.js.map +1 -1
  195. package/dist/src/tools/tools.d.ts +6 -4
  196. package/dist/src/tools/tools.js.map +1 -1
  197. package/dist/src/utils/constants.d.ts +3 -0
  198. package/dist/src/utils/constants.js +3 -0
  199. package/dist/src/utils/constants.js.map +1 -1
  200. package/dist/src/utils/errors.d.ts +4 -0
  201. package/dist/src/utils/errors.js +6 -0
  202. package/dist/src/utils/errors.js.map +1 -1
  203. package/dist/src/utils/errors.test.js +20 -1
  204. package/dist/src/utils/errors.test.js.map +1 -1
  205. package/dist/src/utils/fetch.js +1 -1
  206. package/dist/src/utils/fetch.js.map +1 -1
  207. package/dist/src/utils/fileUtils.d.ts +0 -1
  208. package/dist/src/utils/fileUtils.js +5 -7
  209. package/dist/src/utils/fileUtils.js.map +1 -1
  210. package/dist/src/utils/tool-utils.d.ts +11 -4
  211. package/dist/src/utils/tool-utils.js +18 -5
  212. package/dist/src/utils/tool-utils.js.map +1 -1
  213. package/dist/src/utils/tool-utils.test.js +8 -0
  214. package/dist/src/utils/tool-utils.test.js.map +1 -1
  215. package/dist/tsconfig.tsbuildinfo +1 -1
  216. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- # Latest stable release: v0.30.1
1
+ # Latest stable release: v0.31.0
2
2
 
3
3
  Released: February 27, 2026
4
4
 
@@ -11,326 +11,405 @@ npm install -g @google/gemini-cli
11
11
 
12
12
  ## Highlights
13
13
 
14
- - **SDK & Custom Skills**: Introduced the initial SDK package, dynamic system
15
- instructions, `SessionContext` for SDK tool calls, and support for custom
16
- skills.
17
- - **Policy Engine Enhancements**: Added a `--policy` flag for user-defined
18
- policies, strict seatbelt profiles, and transitioned away from
19
- `--allowed-tools`.
20
- - **UI & Themes**: Introduced a generic searchable list for settings and
21
- extensions, added Solarized Dark and Light themes, text wrapping capabilities
22
- to markdown tables, and a clean UI toggle prototype.
23
- - **Vim Support & Ctrl-Z**: Improved Vim support to provide a more complete
24
- experience and added support for Ctrl-Z suspension.
25
- - **Plan Mode & Tools**: Plan Mode now supports project exploration without
26
- planning and skills can be enabled in plan mode. Tool output masking is
27
- enabled by default, and core tool definitions have been centralized.
14
+ - **Gemini 3.1 Pro Preview:** Gemini CLI now supports the new Gemini 3.1 Pro
15
+ Preview model.
16
+ - **Experimental Browser Agent:** We've introduced a new experimental browser
17
+ agent to directly interact with web pages and retrieve context.
18
+ - **Policy Engine Updates:** The policy engine has been expanded to support
19
+ project-level policies, MCP server wildcards, and tool annotation matching,
20
+ providing greater control over tool executions.
21
+ - **Web Fetch Enhancements:** A new experimental direct web fetch tool has been
22
+ implemented, alongside rate-limiting features for enhanced security.
23
+ - **Improved Plan Mode:** Plan Mode now includes support for custom storage
24
+ directories, automatic model switching, and summarizing work after execution.
28
25
 
29
26
  ## What's Changed
30
27
 
31
- - fix(patch): cherry-pick 58df1c6 to release/v0.30.0-pr-20374 [CONFLICTS] by
32
- @gemini-cli-robot in
33
- [#20567](https://github.com/google-gemini/gemini-cli/pull/20567)
34
- - feat(ux): added text wrapping capabilities to markdown tables by @devr0306 in
35
- [#18240](https://github.com/google-gemini/gemini-cli/pull/18240)
36
- - Revert "fix(mcp): ensure MCP transport is closed to prevent memory leaks" by
37
- @skeshive in [#18771](https://github.com/google-gemini/gemini-cli/pull/18771)
38
- - chore(release): bump version to 0.30.0-nightly.20260210.a2174751d by
39
- @gemini-cli-robot in
40
- [#18772](https://github.com/google-gemini/gemini-cli/pull/18772)
41
- - chore: cleanup unused and add unlisted dependencies in packages/core by
42
- @adamfweidman in
43
- [#18762](https://github.com/google-gemini/gemini-cli/pull/18762)
44
- - chore(core): update activate_skill prompt verbiage to be more direct by
45
- @NTaylorMullen in
46
- [#18605](https://github.com/google-gemini/gemini-cli/pull/18605)
47
- - Add autoconfigure memory usage setting to the dialog by @jacob314 in
48
- [#18510](https://github.com/google-gemini/gemini-cli/pull/18510)
49
- - fix(core): prevent race condition in policy persistence by @braddux in
50
- [#18506](https://github.com/google-gemini/gemini-cli/pull/18506)
51
- - fix(evals): prevent false positive in hierarchical memory test by
52
- @Abhijit-2592 in
53
- [#18777](https://github.com/google-gemini/gemini-cli/pull/18777)
54
- - test(evals): mark all `save_memory` evals as `USUALLY_PASSES` due to
55
- unreliability by @jerop in
56
- [#18786](https://github.com/google-gemini/gemini-cli/pull/18786)
57
- - feat(cli): add setting to hide shortcuts hint UI by @LyalinDotCom in
58
- [#18562](https://github.com/google-gemini/gemini-cli/pull/18562)
59
- - feat(core): formalize 5-phase sequential planning workflow by @jerop in
60
- [#18759](https://github.com/google-gemini/gemini-cli/pull/18759)
61
- - Introduce limits for search results. by @gundermanc in
62
- [#18767](https://github.com/google-gemini/gemini-cli/pull/18767)
63
- - fix(cli): allow closing debug console after auto-open via flicker by
28
+ - Use ranged reads and limited searches and fuzzy editing improvements by
29
+ @gundermanc in
30
+ [#19240](https://github.com/google-gemini/gemini-cli/pull/19240)
31
+ - Fix bottom border color by @jacob314 in
32
+ [#19266](https://github.com/google-gemini/gemini-cli/pull/19266)
33
+ - Release note generator fix by @g-samroberts in
34
+ [#19363](https://github.com/google-gemini/gemini-cli/pull/19363)
35
+ - test(evals): add behavioral tests for tool output masking by @NTaylorMullen in
36
+ [#19172](https://github.com/google-gemini/gemini-cli/pull/19172)
37
+ - docs: clarify preflight instructions in GEMINI.md by @NTaylorMullen in
38
+ [#19377](https://github.com/google-gemini/gemini-cli/pull/19377)
39
+ - feat(cli): add gemini --resume hint on exit by @Mag1ck in
40
+ [#16285](https://github.com/google-gemini/gemini-cli/pull/16285)
41
+ - fix: optimize height calculations for ask_user dialog by @jackwotherspoon in
42
+ [#19017](https://github.com/google-gemini/gemini-cli/pull/19017)
43
+ - feat(cli): add Alt+D for forward word deletion by @scidomino in
44
+ [#19300](https://github.com/google-gemini/gemini-cli/pull/19300)
45
+ - Disable failing eval test by @chrstnb in
46
+ [#19455](https://github.com/google-gemini/gemini-cli/pull/19455)
47
+ - fix(cli): support legacy onConfirm callback in ToolActionsContext by
64
48
  @SandyTao520 in
65
- [#18795](https://github.com/google-gemini/gemini-cli/pull/18795)
66
- - feat(masking): enable tool output masking by default by @abhipatel12 in
67
- [#18564](https://github.com/google-gemini/gemini-cli/pull/18564)
68
- - perf(ui): optimize table rendering by memoizing styled characters by @devr0306
69
- in [#18770](https://github.com/google-gemini/gemini-cli/pull/18770)
70
- - feat: multi-line text answers in ask-user tool by @jackwotherspoon in
71
- [#18741](https://github.com/google-gemini/gemini-cli/pull/18741)
72
- - perf(cli): truncate large debug logs and limit message history by @mattKorwel
73
- in [#18663](https://github.com/google-gemini/gemini-cli/pull/18663)
74
- - fix(core): complete MCP discovery when configured servers are skipped by
49
+ [#19369](https://github.com/google-gemini/gemini-cli/pull/19369)
50
+ - chore(deps): bump tar from 7.5.7 to 7.5.8 by @.github/dependabot.yml[bot] in
51
+ [#19367](https://github.com/google-gemini/gemini-cli/pull/19367)
52
+ - fix(plan): allow safe fallback when experiment setting for plan is not enabled
53
+ but approval mode at startup is plan by @Adib234 in
54
+ [#19439](https://github.com/google-gemini/gemini-cli/pull/19439)
55
+ - Add explicit color-convert dependency by @chrstnb in
56
+ [#19460](https://github.com/google-gemini/gemini-cli/pull/19460)
57
+ - feat(devtools): migrate devtools package into monorepo by @SandyTao520 in
58
+ [#18936](https://github.com/google-gemini/gemini-cli/pull/18936)
59
+ - fix(core): clarify plan mode constraints and exit mechanism by @jerop in
60
+ [#19438](https://github.com/google-gemini/gemini-cli/pull/19438)
61
+ - feat(cli): add macOS run-event notifications (interactive only) by
75
62
  @LyalinDotCom in
76
- [#18586](https://github.com/google-gemini/gemini-cli/pull/18586)
77
- - fix(core): cache CLI version to ensure consistency during sessions by
78
- @sehoon38 in [#18793](https://github.com/google-gemini/gemini-cli/pull/18793)
79
- - fix(cli): resolve double rendering in shpool and address vscode lint warnings
80
- by @braddux in
81
- [#18704](https://github.com/google-gemini/gemini-cli/pull/18704)
82
- - feat(plan): document and validate Plan Mode policy overrides by @jerop in
83
- [#18825](https://github.com/google-gemini/gemini-cli/pull/18825)
84
- - Fix pressing any key to exit select mode. by @jacob314 in
85
- [#18421](https://github.com/google-gemini/gemini-cli/pull/18421)
86
- - fix(cli): update F12 behavior to only open drawer if browser fails by
87
- @SandyTao520 in
88
- [#18829](https://github.com/google-gemini/gemini-cli/pull/18829)
89
- - feat(plan): allow skills to be enabled in plan mode by @Adib234 in
90
- [#18817](https://github.com/google-gemini/gemini-cli/pull/18817)
91
- - docs(plan): add documentation for plan mode tools by @jerop in
92
- [#18827](https://github.com/google-gemini/gemini-cli/pull/18827)
93
- - Remove experimental note in extension settings docs by @chrstnb in
94
- [#18822](https://github.com/google-gemini/gemini-cli/pull/18822)
95
- - Update prompt and grep tool definition to limit context size by @gundermanc in
96
- [#18780](https://github.com/google-gemini/gemini-cli/pull/18780)
97
- - docs(plan): add `ask_user` tool documentation by @jerop in
98
- [#18830](https://github.com/google-gemini/gemini-cli/pull/18830)
99
- - Revert unintended credentials exposure by @Adib234 in
100
- [#18840](https://github.com/google-gemini/gemini-cli/pull/18840)
101
- - feat(core): update internal utility models to Gemini 3 by @SandyTao520 in
102
- [#18773](https://github.com/google-gemini/gemini-cli/pull/18773)
103
- - feat(a2a): add value-resolver for auth credential resolution by @adamfweidman
104
- in [#18653](https://github.com/google-gemini/gemini-cli/pull/18653)
105
- - Removed getPlainTextLength by @devr0306 in
106
- [#18848](https://github.com/google-gemini/gemini-cli/pull/18848)
107
- - More grep prompt tweaks by @gundermanc in
108
- [#18846](https://github.com/google-gemini/gemini-cli/pull/18846)
109
- - refactor(cli): Reactive useSettingsStore hook by @psinha40898 in
110
- [#14915](https://github.com/google-gemini/gemini-cli/pull/14915)
111
- - fix(mcp): Ensure that stdio MCP server execution has the `GEMINI_CLI=1` env
112
- variable populated. by @richieforeman in
113
- [#18832](https://github.com/google-gemini/gemini-cli/pull/18832)
114
- - fix(core): improve headless mode detection for flags and query args by @galz10
115
- in [#18855](https://github.com/google-gemini/gemini-cli/pull/18855)
116
- - refactor(cli): simplify UI and remove legacy inline tool confirmation logic by
117
- @abhipatel12 in
118
- [#18566](https://github.com/google-gemini/gemini-cli/pull/18566)
119
- - feat(cli): deprecate --allowed-tools and excludeTools in favor of policy
120
- engine by @Abhijit-2592 in
121
- [#18508](https://github.com/google-gemini/gemini-cli/pull/18508)
122
- - fix(workflows): improve maintainer detection for automated PR actions by
123
- @bdmorgan in [#18869](https://github.com/google-gemini/gemini-cli/pull/18869)
124
- - refactor(cli): consolidate useToolScheduler and delete legacy implementation
125
- by @abhipatel12 in
126
- [#18567](https://github.com/google-gemini/gemini-cli/pull/18567)
127
- - Update changelog for v0.28.0 and v0.29.0-preview0 by @g-samroberts in
128
- [#18819](https://github.com/google-gemini/gemini-cli/pull/18819)
129
- - fix(core): ensure sub-agents are registered regardless of tools.allowed by
130
- @mattKorwel in
131
- [#18870](https://github.com/google-gemini/gemini-cli/pull/18870)
132
- - Show notification when there's a conflict with an extensions command by
133
- @chrstnb in [#17890](https://github.com/google-gemini/gemini-cli/pull/17890)
134
- - fix(cli): dismiss '?' shortcuts help on hotkeys and active states by
135
- @LyalinDotCom in
136
- [#18583](https://github.com/google-gemini/gemini-cli/pull/18583)
137
- - fix(core): prioritize conditional policy rules and harden Plan Mode by
138
- @Abhijit-2592 in
139
- [#18882](https://github.com/google-gemini/gemini-cli/pull/18882)
140
- - feat(core): refine Plan Mode system prompt for agentic execution by
63
+ [#19056](https://github.com/google-gemini/gemini-cli/pull/19056)
64
+ - Changelog for v0.29.0 by @gemini-cli-robot in
65
+ [#19361](https://github.com/google-gemini/gemini-cli/pull/19361)
66
+ - fix(ui): preventing empty history items from being added by @devr0306 in
67
+ [#19014](https://github.com/google-gemini/gemini-cli/pull/19014)
68
+ - Changelog for v0.30.0-preview.0 by @gemini-cli-robot in
69
+ [#19364](https://github.com/google-gemini/gemini-cli/pull/19364)
70
+ - feat(core): add support for MCP progress updates by @NTaylorMullen in
71
+ [#19046](https://github.com/google-gemini/gemini-cli/pull/19046)
72
+ - fix(core): ensure directory exists before writing conversation file by
73
+ @godwiniheuwa in
74
+ [#18429](https://github.com/google-gemini/gemini-cli/pull/18429)
75
+ - fix(ui): move margin from top to bottom in ToolGroupMessage by @imadraude in
76
+ [#17198](https://github.com/google-gemini/gemini-cli/pull/17198)
77
+ - fix(cli): treat unknown slash commands as regular input instead of showing
78
+ error by @skyvanguard in
79
+ [#17393](https://github.com/google-gemini/gemini-cli/pull/17393)
80
+ - feat(core): experimental in-progress steering hints (2 of 2) by @joshualitt in
81
+ [#19307](https://github.com/google-gemini/gemini-cli/pull/19307)
82
+ - docs(plan): add documentation for plan mode command by @Adib234 in
83
+ [#19467](https://github.com/google-gemini/gemini-cli/pull/19467)
84
+ - fix(core): ripgrep fails when pattern looks like ripgrep flag by @syvb in
85
+ [#18858](https://github.com/google-gemini/gemini-cli/pull/18858)
86
+ - fix(cli): disable auto-completion on Shift+Tab to preserve mode cycling by
141
87
  @NTaylorMullen in
142
- [#18799](https://github.com/google-gemini/gemini-cli/pull/18799)
143
- - feat(plan): create metrics for usage of `AskUser` tool by @Adib234 in
144
- [#18820](https://github.com/google-gemini/gemini-cli/pull/18820)
145
- - feat(cli): support Ctrl-Z suspension by @scidomino in
146
- [#18931](https://github.com/google-gemini/gemini-cli/pull/18931)
147
- - fix(github-actions): use robot PAT for release creation to trigger release
148
- notes by @SandyTao520 in
149
- [#18794](https://github.com/google-gemini/gemini-cli/pull/18794)
150
- - feat: add strict seatbelt profiles and remove unusable closed profiles by
88
+ [#19451](https://github.com/google-gemini/gemini-cli/pull/19451)
89
+ - use issuer instead of authorization_endpoint for oauth discovery by
90
+ @garrettsparks in
91
+ [#17332](https://github.com/google-gemini/gemini-cli/pull/17332)
92
+ - feat(cli): include `/dir add` directories in @ autocomplete suggestions by
93
+ @jasmeetsb in [#19246](https://github.com/google-gemini/gemini-cli/pull/19246)
94
+ - feat(admin): Admin settings should only apply if adminControlsApplicable =
95
+ true and fetch errors should be fatal by @skeshive in
96
+ [#19453](https://github.com/google-gemini/gemini-cli/pull/19453)
97
+ - Format strict-development-rules command by @g-samroberts in
98
+ [#19484](https://github.com/google-gemini/gemini-cli/pull/19484)
99
+ - feat(core): centralize compatibility checks and add TrueColor detection by
100
+ @spencer426 in
101
+ [#19478](https://github.com/google-gemini/gemini-cli/pull/19478)
102
+ - Remove unused files and update index and sidebar. by @g-samroberts in
103
+ [#19479](https://github.com/google-gemini/gemini-cli/pull/19479)
104
+ - Migrate core render util to use xterm.js as part of the rendering loop. by
105
+ @jacob314 in [#19044](https://github.com/google-gemini/gemini-cli/pull/19044)
106
+ - Changelog for v0.30.0-preview.1 by @gemini-cli-robot in
107
+ [#19496](https://github.com/google-gemini/gemini-cli/pull/19496)
108
+ - build: replace deprecated built-in punycode with userland package by @jacob314
109
+ in [#19502](https://github.com/google-gemini/gemini-cli/pull/19502)
110
+ - Speculative fixes to try to fix react error. by @jacob314 in
111
+ [#19508](https://github.com/google-gemini/gemini-cli/pull/19508)
112
+ - fix spacing by @jacob314 in
113
+ [#19494](https://github.com/google-gemini/gemini-cli/pull/19494)
114
+ - fix(core): ensure user rejections update tool outcome for telemetry by
115
+ @abhiasap in [#18982](https://github.com/google-gemini/gemini-cli/pull/18982)
116
+ - fix(acp): Initialize config (#18897) by @Mervap in
117
+ [#18898](https://github.com/google-gemini/gemini-cli/pull/18898)
118
+ - fix(core): add error logging for IDE fetch failures by @yuvrajangadsingh in
119
+ [#17981](https://github.com/google-gemini/gemini-cli/pull/17981)
120
+ - feat(acp): support set_mode interface (#18890) by @Mervap in
121
+ [#18891](https://github.com/google-gemini/gemini-cli/pull/18891)
122
+ - fix(core): robust workspace-based IDE connection discovery by @ehedlund in
123
+ [#18443](https://github.com/google-gemini/gemini-cli/pull/18443)
124
+ - Deflake windows tests. by @jacob314 in
125
+ [#19511](https://github.com/google-gemini/gemini-cli/pull/19511)
126
+ - Fix: Avoid tool confirmation timeout when no UI listeners are present by
127
+ @pdHaku0 in [#17955](https://github.com/google-gemini/gemini-cli/pull/17955)
128
+ - format md file by @scidomino in
129
+ [#19474](https://github.com/google-gemini/gemini-cli/pull/19474)
130
+ - feat(cli): add experimental.useOSC52Copy setting by @scidomino in
131
+ [#19488](https://github.com/google-gemini/gemini-cli/pull/19488)
132
+ - feat(cli): replace loading phrases boolean with enum setting by @LyalinDotCom
133
+ in [#19347](https://github.com/google-gemini/gemini-cli/pull/19347)
134
+ - Update skill to adjust for generated results. by @g-samroberts in
135
+ [#19500](https://github.com/google-gemini/gemini-cli/pull/19500)
136
+ - Fix message too large issue. by @gundermanc in
137
+ [#19499](https://github.com/google-gemini/gemini-cli/pull/19499)
138
+ - fix(core): prevent duplicate tool approval entries in auto-saved.toml by
139
+ @Abhijit-2592 in
140
+ [#19487](https://github.com/google-gemini/gemini-cli/pull/19487)
141
+ - fix(core): resolve crash in ClearcutLogger when os.cpus() is empty by @Adib234
142
+ in [#19555](https://github.com/google-gemini/gemini-cli/pull/19555)
143
+ - chore(core): improve encapsulation and remove unused exports by @adamfweidman
144
+ in [#19556](https://github.com/google-gemini/gemini-cli/pull/19556)
145
+ - Revert "Add generic searchable list to back settings and extensions (… by
146
+ @chrstnb in [#19434](https://github.com/google-gemini/gemini-cli/pull/19434)
147
+ - fix(core): improve error type extraction for telemetry by @yunaseoul in
148
+ [#19565](https://github.com/google-gemini/gemini-cli/pull/19565)
149
+ - fix: remove extra padding in Composer by @jackwotherspoon in
150
+ [#19529](https://github.com/google-gemini/gemini-cli/pull/19529)
151
+ - feat(plan): support configuring custom plans storage directory by @jerop in
152
+ [#19577](https://github.com/google-gemini/gemini-cli/pull/19577)
153
+ - Migrate files to resource or references folder. by @g-samroberts in
154
+ [#19503](https://github.com/google-gemini/gemini-cli/pull/19503)
155
+ - feat(policy): implement project-level policy support by @Abhijit-2592 in
156
+ [#18682](https://github.com/google-gemini/gemini-cli/pull/18682)
157
+ - feat(core): Implement parallel FC for read only tools. by @joshualitt in
158
+ [#18791](https://github.com/google-gemini/gemini-cli/pull/18791)
159
+ - chore(skills): adds pr-address-comments skill to work on PR feedback by
160
+ @mbleigh in [#19576](https://github.com/google-gemini/gemini-cli/pull/19576)
161
+ - refactor(sdk): introduce session-based architecture by @mbleigh in
162
+ [#19180](https://github.com/google-gemini/gemini-cli/pull/19180)
163
+ - fix(ci): add fallback JSON extraction to issue triage workflow by @bdmorgan in
164
+ [#19593](https://github.com/google-gemini/gemini-cli/pull/19593)
165
+ - feat(core): refine Edit and WriteFile tool schemas for Gemini 3 by
151
166
  @SandyTao520 in
152
- [#18876](https://github.com/google-gemini/gemini-cli/pull/18876)
153
- - chore: cleanup unused and add unlisted dependencies in packages/a2a-server by
167
+ [#19476](https://github.com/google-gemini/gemini-cli/pull/19476)
168
+ - Changelog for v0.30.0-preview.3 by @gemini-cli-robot in
169
+ [#19585](https://github.com/google-gemini/gemini-cli/pull/19585)
170
+ - fix(plan): exclude EnterPlanMode tool from YOLO mode by @Adib234 in
171
+ [#19570](https://github.com/google-gemini/gemini-cli/pull/19570)
172
+ - chore: resolve build warnings and update dependencies by @mattKorwel in
173
+ [#18880](https://github.com/google-gemini/gemini-cli/pull/18880)
174
+ - feat(ui): add source indicators to slash commands by @ehedlund in
175
+ [#18839](https://github.com/google-gemini/gemini-cli/pull/18839)
176
+ - docs: refine Plan Mode documentation structure and workflow by @jerop in
177
+ [#19644](https://github.com/google-gemini/gemini-cli/pull/19644)
178
+ - Docs: Update release information regarding Gemini 3.1 by @jkcinouye in
179
+ [#19568](https://github.com/google-gemini/gemini-cli/pull/19568)
180
+ - fix(security): rate limit web_fetch tool to mitigate DDoS via prompt injection
181
+ by @mattKorwel in
182
+ [#19567](https://github.com/google-gemini/gemini-cli/pull/19567)
183
+ - Add initial implementation of /extensions explore command by @chrstnb in
184
+ [#19029](https://github.com/google-gemini/gemini-cli/pull/19029)
185
+ - fix: use discoverOAuthFromWWWAuthenticate for reactive OAuth flow (#18760) by
186
+ @maximus12793 in
187
+ [#19038](https://github.com/google-gemini/gemini-cli/pull/19038)
188
+ - Search updates by @alisa-alisa in
189
+ [#19482](https://github.com/google-gemini/gemini-cli/pull/19482)
190
+ - feat(cli): add support for numpad SS3 sequences by @scidomino in
191
+ [#19659](https://github.com/google-gemini/gemini-cli/pull/19659)
192
+ - feat(cli): enhance folder trust with configuration discovery and security
193
+ warnings by @galz10 in
194
+ [#19492](https://github.com/google-gemini/gemini-cli/pull/19492)
195
+ - feat(ui): improve startup warnings UX with dismissal and show-count limits by
196
+ @spencer426 in
197
+ [#19584](https://github.com/google-gemini/gemini-cli/pull/19584)
198
+ - feat(a2a): Add API key authentication provider by @adamfweidman in
199
+ [#19548](https://github.com/google-gemini/gemini-cli/pull/19548)
200
+ - Send accepted/removed lines with ACCEPT_FILE telemetry. by @gundermanc in
201
+ [#19670](https://github.com/google-gemini/gemini-cli/pull/19670)
202
+ - feat(models): support Gemini 3.1 Pro Preview and fixes by @sehoon38 in
203
+ [#19676](https://github.com/google-gemini/gemini-cli/pull/19676)
204
+ - feat(plan): enforce read-only constraints in Plan Mode by @mattKorwel in
205
+ [#19433](https://github.com/google-gemini/gemini-cli/pull/19433)
206
+ - fix(cli): allow perfect match @scripts/test-windows-paths.js completions to
207
+ submit on Enter by @spencer426 in
208
+ [#19562](https://github.com/google-gemini/gemini-cli/pull/19562)
209
+ - fix(core): treat 503 Service Unavailable as retryable quota error by @sehoon38
210
+ in [#19642](https://github.com/google-gemini/gemini-cli/pull/19642)
211
+ - Update sidebar.json for to allow top nav tabs. by @g-samroberts in
212
+ [#19595](https://github.com/google-gemini/gemini-cli/pull/19595)
213
+ - security: strip deceptive Unicode characters from terminal output by @ehedlund
214
+ in [#19026](https://github.com/google-gemini/gemini-cli/pull/19026)
215
+ - Fixes 'input.on' is not a function error in Gemini CLI by @gundermanc in
216
+ [#19691](https://github.com/google-gemini/gemini-cli/pull/19691)
217
+ - Revert "feat(ui): add source indicators to slash commands" by @ehedlund in
218
+ [#19695](https://github.com/google-gemini/gemini-cli/pull/19695)
219
+ - security: implement deceptive URL detection and disclosure in tool
220
+ confirmations by @ehedlund in
221
+ [#19288](https://github.com/google-gemini/gemini-cli/pull/19288)
222
+ - fix(core): restore auth consent in headless mode and add unit tests by
223
+ @ehedlund in [#19689](https://github.com/google-gemini/gemini-cli/pull/19689)
224
+ - Fix unsafe assertions in code_assist folder. by @gundermanc in
225
+ [#19706](https://github.com/google-gemini/gemini-cli/pull/19706)
226
+ - feat(cli): make JetBrains warning more specific by @jacob314 in
227
+ [#19687](https://github.com/google-gemini/gemini-cli/pull/19687)
228
+ - fix(cli): extensions dialog UX polish by @jacob314 in
229
+ [#19685](https://github.com/google-gemini/gemini-cli/pull/19685)
230
+ - fix(cli): use getDisplayString for manual model selection in dialog by
231
+ @sehoon38 in [#19726](https://github.com/google-gemini/gemini-cli/pull/19726)
232
+ - feat(policy): repurpose "Always Allow" persistence to workspace level by
233
+ @Abhijit-2592 in
234
+ [#19707](https://github.com/google-gemini/gemini-cli/pull/19707)
235
+ - fix(cli): re-enable CLI banner by @sehoon38 in
236
+ [#19741](https://github.com/google-gemini/gemini-cli/pull/19741)
237
+ - Disallow and suppress unsafe assignment by @gundermanc in
238
+ [#19736](https://github.com/google-gemini/gemini-cli/pull/19736)
239
+ - feat(core): migrate read_file to 1-based start_line/end_line parameters by
154
240
  @adamfweidman in
155
- [#18916](https://github.com/google-gemini/gemini-cli/pull/18916)
156
- - fix(plan): isolate plan files per session by @Adib234 in
157
- [#18757](https://github.com/google-gemini/gemini-cli/pull/18757)
158
- - fix: character truncation in raw markdown mode by @jackwotherspoon in
159
- [#18938](https://github.com/google-gemini/gemini-cli/pull/18938)
160
- - feat(cli): prototype clean UI toggle and minimal-mode bleed-through by
161
- @LyalinDotCom in
162
- [#18683](https://github.com/google-gemini/gemini-cli/pull/18683)
163
- - ui(polish) blend background color with theme by @jacob314 in
164
- [#18802](https://github.com/google-gemini/gemini-cli/pull/18802)
165
- - Add generic searchable list to back settings and extensions by @chrstnb in
166
- [#18838](https://github.com/google-gemini/gemini-cli/pull/18838)
167
- - feat(ui): align `AskUser` color scheme with UX spec by @jerop in
168
- [#18943](https://github.com/google-gemini/gemini-cli/pull/18943)
169
- - Hide AskUser tool validation errors from UI (agent self-corrects) by @jerop in
170
- [#18954](https://github.com/google-gemini/gemini-cli/pull/18954)
171
- - bug(cli) fix flicker due to AppContainer continuous initialization by
172
- @jacob314 in [#18958](https://github.com/google-gemini/gemini-cli/pull/18958)
173
- - feat(admin): Add admin controls documentation by @skeshive in
174
- [#18644](https://github.com/google-gemini/gemini-cli/pull/18644)
175
- - feat(cli): disable ctrl-s shortcut outside of alternate buffer mode by
176
- @jacob314 in [#18887](https://github.com/google-gemini/gemini-cli/pull/18887)
177
- - fix(vim): vim support that feels (more) complete by @ppgranger in
178
- [#18755](https://github.com/google-gemini/gemini-cli/pull/18755)
179
- - feat(policy): add --policy flag for user defined policies by @allenhutchison
180
- in [#18500](https://github.com/google-gemini/gemini-cli/pull/18500)
181
- - Update installation guide by @g-samroberts in
182
- [#18823](https://github.com/google-gemini/gemini-cli/pull/18823)
183
- - refactor(core): centralize tool definitions (Group 1: replace, search, grep)
184
- by @aishaneeshah in
185
- [#18944](https://github.com/google-gemini/gemini-cli/pull/18944)
186
- - refactor(cli): finalize event-driven transition and remove interaction bridge
187
- by @abhipatel12 in
188
- [#18569](https://github.com/google-gemini/gemini-cli/pull/18569)
189
- - Fix drag and drop escaping by @scidomino in
190
- [#18965](https://github.com/google-gemini/gemini-cli/pull/18965)
191
- - feat(sdk): initial package bootstrap for SDK by @mbleigh in
192
- [#18861](https://github.com/google-gemini/gemini-cli/pull/18861)
193
- - feat(sdk): implements SessionContext for SDK tool calls by @mbleigh in
194
- [#18862](https://github.com/google-gemini/gemini-cli/pull/18862)
195
- - fix(plan): make question type required in AskUser tool by @Adib234 in
196
- [#18959](https://github.com/google-gemini/gemini-cli/pull/18959)
197
- - fix(core): ensure --yolo does not force headless mode by @NTaylorMullen in
198
- [#18976](https://github.com/google-gemini/gemini-cli/pull/18976)
199
- - refactor(core): adopt `CoreToolCallStatus` enum for type safety by @jerop in
200
- [#18998](https://github.com/google-gemini/gemini-cli/pull/18998)
201
- - Enable in-CLI extension management commands for team by @chrstnb in
202
- [#18957](https://github.com/google-gemini/gemini-cli/pull/18957)
203
- - Adjust lint rules to avoid unnecessary warning. by @scidomino in
204
- [#18970](https://github.com/google-gemini/gemini-cli/pull/18970)
205
- - fix(vscode): resolve unsafe type assertion lint errors by @ehedlund in
206
- [#19006](https://github.com/google-gemini/gemini-cli/pull/19006)
207
- - Remove unnecessary eslint config file by @scidomino in
208
- [#19015](https://github.com/google-gemini/gemini-cli/pull/19015)
209
- - fix(core): Prevent loop detection false positives on lists with long shared
210
- prefixes by @SandyTao520 in
211
- [#18975](https://github.com/google-gemini/gemini-cli/pull/18975)
212
- - feat(core): fallback to chat-base when using unrecognized models for chat by
241
+ [#19526](https://github.com/google-gemini/gemini-cli/pull/19526)
242
+ - feat(cli): improve CTRL+O experience for both standard and alternate screen
243
+ buffer (ASB) modes by @jwhelangoog in
244
+ [#19010](https://github.com/google-gemini/gemini-cli/pull/19010)
245
+ - Utilize pipelining of grep_search -> read_file to eliminate turns by
246
+ @gundermanc in
247
+ [#19574](https://github.com/google-gemini/gemini-cli/pull/19574)
248
+ - refactor(core): remove unsafe type assertions in error utils (Phase 1.1) by
249
+ @mattKorwel in
250
+ [#19750](https://github.com/google-gemini/gemini-cli/pull/19750)
251
+ - Disallow unsafe returns. by @gundermanc in
252
+ [#19767](https://github.com/google-gemini/gemini-cli/pull/19767)
253
+ - fix(cli): filter subagent sessions from resume history by @abhipatel12 in
254
+ [#19698](https://github.com/google-gemini/gemini-cli/pull/19698)
255
+ - chore(lint): fix lint errors seen when running npm run lint by @abhipatel12 in
256
+ [#19844](https://github.com/google-gemini/gemini-cli/pull/19844)
257
+ - feat(core): remove unnecessary login verbiage from Code Assist auth by
258
+ @NTaylorMullen in
259
+ [#19861](https://github.com/google-gemini/gemini-cli/pull/19861)
260
+ - fix(plan): time share by approval mode dashboard reporting negative time
261
+ shares by @Adib234 in
262
+ [#19847](https://github.com/google-gemini/gemini-cli/pull/19847)
263
+ - fix(core): allow any preview model in quota access check by @bdmorgan in
264
+ [#19867](https://github.com/google-gemini/gemini-cli/pull/19867)
265
+ - fix(core): prevent omission placeholder deletions in replace/write_file by
266
+ @nsalerni in [#19870](https://github.com/google-gemini/gemini-cli/pull/19870)
267
+ - fix(core): add uniqueness guard to edit tool by @Shivangisharma4 in
268
+ [#19890](https://github.com/google-gemini/gemini-cli/pull/19890)
269
+ - refactor(config): remove enablePromptCompletion from settings by @sehoon38 in
270
+ [#19974](https://github.com/google-gemini/gemini-cli/pull/19974)
271
+ - refactor(core): move session conversion logic to core by @abhipatel12 in
272
+ [#19972](https://github.com/google-gemini/gemini-cli/pull/19972)
273
+ - Fix: Persist manual model selection on restart #19864 by @Nixxx19 in
274
+ [#19891](https://github.com/google-gemini/gemini-cli/pull/19891)
275
+ - fix(core): increase default retry attempts and add quota error backoff by
276
+ @sehoon38 in [#19949](https://github.com/google-gemini/gemini-cli/pull/19949)
277
+ - feat(core): add policy chain support for Gemini 3.1 by @sehoon38 in
278
+ [#19991](https://github.com/google-gemini/gemini-cli/pull/19991)
279
+ - Updates command reference and /stats command. by @g-samroberts in
280
+ [#19794](https://github.com/google-gemini/gemini-cli/pull/19794)
281
+ - Fix for silent failures in non-interactive mode by @owenofbrien in
282
+ [#19905](https://github.com/google-gemini/gemini-cli/pull/19905)
283
+ - fix(plan): allow plan mode writes on Windows and fix prompt paths by @Adib234
284
+ in [#19658](https://github.com/google-gemini/gemini-cli/pull/19658)
285
+ - fix(core): prevent OAuth server crash on unexpected requests by @reyyanxahmed
286
+ in [#19668](https://github.com/google-gemini/gemini-cli/pull/19668)
287
+ - feat: Map tool kinds to explicit ACP.ToolKind values and update test … by
288
+ @sripasg in [#19547](https://github.com/google-gemini/gemini-cli/pull/19547)
289
+ - chore: restrict gemini-automted-issue-triage to only allow echo by @galz10 in
290
+ [#20047](https://github.com/google-gemini/gemini-cli/pull/20047)
291
+ - Allow ask headers longer than 16 chars by @scidomino in
292
+ [#20041](https://github.com/google-gemini/gemini-cli/pull/20041)
293
+ - fix(core): prevent state corruption in McpClientManager during collis by @h30s
294
+ in [#19782](https://github.com/google-gemini/gemini-cli/pull/19782)
295
+ - fix(bundling): copy devtools package to bundle for runtime resolution by
213
296
  @SandyTao520 in
214
- [#19016](https://github.com/google-gemini/gemini-cli/pull/19016)
215
- - docs: fix inconsistent commandRegex example in policy engine by @NTaylorMullen
216
- in [#19027](https://github.com/google-gemini/gemini-cli/pull/19027)
217
- - fix(plan): persist the approval mode in UI even when agent is thinking by
218
- @Adib234 in [#18955](https://github.com/google-gemini/gemini-cli/pull/18955)
219
- - feat(sdk): Implement dynamic system instructions by @mbleigh in
220
- [#18863](https://github.com/google-gemini/gemini-cli/pull/18863)
221
- - Docs: Refresh docs to organize and standardize reference materials. by
222
- @jkcinouye in [#18403](https://github.com/google-gemini/gemini-cli/pull/18403)
223
- - fix windows escaping (and broken tests) by @scidomino in
224
- [#19011](https://github.com/google-gemini/gemini-cli/pull/19011)
225
- - refactor: use `CoreToolCallStatus` in the the history data model by @jerop in
226
- [#19033](https://github.com/google-gemini/gemini-cli/pull/19033)
227
- - feat(cleanup): enable 30-day session retention by default by @skeshive in
228
- [#18854](https://github.com/google-gemini/gemini-cli/pull/18854)
229
- - feat(plan): hide plan write and edit operations on plans in Plan Mode by
230
- @jerop in [#19012](https://github.com/google-gemini/gemini-cli/pull/19012)
231
- - bug(ui) fix flicker refreshing background color by @jacob314 in
232
- [#19041](https://github.com/google-gemini/gemini-cli/pull/19041)
233
- - chore: fix dep vulnerabilities by @scidomino in
234
- [#19036](https://github.com/google-gemini/gemini-cli/pull/19036)
235
- - Revamp automated changelog skill by @g-samroberts in
236
- [#18974](https://github.com/google-gemini/gemini-cli/pull/18974)
237
- - feat(sdk): implement support for custom skills by @mbleigh in
238
- [#19031](https://github.com/google-gemini/gemini-cli/pull/19031)
239
- - refactor(core): complete centralization of core tool definitions by
297
+ [#19766](https://github.com/google-gemini/gemini-cli/pull/19766)
298
+ - feat(policy): Support MCP Server Wildcards in Policy Engine by @jerop in
299
+ [#20024](https://github.com/google-gemini/gemini-cli/pull/20024)
300
+ - docs(CONTRIBUTING): update React DevTools version to 6 by @mmgok in
301
+ [#20014](https://github.com/google-gemini/gemini-cli/pull/20014)
302
+ - feat(core): optimize tool descriptions and schemas for Gemini 3 by
240
303
  @aishaneeshah in
241
- [#18991](https://github.com/google-gemini/gemini-cli/pull/18991)
242
- - feat: add /commands reload to refresh custom TOML commands by @korade-krushna
243
- in [#19078](https://github.com/google-gemini/gemini-cli/pull/19078)
244
- - fix(cli): wrap terminal capability queries in hidden sequence by @srithreepo
245
- in [#19080](https://github.com/google-gemini/gemini-cli/pull/19080)
246
- - fix(workflows): fix GitHub App token permissions for maintainer detection by
247
- @bdmorgan in [#19139](https://github.com/google-gemini/gemini-cli/pull/19139)
248
- - test: fix hook integration test flakiness on Windows CI by @NTaylorMullen in
249
- [#18665](https://github.com/google-gemini/gemini-cli/pull/18665)
250
- - fix(core): Encourage non-interactive flags for scaffolding commands by
251
- @NTaylorMullen in
252
- [#18804](https://github.com/google-gemini/gemini-cli/pull/18804)
253
- - fix(core): propagate User-Agent header to setup-phase CodeAssist API calls by
254
- @gsquared94 in
255
- [#19182](https://github.com/google-gemini/gemini-cli/pull/19182)
256
- - docs: document .agents/skills alias and discovery precedence by @kevmoo in
257
- [#19166](https://github.com/google-gemini/gemini-cli/pull/19166)
258
- - feat(cli): add loading state to new agents notification by @sehoon38 in
259
- [#19190](https://github.com/google-gemini/gemini-cli/pull/19190)
260
- - Add base branch to workflow. by @g-samroberts in
261
- [#19189](https://github.com/google-gemini/gemini-cli/pull/19189)
262
- - feat(cli): handle invalid model names in useQuotaAndFallback by @sehoon38 in
263
- [#19222](https://github.com/google-gemini/gemini-cli/pull/19222)
264
- - docs: custom themes in extensions by @jackwotherspoon in
265
- [#19219](https://github.com/google-gemini/gemini-cli/pull/19219)
266
- - Disable workspace settings when starting GCLI in the home directory. by
267
- @kevinjwang1 in
268
- [#19034](https://github.com/google-gemini/gemini-cli/pull/19034)
269
- - feat(cli): refactor model command to support set and manage subcommands by
270
- @sehoon38 in [#19221](https://github.com/google-gemini/gemini-cli/pull/19221)
271
- - Add refresh/reload aliases to slash command subcommands by @korade-krushna in
272
- [#19218](https://github.com/google-gemini/gemini-cli/pull/19218)
273
- - refactor: consolidate development rules and add cli guidelines by @jacob314 in
274
- [#19214](https://github.com/google-gemini/gemini-cli/pull/19214)
275
- - chore(ui): remove outdated tip about model routing by @sehoon38 in
276
- [#19226](https://github.com/google-gemini/gemini-cli/pull/19226)
277
- - feat(core): support custom reasoning models by default by @NTaylorMullen in
278
- [#19227](https://github.com/google-gemini/gemini-cli/pull/19227)
279
- - Add Solarized Dark and Solarized Light themes by @rmedranollamas in
280
- [#19064](https://github.com/google-gemini/gemini-cli/pull/19064)
281
- - fix(telemetry): replace JSON.stringify with safeJsonStringify in file
282
- exporters by @gsquared94 in
283
- [#19244](https://github.com/google-gemini/gemini-cli/pull/19244)
284
- - feat(telemetry): add keychain availability and token storage metrics by
285
- @abhipatel12 in
286
- [#18971](https://github.com/google-gemini/gemini-cli/pull/18971)
287
- - feat(cli): update approval mode cycle order by @jerop in
288
- [#19254](https://github.com/google-gemini/gemini-cli/pull/19254)
289
- - refactor(cli): code review cleanup fix for tab+tab by @jacob314 in
290
- [#18967](https://github.com/google-gemini/gemini-cli/pull/18967)
291
- - feat(plan): support project exploration without planning when in plan mode by
292
- @Adib234 in [#18992](https://github.com/google-gemini/gemini-cli/pull/18992)
293
- - feat: add role-specific statistics to telemetry and UI (cont. #15234) by
294
- @yunaseoul in [#18824](https://github.com/google-gemini/gemini-cli/pull/18824)
295
- - feat(cli): remove Plan Mode from rotation when actively working by @jerop in
296
- [#19262](https://github.com/google-gemini/gemini-cli/pull/19262)
297
- - Fix side breakage where anchors don't work in slugs. by @g-samroberts in
298
- [#19261](https://github.com/google-gemini/gemini-cli/pull/19261)
299
- - feat(config): add setting to make directory tree context configurable by
300
- @kevin-ramdass in
301
- [#19053](https://github.com/google-gemini/gemini-cli/pull/19053)
302
- - fix(acp): Wait for mcp initialization in acp (#18893) by @Mervap in
303
- [#18894](https://github.com/google-gemini/gemini-cli/pull/18894)
304
- - docs: format UTC times in releases doc by @pavan-sh in
305
- [#18169](https://github.com/google-gemini/gemini-cli/pull/18169)
306
- - Docs: Clarify extensions documentation. by @jkcinouye in
307
- [#19277](https://github.com/google-gemini/gemini-cli/pull/19277)
308
- - refactor(core): modularize tool definitions by model family by @aishaneeshah
309
- in [#19269](https://github.com/google-gemini/gemini-cli/pull/19269)
310
- - fix(paths): Add cross-platform path normalization by @spencer426 in
311
- [#18939](https://github.com/google-gemini/gemini-cli/pull/18939)
312
- - feat(core): experimental in-progress steering hints (1 of 3) by @joshualitt in
313
- [#19008](https://github.com/google-gemini/gemini-cli/pull/19008)
314
- - fix(patch): cherry-pick 261788c to release/v0.30.0-preview.0-pr-19453 to patch
315
- version v0.30.0-preview.0 and create version 0.30.0-preview.1 by
316
- @gemini-cli-robot in
317
- [#19490](https://github.com/google-gemini/gemini-cli/pull/19490)
318
- - fix(patch): cherry-pick c43500c to release/v0.30.0-preview.1-pr-19502 to patch
319
- version v0.30.0-preview.1 and create version 0.30.0-preview.2 by
320
- @gemini-cli-robot in
321
- [#19521](https://github.com/google-gemini/gemini-cli/pull/19521)
322
- - fix(patch): cherry-pick aa9163d to release/v0.30.0-preview.3-pr-19991 to patch
323
- version v0.30.0-preview.3 and create version 0.30.0-preview.4 by
324
- @gemini-cli-robot in
325
- [#20040](https://github.com/google-gemini/gemini-cli/pull/20040)
326
- - fix(patch): cherry-pick 2c1d6f8 to release/v0.30.0-preview.4-pr-19369 to patch
327
- version v0.30.0-preview.4 and create version 0.30.0-preview.5 by
304
+ [#19643](https://github.com/google-gemini/gemini-cli/pull/19643)
305
+ - feat(core): implement experimental direct web fetch by @mbleigh in
306
+ [#19557](https://github.com/google-gemini/gemini-cli/pull/19557)
307
+ - feat(core): replace expected_replacements with allow_multiple in replace tool
308
+ by @SandyTao520 in
309
+ [#20033](https://github.com/google-gemini/gemini-cli/pull/20033)
310
+ - fix(sandbox): harden image packaging integrity checks by @aviralgarg05 in
311
+ [#19552](https://github.com/google-gemini/gemini-cli/pull/19552)
312
+ - fix(core): allow environment variable expansion and explicit overrides for MCP
313
+ servers by @galz10 in
314
+ [#18837](https://github.com/google-gemini/gemini-cli/pull/18837)
315
+ - feat(policy): Implement Tool Annotation Matching in Policy Engine by @jerop in
316
+ [#20029](https://github.com/google-gemini/gemini-cli/pull/20029)
317
+ - fix(core): prevent utility calls from changing session active model by
318
+ @adamfweidman in
319
+ [#20035](https://github.com/google-gemini/gemini-cli/pull/20035)
320
+ - fix(cli): skip workspace policy loading when in home directory by
321
+ @Abhijit-2592 in
322
+ [#20054](https://github.com/google-gemini/gemini-cli/pull/20054)
323
+ - fix(scripts): Add Windows (win32/x64) support to lint.js by @ZafeerMahmood in
324
+ [#16193](https://github.com/google-gemini/gemini-cli/pull/16193)
325
+ - fix(a2a-server): Remove unsafe type assertions in agent by @Nixxx19 in
326
+ [#19723](https://github.com/google-gemini/gemini-cli/pull/19723)
327
+ - Fix: Handle corrupted token file gracefully when switching auth types (#19845)
328
+ by @Nixxx19 in
329
+ [#19850](https://github.com/google-gemini/gemini-cli/pull/19850)
330
+ - fix critical dep vulnerability by @scidomino in
331
+ [#20087](https://github.com/google-gemini/gemini-cli/pull/20087)
332
+ - Add new setting to configure maxRetries by @kevinjwang1 in
333
+ [#20064](https://github.com/google-gemini/gemini-cli/pull/20064)
334
+ - Stabilize tests. by @gundermanc in
335
+ [#20095](https://github.com/google-gemini/gemini-cli/pull/20095)
336
+ - make windows tests mandatory by @scidomino in
337
+ [#20096](https://github.com/google-gemini/gemini-cli/pull/20096)
338
+ - Add 3.1 pro preview to behavioral evals. by @gundermanc in
339
+ [#20088](https://github.com/google-gemini/gemini-cli/pull/20088)
340
+ - feat:PR-rate-limit by @JagjeevanAK in
341
+ [#19804](https://github.com/google-gemini/gemini-cli/pull/19804)
342
+ - feat(cli): allow expanding full details of MCP tool on approval by @y-okt in
343
+ [#19916](https://github.com/google-gemini/gemini-cli/pull/19916)
344
+ - feat(security): Introduce Conseca framework by @shrishabh in
345
+ [#13193](https://github.com/google-gemini/gemini-cli/pull/13193)
346
+ - fix(cli): Remove unsafe type assertions in activityLogger #19713 by @Nixxx19
347
+ in [#19745](https://github.com/google-gemini/gemini-cli/pull/19745)
348
+ - feat: implement AfterTool tail tool calls by @googlestrobe in
349
+ [#18486](https://github.com/google-gemini/gemini-cli/pull/18486)
350
+ - ci(actions): fix PR rate limiter excluding maintainers by @scidomino in
351
+ [#20117](https://github.com/google-gemini/gemini-cli/pull/20117)
352
+ - Shortcuts: Move SectionHeader title below top line and refine styling by
353
+ @keithguerin in
354
+ [#18721](https://github.com/google-gemini/gemini-cli/pull/18721)
355
+ - refactor(ui): Update and simplify use of gray colors in themes by @keithguerin
356
+ in [#20141](https://github.com/google-gemini/gemini-cli/pull/20141)
357
+ - fix punycode2 by @jacob314 in
358
+ [#20154](https://github.com/google-gemini/gemini-cli/pull/20154)
359
+ - feat(ide): add GEMINI_CLI_IDE_PID env var to override IDE process detection by
360
+ @kiryltech in [#15842](https://github.com/google-gemini/gemini-cli/pull/15842)
361
+ - feat(policy): Propagate Tool Annotations for MCP Servers by @jerop in
362
+ [#20083](https://github.com/google-gemini/gemini-cli/pull/20083)
363
+ - fix(a2a-server): pass allowedTools settings to core Config by @reyyanxahmed in
364
+ [#19680](https://github.com/google-gemini/gemini-cli/pull/19680)
365
+ - feat(mcp): add progress bar, throttling, and input validation for MCP tool
366
+ progress by @jasmeetsb in
367
+ [#19772](https://github.com/google-gemini/gemini-cli/pull/19772)
368
+ - feat(policy): centralize plan mode tool visibility in policy engine by @jerop
369
+ in [#20178](https://github.com/google-gemini/gemini-cli/pull/20178)
370
+ - feat(browser): implement experimental browser agent by @gsquared94 in
371
+ [#19284](https://github.com/google-gemini/gemini-cli/pull/19284)
372
+ - feat(plan): summarize work after executing a plan by @jerop in
373
+ [#19432](https://github.com/google-gemini/gemini-cli/pull/19432)
374
+ - fix(core): create new McpClient on restart to apply updated config by @h30s in
375
+ [#20126](https://github.com/google-gemini/gemini-cli/pull/20126)
376
+ - Changelog for v0.30.0-preview.5 by @gemini-cli-robot in
377
+ [#20107](https://github.com/google-gemini/gemini-cli/pull/20107)
378
+ - Update packages. by @jacob314 in
379
+ [#20152](https://github.com/google-gemini/gemini-cli/pull/20152)
380
+ - Fix extension env dir loading issue by @chrstnb in
381
+ [#20198](https://github.com/google-gemini/gemini-cli/pull/20198)
382
+ - restrict /assign to help-wanted issues by @scidomino in
383
+ [#20207](https://github.com/google-gemini/gemini-cli/pull/20207)
384
+ - feat(plan): inject message when user manually exits Plan mode by @jerop in
385
+ [#20203](https://github.com/google-gemini/gemini-cli/pull/20203)
386
+ - feat(extensions): enforce folder trust for local extension install by @galz10
387
+ in [#19703](https://github.com/google-gemini/gemini-cli/pull/19703)
388
+ - feat(hooks): adds support for RuntimeHook functions. by @mbleigh in
389
+ [#19598](https://github.com/google-gemini/gemini-cli/pull/19598)
390
+ - Docs: Update UI links. by @jkcinouye in
391
+ [#20224](https://github.com/google-gemini/gemini-cli/pull/20224)
392
+ - feat: prompt users to run /terminal-setup with yes/no by @ishaanxgupta in
393
+ [#16235](https://github.com/google-gemini/gemini-cli/pull/16235)
394
+ - fix: additional high vulnerabilities (minimatch, cross-spawn) by @adamfweidman
395
+ in [#20221](https://github.com/google-gemini/gemini-cli/pull/20221)
396
+ - feat(telemetry): Add context breakdown to API response event by @SandyTao520
397
+ in [#19699](https://github.com/google-gemini/gemini-cli/pull/19699)
398
+ - Docs: Add nested sub-folders for related topics by @g-samroberts in
399
+ [#20235](https://github.com/google-gemini/gemini-cli/pull/20235)
400
+ - feat(plan): support automatic model switching for Plan Mode by @jerop in
401
+ [#20240](https://github.com/google-gemini/gemini-cli/pull/20240)
402
+ - fix(patch): cherry-pick 58df1c6 to release/v0.31.0-preview.0-pr-20374 to patch
403
+ version v0.31.0-preview.0 and create version 0.31.0-preview.1 by
328
404
  @gemini-cli-robot in
329
- [#20086](https://github.com/google-gemini/gemini-cli/pull/20086)
330
- - fix(patch): cherry-pick d96bd05 to release/v0.30.0-preview.5-pr-19867 to patch
331
- version v0.30.0-preview.5 and create version 0.30.0-preview.6 by
405
+ [#20568](https://github.com/google-gemini/gemini-cli/pull/20568)
406
+ - fix(patch): cherry-pick ea48bd9 to release/v0.31.0-preview.1-pr-20577
407
+ [CONFLICTS] by @gemini-cli-robot in
408
+ [#20592](https://github.com/google-gemini/gemini-cli/pull/20592)
409
+ - fix(patch): cherry-pick 32e777f to release/v0.31.0-preview.2-pr-20531 to patch
410
+ version v0.31.0-preview.2 and create version 0.31.0-preview.3 by
332
411
  @gemini-cli-robot in
333
- [#20112](https://github.com/google-gemini/gemini-cli/pull/20112)
412
+ [#20607](https://github.com/google-gemini/gemini-cli/pull/20607)
334
413
 
335
414
  **Full Changelog**:
336
- https://github.com/google-gemini/gemini-cli/compare/v0.29.7...v0.30.1
415
+ https://github.com/google-gemini/gemini-cli/compare/v0.30.1...v0.31.0