@google/gemini-cli 0.60.0-preview.0 → 0.61.0-nightly.20260910.ged2ac40df

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 (69) hide show
  1. package/bundle/{chunk-SZWITNYT.js → chunk-2QZM4LJN.js} +1 -1
  2. package/bundle/{chunk-ZX526LXA.js → chunk-3OTKJGN2.js} +7 -7
  3. package/bundle/{chunk-ZOCA7DR7.js → chunk-4GFDY7WB.js} +2 -2
  4. package/bundle/{chunk-JO3EXXPQ.js → chunk-53VIROYL.js} +1 -1
  5. package/bundle/{chunk-RY7G2LHR.js → chunk-5RBKI65Z.js} +1 -1
  6. package/bundle/{chunk-FZ5V6AOR.js → chunk-6SVZC6SZ.js} +1 -1
  7. package/bundle/{chunk-AS5HUHJQ.js → chunk-6TKDB4RW.js} +1 -1
  8. package/bundle/{chunk-WSRDZIEX.js → chunk-72RRXB4E.js} +8 -5
  9. package/bundle/{chunk-MHUSLH6Z.js → chunk-BFF47G2T.js} +67 -54
  10. package/bundle/{chunk-6JC2DFFV.js → chunk-CMP3WNPY.js} +7 -7
  11. package/bundle/{chunk-HSV5XF4Y.js → chunk-DHG4ARAF.js} +1 -1
  12. package/bundle/{chunk-3BBEM33B.js → chunk-G2HNVZYL.js} +1 -1
  13. package/bundle/{chunk-MNWBDZEW.js → chunk-GTUUXLUY.js} +1 -1
  14. package/bundle/{chunk-GXZJHUYG.js → chunk-KG5DGMJV.js} +3 -3
  15. package/bundle/{chunk-MOFAO64Q.js → chunk-KNYCFGTX.js} +1 -1
  16. package/bundle/{chunk-CJ3F2CF4.js → chunk-KZT23R5R.js} +2 -2
  17. package/bundle/{chunk-OXCETUAV.js → chunk-LNLXANUU.js} +9 -8
  18. package/bundle/chunk-MXKFKSG4.js +399011 -0
  19. package/bundle/chunk-OZHDMU2F.js +154 -0
  20. package/bundle/{chunk-VWG6RSQF.js → chunk-OZVST7GR.js} +3 -3
  21. package/bundle/{chunk-B35ENJ4E.js → chunk-PGLYJVDY.js} +2 -2
  22. package/bundle/chunk-Q5JCV3BH.js +17353 -0
  23. package/bundle/chunk-QU5RSCXN.js +512 -0
  24. package/bundle/chunk-QZJZIVUG.js +398 -0
  25. package/bundle/{chunk-KJ3DSGP6.js → chunk-RRFXRV32.js} +7 -7
  26. package/bundle/{chunk-Z3ZCNEN5.js → chunk-UBRBPMXX.js} +3 -3
  27. package/bundle/{chunk-CBLSL3EM.js → chunk-V2DJ3GMS.js} +1 -1
  28. package/bundle/{chunk-QKQP4OAM.js → chunk-V34DFXBX.js} +7748 -14586
  29. package/bundle/chunk-VRALRT3P.js +1571 -0
  30. package/bundle/{chunk-IIXMDKNQ.js → chunk-W5JPEXLZ.js} +7 -7
  31. package/bundle/chunk-XGFMBHG3.js +102670 -0
  32. package/bundle/chunk-YLYKYWW3.js +118 -0
  33. package/bundle/{cleanup-3NLZUFCB.js → cleanup-AK7434A7.js} +2 -2
  34. package/bundle/{cleanup-WA2HUZYP.js → cleanup-JTG5TRZP.js} +2 -2
  35. package/bundle/{cleanup-WSQUEKV4.js → cleanup-MJXZWPAB.js} +2 -2
  36. package/bundle/cleanup-W7HO5CNI.js +32 -0
  37. package/bundle/{core-X7B62CE3.js → core-TD3QT7YV.js} +1 -1
  38. package/bundle/{devtoolsService-IFCLCSNA.js → devtoolsService-BGFJ6VEB.js} +2 -2
  39. package/bundle/{devtoolsService-4UGAYGLM.js → devtoolsService-HZ4GVNIF.js} +2 -2
  40. package/bundle/{devtoolsService-77KBSPWB.js → devtoolsService-IEHCU262.js} +4 -3
  41. package/bundle/devtoolsService-MM4VAG36.js +4359 -0
  42. package/bundle/{dist-VKHG4X3B.js → dist-CVIHLQWK.js} +1 -1
  43. package/bundle/{core-25XEBKOQ.js → dist-LILFBCD6.js} +1 -1
  44. package/bundle/dist-S2NRVNNH.js +2216 -0
  45. package/bundle/docs/changelogs/index.md +12 -0
  46. package/bundle/docs/changelogs/latest.md +22 -32
  47. package/bundle/docs/changelogs/preview.md +54 -17
  48. package/bundle/{gemini-4L7IGTB3.js → gemini-JE6ATRM2.js} +14 -14
  49. package/bundle/{gemini-MPHWQGRY.js → gemini-UAYFDFHZ.js} +214 -198
  50. package/bundle/{gemini-CXRDUIMP.js → gemini-ZMC7Y4M5.js} +14 -14
  51. package/bundle/gemini-ZYZPV75S.js +17432 -0
  52. package/bundle/gemini.js +7 -7
  53. package/bundle/{interactiveCli-JODN5SQN.js → interactiveCli-CDZPTKWD.js} +8 -8
  54. package/bundle/{interactiveCli-DVEN62HN.js → interactiveCli-CINZJAW3.js} +315 -296
  55. package/bundle/{interactiveCli-RJOWMONA.js → interactiveCli-DPNMRBAJ.js} +8 -8
  56. package/bundle/interactiveCli-SHWIRB7J.js +34983 -0
  57. package/bundle/{liteRtServerManager-4SSYZUK3.js → liteRtServerManager-2HEYKFZ4.js} +4 -4
  58. package/bundle/{liteRtServerManager-M3O7V7NG.js → liteRtServerManager-CIEEHOLV.js} +4 -4
  59. package/bundle/{liteRtServerManager-2BNWXU4Z.js → liteRtServerManager-DTHM5I53.js} +4 -4
  60. package/bundle/liteRtServerManager-YKNVLCAP.js +65 -0
  61. package/bundle/{oauth2-provider-AB6H7OQC.js → oauth2-provider-4A2OGPBN.js} +1 -1
  62. package/bundle/{oauth2-provider-4YN5U44E.js → oauth2-provider-NOMBCN3D.js} +38 -72
  63. package/bundle/oauth2-provider-T6KKWELC.js +235 -0
  64. package/bundle/{oauth2-provider-RN6EIMPY.js → oauth2-provider-UMQ4PPFM.js} +1 -1
  65. package/bundle/{start-GCL5I7SK.js → start-CVRMCPJA.js} +6 -6
  66. package/bundle/{start-S3YRO6NU.js → start-JPSB6LGS.js} +6 -6
  67. package/bundle/{start-26ICYOUJ.js → start-M4RCGGY7.js} +6 -6
  68. package/bundle/start-PQKM3CTE.js +18 -0
  69. package/package.json +1 -1
