@google/gemini-cli-core 0.59.0-preview.0 → 0.60.0-nightly.20260904.g87a9c71d5

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 (40) hide show
  1. package/dist/bundled/chrome-devtools-mcp.mjs +1 -1
  2. package/dist/bundled/third_party/index.js +1 -1
  3. package/dist/docs/changelogs/index.md +20 -0
  4. package/dist/docs/changelogs/latest.md +32 -281
  5. package/dist/docs/changelogs/preview.md +18 -31
  6. package/dist/docs/reference/tools.md +4 -4
  7. package/dist/docs/tools/mcp-server.md +53 -0
  8. package/dist/docs/tools/web-fetch.md +7 -3
  9. package/dist/google-gemini-cli-core-0.60.0-nightly.20260901.g0bd1d4397.tgz +0 -0
  10. package/dist/src/generated/git-commit.d.ts +2 -2
  11. package/dist/src/generated/git-commit.js +2 -2
  12. package/dist/src/generated/git-commit.js.map +1 -1
  13. package/dist/src/mcp/oauth-provider.js +3 -2
  14. package/dist/src/mcp/oauth-provider.js.map +1 -1
  15. package/dist/src/mcp/oauth-provider.test.js +18 -18
  16. package/dist/src/mcp/oauth-provider.test.js.map +1 -1
  17. package/dist/src/tools/mcp-client.test.js +1 -0
  18. package/dist/src/tools/mcp-client.test.js.map +1 -1
  19. package/dist/src/tools/web-fetch.js +12 -8
  20. package/dist/src/tools/web-fetch.js.map +1 -1
  21. package/dist/src/tools/web-fetch.test.js +11 -11
  22. package/dist/src/tools/web-fetch.test.js.map +1 -1
  23. package/dist/src/utils/cruxKeyLeak.test.d.ts +6 -0
  24. package/dist/src/utils/cruxKeyLeak.test.js +50 -0
  25. package/dist/src/utils/cruxKeyLeak.test.js.map +1 -0
  26. package/dist/src/utils/fetch.d.ts +61 -3
  27. package/dist/src/utils/fetch.js +223 -23
  28. package/dist/src/utils/fetch.js.map +1 -1
  29. package/dist/src/utils/fetch.spec.d.ts +6 -0
  30. package/dist/src/utils/fetch.spec.js +308 -0
  31. package/dist/src/utils/fetch.spec.js.map +1 -0
  32. package/dist/src/utils/fetch.test.js +42 -10
  33. package/dist/src/utils/fetch.test.js.map +1 -1
  34. package/dist/src/utils/oauth-flow.d.ts +10 -1
  35. package/dist/src/utils/oauth-flow.js +85 -2
  36. package/dist/src/utils/oauth-flow.js.map +1 -1
  37. package/dist/src/utils/oauth-flow.test.js +120 -1
  38. package/dist/src/utils/oauth-flow.test.js.map +1 -1
  39. package/dist/tsconfig.tsbuildinfo +1 -1
  40. package/package.json +1 -1
@@ -214893,7 +214893,7 @@ For (2), check out our guide on configuring puppeteer at https://pptr.dev/guides
214893
214893
  };
214894
214894
  str_$n = registerUIStrings("models/crux-manager/CrUXManager.ts", UIStrings$o);
214895
214895
  i18nString$a = getLocalizedString.bind(void 0, str_$n);
214896
- CRUX_API_KEY = "AIzaSyCCSOx25vrb5z0tbedCB3_JRzzbVW6Uwgw";
214896
+ CRUX_API_KEY = (process.env.CRUX_API_KEY || "");
214897
214897
  DEFAULT_ENDPOINT = `https://chromeuxreport.googleapis.com/v1/records:queryRecord?key=${CRUX_API_KEY}`;
214898
214898
  DEVICE_SCOPE_LIST = ["ALL", "DESKTOP", "PHONE"];
214899
214899
  pageScopeList = ["origin", "url"];
@@ -164530,7 +164530,7 @@ const UIStrings$o = {
164530
164530
  };
164531
164531
  const str_$n = registerUIStrings('models/crux-manager/CrUXManager.ts', UIStrings$o);
164532
164532
  const i18nString$a = getLocalizedString.bind(undefined, str_$n);
164533
- const CRUX_API_KEY = 'AIzaSyCCSOx25vrb5z0tbedCB3_JRzzbVW6Uwgw';
164533
+ const CRUX_API_KEY = (process.env.CRUX_API_KEY || "");
164534
164534
  const DEFAULT_ENDPOINT = `https://chromeuxreport.googleapis.com/v1/records:queryRecord?key=${CRUX_API_KEY}`;
164535
164535
  let cruxManagerInstance;
164536
164536
  const DEVICE_SCOPE_LIST = ['ALL', 'DESKTOP', 'PHONE'];
@@ -18,6 +18,26 @@ on GitHub.
18
18
  | [Preview](preview.md) | Experimental features ready for early feedback. |
19
19
  | [Stable](latest.md) | Stable, recommended for general use. |
20
20
 