@@ -18,6 +18,18 @@ 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.59.0 - 2026-09-08
22
+
23
+ - **MCP OAuth SSRF Mitigation:** Prevented Server-Side Request Forgery (SSRF)
24
+ during Model Context Protocol (MCP) OAuth metadata discovery and
25
+ authentication
26
+ ([#29081](https://github.com/google-gemini/gemini-cli/pull/29081) by
27
+ @josebalius).
28
+ - **Fail-Closed Workspace Trust:** Enforced a secure, fail-closed workspace
29
+ trust policy and filtered available `mcpServers` when operating in restricted
30
+ mode ([#29099](https://github.com/google-gemini/gemini-cli/pull/29099) by
31
+ @luisfelipe-alt).
32
+
21
33
  ## Announcements: v0.58.0 - 2026-09-01
22
34
 
23
35
  - **Core Security & Path Handling:** Enforced consistent symlink evaluation in
@@ -1,6 +1,6 @@
1
- # Latest stable release: v0.58.0
1
+ # Latest stable release: v0.59.0
2
2
 
3
- Released: September 1, 2026
3
+ Released: September 8, 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,38 +11,28 @@ npm install -g @google/gemini-cli
11
11
 
12
12
  ## Highlights
13
13
 
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.
14
+ - **SSRF Prevention in MCP OAuth:** Prevented Server-Side Request Forgery (SSRF)
15
+ in Model Context Protocol (MCP) OAuth metadata discovery and authentication to
16
+ secure remote integrations.
17
+ - **Fail-Closed Workspace Trust:** Enforced a fail-closed workspace trust model
18
+ to ensure security by default when accessing untrusted workspaces.
19
+ - **Restricted Mode MCP Filtering:** Filtered available Model Context Protocol
20
+ (MCP) servers under restricted execution modes to minimize potential attack
21
+ surfaces.
25
22
 
26
23
  ## What's Changed
27
24
 
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)
25
+ - Changelog for v0.58.0-preview.0 by @gemini-cli-robot in
26
+ [#29082](https://github.com/google-gemini/gemini-cli/pull/29082)
27
+ - chore(release): bump version to 0.59.0-nightly.20260825.g812f7a2bc by
28
+ @gemini-cli-robot in
29
+ [#29083](https://github.com/google-gemini/gemini-cli/pull/29083)
30
+ - fix(core): prevent SSRF in MCP OAuth metadata discovery and authentication by
31
+ @josebalius in
32
+ [#29081](https://github.com/google-gemini/gemini-cli/pull/29081)
33
+ - fix(core): enforce fail-closed workspace trust and filter mcpServers in
34
+ restricted mode by @luisfelipe-alt in
35
+ [#29099](https://github.com/google-gemini/gemini-cli/pull/29099)
46
36
 
47
37
  **Full Changelog**:
48
- https://github.com/google-gemini/gemini-cli/compare/v0.57.0...v0.58.0
38
+ https://github.com/google-gemini/gemini-cli/compare/v0.58.0...v0.59.0
@@ -1,6 +1,6 @@
1
- # Preview release: v0.59.0-preview.0
1
+ # Preview release: v0.60.0-preview.0
2
2
 
3
- Released: September 1, 2026
3
+ Released: September 8, 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,24 +13,61 @@ npm install -g @google/gemini-cli@preview
13
13
 
14
14
  ## Highlights
15
15
 
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.
16
+ - **Workspace and Path Safety**: Enhanced path boundary checks, symlink
17
+ resolution, and mitigation of NTFS 8.3 short name (SFN) bypasses in command
18
+ safety and file discovery.
19
+ - **Sandbox Isolation**: Isolated settings directories within sandbox containers
20
+ and temporary directories for macOS Seatbelt sandbox to restrict access.
21
+ - **Extension Loader Hardening**: Hardened path resolution and boundary
22
+ validation in extension loader, with new consent prompts for runtime
23
+ environment changes.
24
+ - **Network and OAuth Security**: Improved destination validation and connection
25
+ routing in web fetch utilities, and enforced RFC 9207 issuer identification in
26
+ the MCP OAuth flow.
27
+ - **Tool Output Provenance**: Enforced envelope metadata provenance for
28
+ untrusted tool outputs to guarantee integrity.
20
29
 
21
30
  ## What's Changed
22
31
 
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
32
+ - fix(core): improve destination validation and connection routing in web fetch
33
+ utilities by @diegogodinezr in
34
+ [#29120](https://github.com/google-gemini/gemini-cli/pull/29120)
35
+ - fix(core): enforce RFC 9207 issuer identification in MCP OAuth flow by
36
+ @jvargassanchez-dot in
37
+ [#29117](https://github.com/google-gemini/gemini-cli/pull/29117)
38
+ - chore(release): bump version to 0.60.0-nightly.20260901.g0bd1d4397 by
26
39
  @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)
40
+ [#29162](https://github.com/google-gemini/gemini-cli/pull/29162)
41
+ - Changelog for v0.58.0 by @gemini-cli-robot in
42
+ [#29161](https://github.com/google-gemini/gemini-cli/pull/29161)
43
+ - fix(cli): isolate temporary directory for macOS Seatbelt sandbox by
44
+ @jvargassanchez-dot in
45
+ [#29171](https://github.com/google-gemini/gemini-cli/pull/29171)
46
+ - feat(extensions): harden path resolution and boundary validation in extension
47
+ loader by @diegogodinezr in
48
+ [#29169](https://github.com/google-gemini/gemini-cli/pull/29169)
49
+ - Changelog for v0.59.0-preview.0 by @gemini-cli-robot in
50
+ [#29159](https://github.com/google-gemini/gemini-cli/pull/29159)
51
+ - fix(core): sanitize and remove hardcoded Google CrUX API key in
52
+ chrome-devtools-mcp by @amelidev in
53
+ [#29158](https://github.com/google-gemini/gemini-cli/pull/29158)
54
+ - fix(extensions): prompt for consent on environment changes and sanitize
55
+ runtime-altering environment variables by @amelidev in
56
+ [#28863](https://github.com/google-gemini/gemini-cli/pull/28863)
57
+ - fix(core): enhance workspace path boundary checks and symlink resolution in
58
+ command safety and file discovery by @jesussamuel-byte in
59
+ [#29170](https://github.com/google-gemini/gemini-cli/pull/29170)
60
+ - fix(config): enforce strict permission and ownership checks on system-wide
61
+ configuration paths by @jesussamuel-byte in
62
+ [#29115](https://github.com/google-gemini/gemini-cli/pull/29115)
63
+ - fix(core): mitigate NTFS 8.3 short name (SFN) path by @urielefrenvirtusa in
64
+ [#29116](https://github.com/google-gemini/gemini-cli/pull/29116)
65
+ - fix(cli): isolate settings directory in sandbox containers by
66
+ @jvargassanchez-dot in
67
+ [#29216](https://github.com/google-gemini/gemini-cli/pull/29216)
68
+ - fix(core): enforce envelope metadata provenance for untrusted tool outputs by
69
+ @luisfelipe-alt in
70
+ [#29215](https://github.com/google-gemini/gemini-cli/pull/29215)
34
71
 
35
72
  **Full Changelog**:
36
- https://github.com/google-gemini/gemini-cli/compare/v0.58.0-preview.0...v0.59.0-preview.0
73
+ https://github.com/google-gemini/gemini-cli/compare/v0.59.0-preview.0...v0.60.0-preview.0
@@ -2,7 +2,7 @@ const require = (await import('node:module')).createRequire(import.meta.url); co
2
2
  import {
3
3
  startCommand,
4
4
  startServer
5
- } from "./chunk-Z3ZCNEN5.js";
5
+ } from "./chunk-UBRBPMXX.js";
6
6
  import {
7
7
  BuiltinCommandLoader,
8
8
  CommandService,
@@ -46,11 +46,11 @@ import {
46
46
  updateExtension,
47
47
  validateAuthMethod,
48
48
  validateContextFilePath
49
- } from "./chunk-ZX526LXA.js";
49
+ } from "./chunk-XGFMBHG3.js";
50
50
  import {
51
51
  exitCli,
52
52
  require_source
53
- } from "./chunk-FZ5V6AOR.js";
53
+ } from "./chunk-KNYCFGTX.js";
54
54
  import {
55
55
  appEvents
56
56
  } from "./chunk-5PS3AYFU.js";
@@ -88,11 +88,11 @@ import {
88
88
  resolveGemmaConfig,
89
89
  saveModelChange,
90
90
  stripAnsi
91
- } from "./chunk-RY7G2LHR.js";
91
+ } from "./chunk-Q5JCV3BH.js";
92
92
  import {
93
93
  RELAUNCH_EXIT_CODE
94
- } from "./chunk-ZOCA7DR7.js";
95
- import "./chunk-SZWITNYT.js";
94
+ } from "./chunk-QZJZIVUG.js";
95
+ import "./chunk-2QZM4LJN.js";
96
96
  import {
97
97
  cleanupCheckpoints,
98
98
  registerCleanup,
@@ -101,7 +101,7 @@ import {
101
101
  runExitCleanup,
102
102
  runSyncCleanup,
103
103
  setupSignalHandlers
104
- } from "./chunk-AS5HUHJQ.js";
104
+ } from "./chunk-GTUUXLUY.js";
105
105
  import {
106
106
  ASK_USER_TOOL_NAME,
107
107
  ApprovalMode,
@@ -255,7 +255,7 @@ import {
255
255
  updatePolicy,
256
256
  writeToStderr,
257
257
  writeToStdout
258
- } from "./chunk-6JC2DFFV.js";
258
+ } from "./chunk-MXKFKSG4.js";
259
259
  import "./chunk-664ZODQF.js";
260
260
  import "./chunk-IUUIT4SU.js";
261
261
  import "./chunk-TUDYL3X4.js";
@@ -7855,7 +7855,7 @@ async function loadSandboxConfig(settings, argv) {
7855
7855
  }
7856
7856
  const command2 = getSandboxCommand(sandboxValue);
7857
7857
  const packageJson = await getPackageJson(__dirname3);
7858
- const image = process.env["GEMINI_SANDBOX_IMAGE"] ?? "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.60.0-preview.0" ?? customImage ?? packageJson?.config?.sandboxImageUri;
7858
+ const image = process.env["GEMINI_SANDBOX_IMAGE"] ?? "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.61.0-nightly.20260910.ged2ac40df" ?? customImage ?? packageJson?.config?.sandboxImageUri;
7859
7859
  const isNative = command2 === "windows-native" || command2 === "sandbox-exec" || command2 === "lxc";
7860
7860
  return command2 && (image || isNative) ? { enabled: true, allowedPaths, networkAccess, command: command2, image } : void 0;
7861
7861
  }
@@ -11196,7 +11196,7 @@ async function runNonInteractive({
11196
11196
  }
11197
11197
  });
11198
11198
  if (process.env["GEMINI_CLI_ACTIVITY_LOG_TARGET"]) {
11199
- const { setupInitialActivityLogger } = await import("./devtoolsService-IFCLCSNA.js");
11199
+ const { setupInitialActivityLogger } = await import("./devtoolsService-MM4VAG36.js");
11200
11200
  setupInitialActivityLogger(config);
11201
11201
  }
11202
11202
  const { stdout: workingStdout } = createWorkingStdio();
@@ -11706,7 +11706,7 @@ async function runNonInteractive2(params) {
11706
11706
  }
11707
11707
  });
11708
11708
  if (process.env["GEMINI_CLI_ACTIVITY_LOG_TARGET"]) {
11709
- const { setupInitialActivityLogger } = await import("./devtoolsService-IFCLCSNA.js");
11709
+ const { setupInitialActivityLogger } = await import("./devtoolsService-MM4VAG36.js");
11710
11710
  setupInitialActivityLogger(config);
11711
11711
  }
11712
11712
  const { stdout: workingStdout } = createWorkingStdio();
@@ -16916,7 +16916,7 @@ async function resolveSessionId(resumeArg, sessionIdArg, sessionFileArg) {
16916
16916
  }
16917
16917
  }
16918
16918
  async function startInteractiveUI(config, settings, startupWarnings, workspaceRoot = process.cwd(), resumedSessionData, initializationResult) {
16919
- const { startInteractiveUI: doStartUI } = await import("./interactiveCli-JODN5SQN.js");
16919
+ const { startInteractiveUI: doStartUI } = await import("./interactiveCli-CDZPTKWD.js");
16920
16920
  await doStartUI(
16921
16921
  config,
16922
16922
  settings,
@@ -17125,7 +17125,7 @@ ${finalArgs[promptIndex + 1]}`;
17125
17125
  await config.storage.initialize();
17126
17126
  adminControlsListner.setConfig(config);
17127
17127
  if (config.isInteractive() && settings.merged.general.devtools) {
17128
- const { setupInitialActivityLogger } = await import("./devtoolsService-IFCLCSNA.js");
17128
+ const { setupInitialActivityLogger } = await import("./devtoolsService-MM4VAG36.js");
17129
17129
  setupInitialActivityLogger(config);
17130
17130
  }
17131
17131
  registerTelemetryConfig(config);
@@ -17184,7 +17184,7 @@ ${finalArgs[promptIndex + 1]}`;
17184
17184
  const initAppHandle = startupProfiler.start("initialize_app");
17185
17185
  const initializationResult = await initializeApp(config, settings);
17186
17186
  initAppHandle?.end();
17187
- import("./liteRtServerManager-2BNWXU4Z.js").then(({ LiteRtServerManager }) => {
17187
+ import("./liteRtServerManager-CIEEHOLV.js").then(({ LiteRtServerManager }) => {
17188
17188
  const mergedGemma = settings.merged.experimental?.gemmaModelRouter;
17189
17189
  if (!mergedGemma) return;
17190
17190
  const userGemma = settings.forScope("User" /* User */).settings.experimental?.gemmaModelRouter;