21
+ ## Announcements: v0.58.0 - 2026-09-01
22
+
23
+ - **Core Security & Path Handling:** Enforced consistent symlink evaluation in
24
+ ignore path handling and declared top-level safety checkers in write policy
25
+ configuration
26
+ ([#28915](https://github.com/google-gemini/gemini-cli/pull/28915),
27
+ [#28961](https://github.com/google-gemini/gemini-cli/pull/28961) by
28
+ @luisfelipe-alt).
29
+ - **macOS Seatbelt Sandbox:** Isolated Docker and container runtime sockets and
30
+ binaries to restrict container runtime access in the macOS sandbox
31
+ ([#28935](https://github.com/google-gemini/gemini-cli/pull/28935) by
32
+ @josebalius).
33
+ - **Session & Recovery Optimizations:** Optimized history rollback mechanics,
34
+ retry nudge prompts, and resolved stale cancellation errors in the
35
+ Agent-to-Agent server
36
+ ([#28934](https://github.com/google-gemini/gemini-cli/pull/28934) by
37
+ @DavidAPierce,
38
+ [#28940](https://github.com/google-gemini/gemini-cli/pull/28940) by
39
+ @amelidev).
40
+
21
41
  ## Announcements: v0.54.0 - 2026-08-06
22
42
 
23
43
  - **PR Automation & Antigravity Agent:** Integrated the Antigravity agent runner
@@ -1,6 +1,6 @@
1
- # Latest stable release: v0.55.1
1
+ # Latest stable release: v0.58.0
2
2
 
3
- Released: August 11, 2026
3
+ Released: September 1, 2026
4
4
 
5
5
  For most users, our latest stable release is the recommended release. Install
6
6
  the latest stable version with:
@@ -11,287 +11,38 @@ npm install -g @google/gemini-cli
11
11
 
12
12
  ## Highlights
13
13
 
14
- - **PR Generation & Antigravity Agent:** Implemented Firestore concurrency
15
- dual-locking mechanisms in the database and introduced the Antigravity agent
16
- runner with comprehensive prompt templates.
17
- - **Caretaker Triaging & Issue Security:** Improved the caretaker triage loop to
18
- post a descriptive comment prior to auto-closing issues, and sanitized issue
19
- titles within an untrusted context to ensure secure processing.
20
- - **Enhanced Authentication & Security:** Enforced strict HTTPS validation for
21
- GoogleCredentialsAuthProvider to block cleartext leakage, and implemented tag
22
- length validation for the file keychain system.
23
- - **Model Fallback & History Filtering:** Resolved stateful API errors by
24
- rotating session IDs on model fallback, optimized conversation history
25
- retrieval by filtering out thought parts when context management is disabled,
26
- and correctly skipped merged function responses when tracking active loops.
14
+ - **Sandbox Security Isolation:** Isolated Docker and container runtime sockets
15
+ and binaries in macOS Seatbelt to restrict unauthorized container execution
16
+ access.
17
+ - **Ignore Path Symlink Evaluation:** Enforced consistent symlink evaluation in
18
+ ignore path handling to prevent path bypass.
19
+ - **Policy Configuration & Safety:** Declared top-level safety checkers in write
20
+ policy configuration for comprehensive safety validation.
21
+ - **History Rollback & Retry Nudge:** Optimized history rollback mechanics and
22
+ retry nudge flows for more robust conversational recovery.
23
+ - **Agent-to-Agent Stability:** Resolved stale cancellation errors on new
24
+ message turns in the Agent-to-Agent server to improve turn recovery.
27
25
 
28
26
  ## What's Changed
29
27
 
30
- - fix/verify release npm ci ignore scripts by @rmedranollamas in
31
- [#28116](https://github.com/google-gemini/gemini-cli/pull/28116)
32
- - fix(ci): prevent workspace binary shadowing in release verification by
33
- @galdawave in [#28132](https://github.com/google-gemini/gemini-cli/pull/28132)
34
- - Feat/tool registry discovery by @ved015 in
35
- [#28113](https://github.com/google-gemini/gemini-cli/pull/28113)
36
- - fix(ci): prevent bad NPM releases and promote job crashes by @galdawave in
37
- [#28147](https://github.com/google-gemini/gemini-cli/pull/28147)
38
- - Changelog for v0.50.0-preview.1 by @gemini-cli-robot in
39
- [#28150](https://github.com/google-gemini/gemini-cli/pull/28150)
40
- - Fix no_proxy test by @jerrylin3321 in
41
- [#28131](https://github.com/google-gemini/gemini-cli/pull/28131)
42
- - chore(release): bump version to 0.51.0-nightly.20260625.g3fbf93e26 by
43
- @gemini-cli-robot in
44
- [#28151](https://github.com/google-gemini/gemini-cli/pull/28151)
45
- - Vertex base url update by @DavidAPierce in
46
- [#28145](https://github.com/google-gemini/gemini-cli/pull/28145)
47
- - fix(security): enforce case-insensitive sensitive path blocklist and vscode
48
- hitl by @luisfelipe-alt in
49
- [#27966](https://github.com/google-gemini/gemini-cli/pull/27966)
50
- - fix(core-tools): resolve defensive path resolution for at-reference files and
51
- fix macOS tests by @luisfelipe-alt in
52
- [#28053](https://github.com/google-gemini/gemini-cli/pull/28053)
53
- - feat(caretaker): implement Cloud Run webhook ingestion service by @chadd28 in
54
- [#28015](https://github.com/google-gemini/gemini-cli/pull/28015)
55
- - fix(core): resolve symbolic link directory escape in memory import processor
56
- by @luisfelipe-alt in
57
- [#28233](https://github.com/google-gemini/gemini-cli/pull/28233)
58
- - feat(caretaker): egress cloud run service skeleton by @chadd28 in
59
- [#28167](https://github.com/google-gemini/gemini-cli/pull/28167)
60
- - fix(sandbox): make ~/.gitconfig read-only in the macOS sandbox by
61
- @ompatel-aiml in
62
- [#28221](https://github.com/google-gemini/gemini-cli/pull/28221)
63
- - fix(core): preserve escape sequences in string literals for modern models by
64
- @luisfelipe-alt in
65
- [#28299](https://github.com/google-gemini/gemini-cli/pull/28299)
66
- - fix(core): strip thoughts from scrubbed history turns and resolve thought
67
- leakage by @amelidev in
68
- [#27971](https://github.com/google-gemini/gemini-cli/pull/27971)
69
- - Refactor: exclude transient CI configuration files from workspace context by
70
- @DavidAPierce in
71
- [#28216](https://github.com/google-gemini/gemini-cli/pull/28216)
72
- - feat(caretaker-triage): add triage worker core foundational modules by
73
- @chadd28 in [#28163](https://github.com/google-gemini/gemini-cli/pull/28163)
74
- - feat(caretaker-egress): implement octokit github action handler for egress
75
- service by @chadd28 in
76
- [#28303](https://github.com/google-gemini/gemini-cli/pull/28303)
77
- - chore(release): bump version to 0.52.0-nightly.20260707.g27a3da3e8 by
78
- @gemini-cli-robot in
79
- [#28323](https://github.com/google-gemini/gemini-cli/pull/28323)
80
- - Changelog for v0.51.0-preview.0 by @gemini-cli-robot in
81
- [#28320](https://github.com/google-gemini/gemini-cli/pull/28320)
82
- - Changelog for v0.50.0 by @gemini-cli-robot in
83
- [#28322](https://github.com/google-gemini/gemini-cli/pull/28322)
84
- - fix(core-tools): bypass LLM correction for JSON and IPYNB files in write_file
85
- and replace by @amelidev in
86
- [#28223](https://github.com/google-gemini/gemini-cli/pull/28223)
87
- - fix(core): use unambiguous previous intent label in fallback summary by
88
- @amelidev in [#28343](https://github.com/google-gemini/gemini-cli/pull/28343)
89
- - feat(caretaker-triage): implement main worker execution loop and egress action
90
- publisher by @chadd28 in
91
- [#28306](https://github.com/google-gemini/gemini-cli/pull/28306)
92
- - fix(privacy): show a clear message when the account has no Code Assist tier by
93
- @ompatel-aiml in
94
- [#28304](https://github.com/google-gemini/gemini-cli/pull/28304)
95
- - fix(core): enrich shared project quota limit errors with setup hint by
96
- @amelidev in [#28391](https://github.com/google-gemini/gemini-cli/pull/28391)
97
- - fix(a2a-server): ensure task cancellation aborts execution loop by
98
- @luisfelipe-alt in
99
- [#28316](https://github.com/google-gemini/gemini-cli/pull/28316)
100
- - fix(core): simplify plan mode write policy to support relative paths by
101
- @DavidAPierce in
102
- [#28398](https://github.com/google-gemini/gemini-cli/pull/28398)
103
- - feat(core): Bump node google-auth-library version to 10.9.0 by @jerrylin3321
104
- in [#28385](https://github.com/google-gemini/gemini-cli/pull/28385)
105
- - chore/release: bump version to 0.52.0-nightly.20260715.gfa975395b by
106
- @gemini-cli-robot in
107
- [#28402](https://github.com/google-gemini/gemini-cli/pull/28402)
108
- - fix(core,a2a): group cancelled tool responses and coalesce consecutive roles
109
- to prevent 400 Bad Request by @luisfelipe-alt in
110
- [#28407](https://github.com/google-gemini/gemini-cli/pull/28407)
111
- - feat(caretaker-triage): implement LLM triage orchestrator and container build
112
- by @chadd28 in
113
- [#28345](https://github.com/google-gemini/gemini-cli/pull/28345)
114
- - refactor(cli): align macOS permissive Seatbelt profiles with deny-default
115
- model by @ompatel-aiml in
116
- [#28424](https://github.com/google-gemini/gemini-cli/pull/28424)
117
- - fix(core): mitigate infinite ReAct loops and prompt injection loops by
118
- @amelidev in [#28429](https://github.com/google-gemini/gemini-cli/pull/28429)
119
- - fix(a2a-server): enforce workspace trust and task isolation to prevent RCE by
120
- @luisfelipe-alt in
121
- [#28470](https://github.com/google-gemini/gemini-cli/pull/28470)
122
- - fix(core): sequentially verify cached credentials and restore
123
- GOOGLE_APPLICATION_CREDENTIALS fallback by @luisfelipe-alt in
124
- [#28472](https://github.com/google-gemini/gemini-cli/pull/28472)
125
- - feat(evals): add eval coverage report command by @ved015 in
126
- [#28169](https://github.com/google-gemini/gemini-cli/pull/28169)
127
- - Changelog for v0.53.0-preview.0 by @gemini-cli-robot in
128
- [#28507](https://github.com/google-gemini/gemini-cli/pull/28507)
129
- - Changelog for v0.52.0 by @gemini-cli-robot in
130
- [#28508](https://github.com/google-gemini/gemini-cli/pull/28508)
131
- - chore(release): bump version to 0.54.0-nightly.20260722.gf743ab579 by
132
- @gemini-cli-robot in
133
- [#28510](https://github.com/google-gemini/gemini-cli/pull/28510)
134
- - fix(caretaker): sanitize and wrap issue title in untrusted_context by @chadd28
135
- in [#28352](https://github.com/google-gemini/gemini-cli/pull/28352)
136
- - chore(caretaker): update vitest to v3.2.4 and add package-lock.json files by
137
- @chadd28 in [#28409](https://github.com/google-gemini/gemini-cli/pull/28409)
138
- - fix(core): rotate session ID on model fallback to prevent stateful API errors
139
- by @amelidev in
140
- [#28469](https://github.com/google-gemini/gemini-cli/pull/28469)
141
- - feat(caretaker-triage): post comment before auto-closing issues by @chadd28 in
142
- [#28411](https://github.com/google-gemini/gemini-cli/pull/28411)
143
- - fix(core): enforce HTTPS for GoogleCredentialsAuthProvider to prevent
144
- cleartext leakage by @amelidev in
145
- [#28517](https://github.com/google-gemini/gemini-cli/pull/28517)
146
- - fix(core): filter out thought parts from getHistoryTurns when context
147
- management is disabled by @DavidAPierce in
148
- [#28509](https://github.com/google-gemini/gemini-cli/pull/28509)
149
- - fix(a2a-server): normalize CRLF line endings to LF in getProposedContent by
150
- @luisfelipe-alt in
151
- [#28531](https://github.com/google-gemini/gemini-cli/pull/28531)
152
- - fix(core): enforce explicit tag length and validation in file keychain by
153
- @luisfelipe-alt in
154
- [#28523](https://github.com/google-gemini/gemini-cli/pull/28523)
155
- - chore/release: bump version to 0.54.0-nightly.20260728.gbef611950 by
156
- @gemini-cli-robot in
157
- [#28552](https://github.com/google-gemini/gemini-cli/pull/28552)
158
- - feat(pr-generator-db): implement Firestore concurrency dual-locking and test
159
- ingestion utilities by @joneba-google in
160
- [#28432](https://github.com/google-gemini/gemini-cli/pull/28432)
161
- - feat(pr-generator-agent): implement Antigravity agent runner and prompt
162
- templates … by @joneba-google in
163
- [#28434](https://github.com/google-gemini/gemini-cli/pull/28434)
164
- - fix(core): skip merged function-response turns when finding the active loop by
165
- @adamfweidman in
166
- [#28565](https://github.com/google-gemini/gemini-cli/pull/28565)
167
- - chore(release): bump version to 0.55.0-nightly.20260728.gd29268d36 by
168
- @gemini-cli-robot in
169
- [#28569](https://github.com/google-gemini/gemini-cli/pull/28569)
170
- - Changelog for v0.54.0-preview.0 by @gemini-cli-robot in
171
- [#28567](https://github.com/google-gemini/gemini-cli/pull/28567)
172
- - Changelog for v0.53.0 by @gemini-cli-robot in
173
- [#28568](https://github.com/google-gemini/gemini-cli/pull/28568)
174
- - chore/release: bump version to 0.55.0-nightly.20260729.g3499c84f7 by
175
- @gemini-cli-robot in
176
- [#28573](https://github.com/google-gemini/gemini-cli/pull/28573)
177
- - fix(core): classify capacity exhaustion as terminal to prevent retry hangs by
178
- @luisfelipe-alt in
179
- [#28599](https://github.com/google-gemini/gemini-cli/pull/28599)
180
- - fix(core,cli): propagate InvalidStreamError details to UI for specific empty
181
- response guidance by @DavidAPierce in
182
- [#28566](https://github.com/google-gemini/gemini-cli/pull/28566)
183
- - fix(cli): fall back to embedded macOS seatbelt profiles if missing by
184
- @amelidev in [#28551](https://github.com/google-gemini/gemini-cli/pull/28551)
185
- - feat(pr-generator-core): add environment config parser, command executor,
186
- GitHub R… by @joneba-google in
187
- [#28435](https://github.com/google-gemini/gemini-cli/pull/28435)
188
- - feat(pr-generator-orchestrator): implement iterative bug-fixing state machine
189
- and container worker entrypoint by @joneba-google in
190
- [#28433](https://github.com/google-gemini/gemini-cli/pull/28433)
191
- - feat(pr-generator-infra): configure Cloud Run job, Workflows definition, and
192
- Dockerfile by @joneba-google in
193
- [#28431](https://github.com/google-gemini/gemini-cli/pull/28431)
194
- - fix(release): handle npm dist-tag deletion failures on registries that forbid
195
- it by @DavidAPierce in
196
- [#28694](https://github.com/google-gemini/gemini-cli/pull/28694)
197
- - fix(core): stop a new user message fusing into an unanswered tool response by
198
- @adamfweidman in
199
- [#28700](https://github.com/google-gemini/gemini-cli/pull/28700)
200
- - fix(core,cli): repair /compress session reload and quota-fallback tool
201
- response loss by @adamfweidman in
202
- [#28672](https://github.com/google-gemini/gemini-cli/pull/28672)
203
- - fix(core): preserve functionCall thoughtSignature when stripping thought parts
204
- by @sarbojitrana in
205
- [#28607](https://github.com/google-gemini/gemini-cli/pull/28607)
206
- - fix(core): unwrap and parse nested gaxios streaming errors from cause message
207
- by @luisfelipe-alt in
208
- [#28689](https://github.com/google-gemini/gemini-cli/pull/28689)
209
- - Changelog for v0.55.0-preview.1 by @gemini-cli-robot in
210
- [#28706](https://github.com/google-gemini/gemini-cli/pull/28706)
211
- - chore(release): bump version to 0.56.0-nightly.20260806.g761f604c1 by
212
- @gemini-cli-robot in
213
- [#28707](https://github.com/google-gemini/gemini-cli/pull/28707)
214
- - Changelog for v0.54.0 by @gemini-cli-robot in
215
- [#28708](https://github.com/google-gemini/gemini-cli/pull/28708)
216
- - Reclassifying Capacity Exhaustion as Terminal Error by @luisfelipe-alt in
217
- [#28716](https://github.com/google-gemini/gemini-cli/pull/28716)
218
- - feat(caretaker): update Firestore schema with error, and pr_number fields by
219
- @chadd28 in [#28467](https://github.com/google-gemini/gemini-cli/pull/28467)
220
- - feat(caretaker-triage): prompt hill-climbing & orchestrator updates by
221
- @chadd28 in [#28524](https://github.com/google-gemini/gemini-cli/pull/28524)
222
- - feat(caretaker): add triage Cloud Run job workflow by @chadd28 in
223
- [#28468](https://github.com/google-gemini/gemini-cli/pull/28468)
224
- - feat(caretaker-evals): add triage evaluation framework and judge runner by
225
- @chadd28 in [#28530](https://github.com/google-gemini/gemini-cli/pull/28530)
226
- - feat(caretaker-evals): add local golden issue collection and firestore sync
227
- tools by @chadd28 in
228
- [#28532](https://github.com/google-gemini/gemini-cli/pull/28532)
229
- - feat(caretaker): publish workable spec event to ready-for-code Pub/Sub topic
230
- by @chadd28 in
231
- [#28588](https://github.com/google-gemini/gemini-cli/pull/28588)
232
- - feat(caretaker): add GCP deployment script for caretaker agent services by
233
- @chadd28 in [#28529](https://github.com/google-gemini/gemini-cli/pull/28529)
234
- - feat(caretaker-evals): add Cloud Run job entrypoint for eval runner by
235
- @chadd28 in [#28727](https://github.com/google-gemini/gemini-cli/pull/28727)
236
- - fix(caretaker): clear lock on NEEDS_HUMAN transition by @chadd28 in
237
- [#28601](https://github.com/google-gemini/gemini-cli/pull/28601)
238
- - feat(ingestion): add issue comment handling and re-triage workflow by @chadd28
239
- in [#28690](https://github.com/google-gemini/gemini-cli/pull/28690)
240
- - fix(core): refresh MCP OAuth tokens with the stored client ID by
241
- @ParthivNaresh in
242
- [#28481](https://github.com/google-gemini/gemini-cli/pull/28481)
243
- - fix(core,cli): resolve false model capacity exhaustion and fix core quota
244
- lookup model mapping by @DavidAPierce in
245
- [#28730](https://github.com/google-gemini/gemini-cli/pull/28730)
246
- - feat(evals): add local report command and developer documentation by @ved015
247
- in [#28369](https://github.com/google-gemini/gemini-cli/pull/28369)
248
- - fix(core): dynamically resolve Cloud Workstations proxy redirect URI for OAuth
249
- flows by @amelidev in
250
- [#28688](https://github.com/google-gemini/gemini-cli/pull/28688)
251
- - Changelog for v0.53.0-preview.0 by @gemini-cli-robot in
252
- [#28507](https://github.com/google-gemini/gemini-cli/pull/28507)
253
- - Changelog for v0.52.0 by @gemini-cli-robot in
254
- [#28508](https://github.com/google-gemini/gemini-cli/pull/28508)
255
- - chore(release): bump version to 0.54.0-nightly.20260722.gf743ab579 by
256
- @gemini-cli-robot in
257
- [#28510](https://github.com/google-gemini/gemini-cli/pull/28510)
258
- - fix(caretaker): sanitize and wrap issue title in untrusted_context by @chadd28
259
- in [#28352](https://github.com/google-gemini/gemini-cli/pull/28352)
260
- - chore(caretaker): update vitest to v3.2.4 and add package-lock.json files by
261
- @chadd28 in [#28409](https://github.com/google-gemini/gemini-cli/pull/28409)
262
- - fix(core): rotate session ID on model fallback to prevent stateful API errors
263
- by @amelidev in
264
- [#28469](https://github.com/google-gemini/gemini-cli/pull/28469)
265
- - feat(caretaker-triage): post comment before auto-closing issues by @chadd28 in
266
- [#28411](https://github.com/google-gemini/gemini-cli/pull/28411)
267
- - fix(core): enforce HTTPS for GoogleCredentialsAuthProvider to prevent
268
- cleartext leakage by @amelidev in
269
- [#28517](https://github.com/google-gemini/gemini-cli/pull/28517)
270
- - fix(core): filter out thought parts from getHistoryTurns when context
271
- management is disabled by @DavidAPierce in
272
- [#28509](https://github.com/google-gemini/gemini-cli/pull/28509)
273
- - fix(a2a-server): normalize CRLF line endings to LF in getProposedContent by
274
- @luisfelipe-alt in
275
- [#28531](https://github.com/google-gemini/gemini-cli/pull/28531)
276
- - fix(core): enforce explicit tag length and validation in file keychain by
277
- @luisfelipe-alt in
278
- [#28523](https://github.com/google-gemini/gemini-cli/pull/28523)
279
- - chore/release: bump version to 0.54.0-nightly.20260728.gbef611950 by
280
- @gemini-cli-robot in
281
- [#28552](https://github.com/google-gemini/gemini-cli/pull/28552)
282
- - feat(pr-generator-db): implement Firestore concurrency dual-locking and test
283
- ingestion utilities by @joneba-google in
284
- [#28432](https://github.com/google-gemini/gemini-cli/pull/28432)
285
- - feat(pr-generator-agent): implement Antigravity agent runner and prompt
286
- templates … by @joneba-google in
287
- [#28434](https://github.com/google-gemini/gemini-cli/pull/28434)
288
- - fix(core): skip merged function-response turns when finding the active loop by
289
- @adamfweidman in
290
- [#28565](https://github.com/google-gemini/gemini-cli/pull/28565)
291
- - fix(patch): cherry-pick f47d6c6 to release/v0.54.0-preview.0-pr-28566 to patch
292
- version v0.54.0-preview.0 and create version 0.54.0-preview.1 by
293
- @gemini-cli-robot in
294
- [#28609](https://github.com/google-gemini/gemini-cli/pull/28609)
28
+ - Changelog for v0.57.0-preview.0 by @gemini-cli-robot in
29
+ [#28918](https://github.com/google-gemini/gemini-cli/pull/28918)
30
+ - fix(core): ensure consistent symlink evaluation in ignore path handling by
31
+ @luisfelipe-alt in
32
+ [#28915](https://github.com/google-gemini/gemini-cli/pull/28915)
33
+ - refactor(core): remove eslint-disable and type-asserts from
34
+ shellExecutionService by @DavidAPierce in
35
+ [#28862](https://github.com/google-gemini/gemini-cli/pull/28862)
36
+ - fix(sandbox): isolate Docker and container runtime sockets and binaries in
37
+ macOS Seatbelt by @josebalius in
38
+ [#28935](https://github.com/google-gemini/gemini-cli/pull/28935)
39
+ - fix(a2a-server): clear stale cancellation error on new message turns by
40
+ @amelidev in [#28940](https://github.com/google-gemini/gemini-cli/pull/28940)
41
+ - fix(core): declare top-level safety checkers in write policy configuration by
42
+ @luisfelipe-alt in
43
+ [#28961](https://github.com/google-gemini/gemini-cli/pull/28961)
44
+ - (FIX) history rollback and retry nudge optimizations by @DavidAPierce in
45
+ [#28934](https://github.com/google-gemini/gemini-cli/pull/28934)
295
46
 
296
47
  **Full Changelog**:
297
- https://github.com/google-gemini/gemini-cli/compare/v0.53.1...v0.55.1
48
+ https://github.com/google-gemini/gemini-cli/compare/v0.57.0...v0.58.0
@@ -1,6 +1,6 @@
1
- # Preview release: v0.58.0-preview.0
1
+ # Preview release: v0.59.0-preview.0
2
2
 
3
- Released: August 25, 2026
3
+ Released: September 1, 2026
4
4
 
5
5
  Our preview release includes the latest, new, and experimental features. This
6
6
  release may not be as stable as our [latest weekly release](latest.md).
@@ -13,37 +13,24 @@ npm install -g @google/gemini-cli@preview
13
13
 
14
14
  ## Highlights
15
15
 
16
- - **Sandbox Security Enhancements**: Isolated Docker and container runtime
17
- sockets and binaries in macOS Seatbelt to improve sandbox safety.
18
- - **Core Path Resolution Fixes**: Ensured consistent symlink evaluation in
19
- ignore path handling within core services.
20
- - **History & Retry Optimizations**: Enhanced history rollback and optimized
21
- retry nudges for smoother session management.
22
- - **A2A Server Resilience**: Cleared stale cancellation errors on new message
23
- turns to prevent incorrect error states.
24
- - **Write Policy & Safety Improvements**: Declared top-level safety checkers in
25
- the write policy configuration to strengthen execution guardrails.
16
+ - **MCP Security Enhancements**: Prevented Server-Side Request Forgery (SSRF) in
17
+ Model Context Protocol (MCP) OAuth metadata discovery and authentication.
18
+ - **Restricted Mode Strengthening**: Enforced fail-closed workspace trust and
19
+ implemented filtering for MCP servers when running in restricted mode.
26
20
 
27
21
  ## What's Changed
28
22
 
29
- - Changelog for v0.57.0-preview.0 by @gemini-cli-robot in
30
- [#28918](https://github.com/google-gemini/gemini-cli/pull/28918)
31
- - fix(core): ensure consistent symlink evaluation in ignore path handling by
32
- @luisfelipe-alt in
33
- [#28915](https://github.com/google-gemini/gemini-cli/pull/28915)
34
- - refactor(core): remove eslint-disable and type-asserts from
35
- shellExecutionService by @DavidAPierce in
36
- [#28862](https://github.com/google-gemini/gemini-cli/pull/28862)
37
- - fix(sandbox): isolate Docker and container runtime sockets and binaries in
38
- macOS Seatbelt by @josebalius in
39
- [#28935](https://github.com/google-gemini/gemini-cli/pull/28935)
40
- - fix(a2a-server): clear stale cancellation error on new message turns by
41
- @amelidev in [#28940](https://github.com/google-gemini/gemini-cli/pull/28940)
42
- - fix(core): declare top-level safety checkers in write policy configuration by
43
- @luisfelipe-alt in
44
- [#28961](https://github.com/google-gemini/gemini-cli/pull/28961)
45
- - (FIX) history rollback and retry nudge optimizations by @DavidAPierce in
46
- [#28934](https://github.com/google-gemini/gemini-cli/pull/28934)
23
+ - Changelog for v0.58.0-preview.0 by @gemini-cli-robot in
24
+ [#29082](https://github.com/google-gemini/gemini-cli/pull/29082)
25
+ - chore(release): bump version to 0.59.0-nightly.20260825.g812f7a2bc by
26
+ @gemini-cli-robot in
27
+ [#29083](https://github.com/google-gemini/gemini-cli/pull/29083)
28
+ - fix(core): prevent SSRF in MCP OAuth metadata discovery and authentication by
29
+ @josebalius in
30
+ [#29081](https://github.com/google-gemini/gemini-cli/pull/29081)
31
+ - fix(core): enforce fail-closed workspace trust and filter mcpServers in
32
+ restricted mode by @luisfelipe-alt in
33
+ [#29099](https://github.com/google-gemini/gemini-cli/pull/29099)
47
34
 
48
35
  **Full Changelog**:
49
- https://github.com/google-gemini/gemini-cli/compare/v0.57.0-preview.1...v0.58.0-preview.0
36
+ https://github.com/google-gemini/gemini-cli/compare/v0.58.0-preview.0...v0.59.0-preview.0
@@ -148,10 +148,10 @@ each tool.
148
148
 
149
149
  ### Web
150
150
 
151
- | Tool | Kind | Description |
152
- | :-------------------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
153
- | [`google_web_search`](../tools/web-search.md) | `Search` | Performs a Google Search to find up-to-date information. |
154
- | [`web_fetch`](../tools/web-fetch.md) | `Fetch` | Retrieves and processes content from specific URLs. **Warning:** This tool can access local and private network addresses (for example, localhost), which may pose a security risk if used with untrusted prompts. In Plan Mode, this tool requires explicit user confirmation. |
151
+ | Tool | Kind | Description |
152
+ | :-------------------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
153
+ | [`google_web_search`](../tools/web-search.md) | `Search` | Performs a Google Search to find up-to-date information. |
154
+ | [`web_fetch`](../tools/web-fetch.md) | `Fetch` | Retrieves and processes content from specific URLs. Outbound requests are validated against private and reserved IP ranges. In Plan Mode, this tool requires explicit user confirmation. |
155
155
 
156
156
  ### Tool argument keys
157
157
 
@@ -322,6 +322,57 @@ This feature will not work in:
322
322
  - Remote SSH sessions without X11 forwarding
323
323
  - Containerized environments without browser support
324
324
 
325
+ #### Authorization server requirements (RFC 9207)
326
+
327
+ <!-- prettier-ignore -->
328
+ > [!IMPORTANT]
329
+ > To protect against OAuth Identity Provider (IdP) mix-up attacks, Gemini CLI
330
+ > validates the `iss` (issuer) parameter per
331
+ > [RFC 9207](https://www.rfc-editor.org/rfc/rfc9207). When an expected issuer is
332
+ > discovered or configured, authorization servers **must** return the `iss`
333
+ > parameter in the callback redirect matching the issuer URL. Responses missing
334
+ > `iss` or with mismatched issuers are rejected with HTTP 400.
335
+
336
+ ##### Expected authorization callback example
337
+
338
+ When the authorization server redirects the user back to Gemini CLI, the
339
+ redirect URI must include the `iss` parameter:
340
+
341
+ ```http
342
+ HTTP/1.1 302 Found
343
+ Location: http://localhost:<port>/oauth/callback?code=AUTH_CODE&state=STATE&iss=https%3A%2F%2Fauth.example.com
344
+ ```
345
+
346
+ - **Valid response (accepted):** `iss` matches the configured or discovered
347
+ issuer (`https://auth.example.com`).
348
+ - **Missing `iss` (rejected):**
349
+ `http://localhost:<port>/oauth/callback?code=AUTH_CODE&state=STATE` (fails
350
+ with HTTP 400: `Missing issuer parameter in response`).
351
+ - **Mismatched `iss` (rejected):** `iss` points to a different domain or
352
+ includes userinfo (fails with HTTP 400: `Issuer mismatch`).
353
+
354
+ ##### Configuration example with explicit issuer
355
+
356
+ If your remote MCP server uses an authorization server with a known issuer URL:
357
+
358
+ ```json
359
+ {
360
+ "mcpServers": {
361
+ "secureRemoteServer": {
362
+ "url": "https://mcp.example.com/sse",
363
+ "oauth": {
364
+ "enabled": true,
365
+ "issuer": "https://auth.example.com",
366
+ "authorizationUrl": "https://auth.example.com/oauth/authorize",
367
+ "tokenUrl": "https://auth.example.com/oauth/token",
368
+ "clientId": "gemini-cli-client",
369
+ "scopes": ["mcp:read", "mcp:write"]
370
+ }
371
+ }
372
+ }
373
+ }
374
+ ```
375
+
325
376
  #### Managing OAuth authentication
326
377
 
327
378
  Use the `/mcp auth` command to manage OAuth authentication:
@@ -345,6 +396,8 @@ Use the `/mcp auth` command to manage OAuth authentication:
345
396
  - **`clientSecret`** (string): OAuth client secret (optional for public clients)
346
397
  - **`authorizationUrl`** (string): OAuth authorization endpoint (auto-discovered
347
398
  if omitted)
399
+ - **`issuer`** (string): Authorization server issuer URL (auto-discovered if
400
+ omitted; validated per RFC 9207)
348
401
  - **`tokenUrl`** (string): OAuth token endpoint (auto-discovered if omitted)
349
402
  - **`scopes`** (string[]): Required OAuth scopes
350
403
  - **`redirectUri`** (string): Custom redirect URI (defaults to an OS-assigned
@@ -16,13 +16,17 @@ specific operations like summarization or extraction.
16
16
 
17
17
  ## Technical behavior
18
18
 
19
+ - **Network access:** Destination URLs and resolved IP addresses are validated
20
+ to restrict access to private, reserved, loopback, and internal networks
21
+ (e.g., RFC 1918 addresses and internal domains). Transport connections are
22
+ pinned to the resolved destination IP address.
19
23
  - **Confirmation:** Triggers a confirmation dialog showing the converted URLs.
20
24
  - **Plan Mode:** In [Plan Mode](../cli/plan-mode.md), `web_fetch` is available
21
- but always requires explicit user confirmation (`ask_user`) due to security
22
- implications of accessing external or private network addresses.
25
+ but always requires explicit user confirmation (`ask_user`).
23
26
  - **Processing:** Uses the Gemini API's `urlContext` for retrieval.
24
27
  - **Fallback:** If API access fails, the tool attempts to fetch raw content
25
- directly from your local machine.
28
+ directly from your local machine (with destination IP validation and
29
+ connection pinning applied).
26
30
  - **Formatting:** Returns a synthesized response with source attribution.
27
31
 
28
32
  ## Use cases
@@ -3,5 +3,5 @@
3
3
  * Copyright 2026 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- export declare const GIT_COMMIT_INFO = "0bd1d4397";
7
- export declare const CLI_VERSION = "0.59.0-preview.0";
6
+ export declare const GIT_COMMIT_INFO = "87a9c71d5";
7
+ export declare const CLI_VERSION = "0.60.0-nightly.20260904.g87a9c71d5";
@@ -5,6 +5,6 @@
5
5
  */
6
6
  // This file is auto-generated by the build script (scripts/generate-git-commit-info.js)
7
7
  // Do not edit this file manually.
8
- export const GIT_COMMIT_INFO = '0bd1d4397';
9
- export const CLI_VERSION = '0.59.0-preview.0';
8
+ export const GIT_COMMIT_INFO = '87a9c71d5';
9
+ export const CLI_VERSION = '0.60.0-nightly.20260904.g87a9c71d5';
10
10
  //# sourceMappingURL=git-commit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"git-commit.js","sourceRoot":"","sources":["../../../src/generated/git-commit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wFAAwF;AACxF,kCAAkC;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;AAC3C,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,CAAC"}
1
+ {"version":3,"file":"git-commit.js","sourceRoot":"","sources":["../../../src/generated/git-commit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wFAAwF;AACxF,kCAAkC;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;AAC3C,MAAM,CAAC,MAAM,WAAW,GAAG,oCAAoC,CAAC"}
@@ -244,8 +244,9 @@ export class MCPOAuthProvider {
244
244
  // Determine preferred port from redirectUri if available
245
245
  const preferredPort = getPortFromUrl(config.redirectUri);
246
246
  // Start callback server first to allocate port
247
- // This ensures we only create one server and eliminates race conditions
248
- const callbackServer = startCallbackServer(pkceParams.state, preferredPort);
247
+ // Pass config.issuer for RFC 9207 Authorization Server Issuer Identification / Mix-Up defense
248
+ debugLogger.debug(`Starting callback server for "${serverName}" (expected issuer: ${config.issuer || 'none'})...`);
249
+ const callbackServer = startCallbackServer(pkceParams.state, preferredPort, config.issuer);
249
250
  // Wait for server to start and get the allocated port
250
251
  // We need this port for client registration and auth URL building
251
252
  const redirectPort = await callbackServer.port;