@google/gemini-cli-core 0.58.0-preview.0 → 0.59.0-nightly.20260827.g3c311beac

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.
@@ -1,6 +1,6 @@
1
- # Preview release: v0.57.0-preview.0
1
+ # Preview release: v0.58.0-preview.0
2
2
 
3
- Released: August 19, 2026
3
+ Released: August 25, 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,85 +13,37 @@ npm install -g @google/gemini-cli@preview
13
13
 
14
14
  ## Highlights
15
15
 
16
- - **TUI & UX Enhancements**: Prevented indefinite TUI hangs by adding execution
17
- timeouts, improved autocomplete suggestions with trailing spaces, forced
18
- terminal buffer rerenders when exiting external editors, and clarified privacy
19
- notice selection options.
20
- - **Improved Evals & Testing**: Added a new tool call formatter and integrated
21
- failure summaries into evals, improving visibility and test validation.
22
- - **Core Reliability & Resilience**: Implemented context-aware silent retries
23
- and availability TTL for capacity errors, rolled back entire multi-turn
24
- requests on cancellation or abort, and dynamically resolved Cloud Workstations
25
- proxy redirect URIs for OAuth flows.
26
- - **Sub-agent & Guardrail Fixes**: Formatted the `cli_help` subagent output as
27
- Markdown, prevented subagents from running when agents mode is disabled, and
28
- resolved a subagent handoff token regression on startup.
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.
29
26
 
30
27
  ## What's Changed
31
28
 
32
- - fix(core): dynamically resolve Cloud Workstations proxy redirect URI for OAuth
33
- flows by @amelidev in
34
- [#28688](https://github.com/google-gemini/gemini-cli/pull/28688)
35
- - fix(core): resolve swallowed directory mismatch in IDE connections by
36
- @amelidev in [#28729](https://github.com/google-gemini/gemini-cli/pull/28729)
37
- - Feat/eval validate by @ved015 in
38
- [#28344](https://github.com/google-gemini/gemini-cli/pull/28344)
39
- - feat(evals): add tool call formatter and integrate failure summaries by
40
- @ved015 in [#28305](https://github.com/google-gemini/gemini-cli/pull/28305)
41
- - Changelog for v0.55.1 by @gemini-cli-robot in
42
- [#28779](https://github.com/google-gemini/gemini-cli/pull/28779)
43
- - test(e2e): stabilize file-system-interactive test on slow runners by
44
- @DavidAPierce in
45
- [#28793](https://github.com/google-gemini/gemini-cli/pull/28793)
46
- - fix(core): implement context-aware silent retries and availability TTL for
47
- capacity errors (#28761) by @DavidAPierce in
48
- [#28790](https://github.com/google-gemini/gemini-cli/pull/28790)
49
- - fix(core): rollback entire multi-turn request on cancellation or abort by
50
- @amelidev in [#28801](https://github.com/google-gemini/gemini-cli/pull/28801)
51
- - fix(core): normalize git environment and resolve workspace state mismatch by
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
52
32
  @luisfelipe-alt in
53
- [#28792](https://github.com/google-gemini/gemini-cli/pull/28792)
54
- - [SSR Agent] Issue Fix (19826): Migrate process.env to vi.stubEnv in a2a-server
55
- tests by @joneba-google in
56
- [#28811](https://github.com/google-gemini/gemini-cli/pull/28811)
57
- - [SSR Agent] Issue Fix (21911): Add composite flag to packages/cli tsconfig by
58
- @joneba-google in
59
- [#28813](https://github.com/google-gemini/gemini-cli/pull/28813)
60
- - [SSR Agent] Issue Fix (26120): Clarify privacy notice wording and selection
61
- options by @joneba-google in
62
- [#28820](https://github.com/google-gemini/gemini-cli/pull/28820)
63
- - [SSR Agent] Issue Fix (21919): Fix TypeScript strict-null errors in
64
- integration tests by @joneba-google in
65
- [#28814](https://github.com/google-gemini/gemini-cli/pull/28814)
66
- - [SSR Agent] Issue Fix (21477): Prevent indefinite TUI hang by adding execution
67
- timeouts by @joneba-google in
68
- [#28812](https://github.com/google-gemini/gemini-cli/pull/28812)
69
- - [SSR Agent] Issue Fix (19239): Update /clear command docs to include context
70
- reset by @joneba-google in
71
- [#28847](https://github.com/google-gemini/gemini-cli/pull/28847)
72
- - [SSR Agent] Issue Fix (24587): Fix misleading admin error for personal
73
- accounts by @joneba-google in
74
- [#28819](https://github.com/google-gemini/gemini-cli/pull/28819)
75
- - [SSR Agent] Issue Fix (19463): Format cli_help subagent output as markdown by
76
- @joneba-google in
77
- [#28864](https://github.com/google-gemini/gemini-cli/pull/28864)
78
- - [SSR Agent] Issue Fix (28050): Add Vertex AI locations documentation link by
79
- @joneba-google in
80
- [#28865](https://github.com/google-gemini/gemini-cli/pull/28865)
81
- - [SSR Agent] Issue Fix (22093): Prevent subagents from running when agents mode
82
- is disabled by @joneba-google in
83
- [#28867](https://github.com/google-gemini/gemini-cli/pull/28867)
84
- - [SSR Agent] Issue Fix (23954): Add trailing space to autocomplete suggestions
85
- by @joneba-google in
86
- [#28868](https://github.com/google-gemini/gemini-cli/pull/28868)
87
- - [SSR Agent] Issue Fix (24935): Force terminal buffer rerender after exiting
88
- external editors by @joneba-google in
89
- [#28880](https://github.com/google-gemini/gemini-cli/pull/28880)
90
- - [SSR Agent] Issue Fix (28518): Fix sub-agent handoff token regression on
91
- startup by @joneba-google in
92
- [#28882](https://github.com/google-gemini/gemini-cli/pull/28882)
93
- - fix(core): preserve empty text turns with tools or media by @DavidAPierce in
94
- [#28892](https://github.com/google-gemini/gemini-cli/pull/28892)
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)
95
47
 
96
48
  **Full Changelog**:
97
- https://github.com/google-gemini/gemini-cli/compare/v0.56.0-preview.1...v0.57.0-preview.0
49
+ https://github.com/google-gemini/gemini-cli/compare/v0.57.0-preview.1...v0.58.0-preview.0
@@ -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 = "812f7a2bc";
7
- export declare const CLI_VERSION = "0.58.0-preview.0";
6
+ export declare const GIT_COMMIT_INFO = "3c311beac";
7
+ export declare const CLI_VERSION = "0.59.0-nightly.20260827.g3c311beac";
@@ -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 = '812f7a2bc';
9
- export const CLI_VERSION = '0.58.0-preview.0';
8
+ export const GIT_COMMIT_INFO = '3c311beac';
9
+ export const CLI_VERSION = '0.59.0-nightly.20260827.g3c311beac';
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"}
@@ -182,8 +182,8 @@ export { MCPOAuthProvider } from './mcp/oauth-provider.js';
182
182
  export type { OAuthToken, OAuthCredentials, } from './mcp/token-storage/types.js';
183
183
  export { MCPOAuthTokenStorage } from './mcp/oauth-token-storage.js';
184
184
  export type { MCPOAuthConfig } from './mcp/oauth-provider.js';
185
- export type { OAuthAuthorizationServerMetadata, OAuthProtectedResourceMetadata, } from './mcp/oauth-utils.js';
186
- export { OAuthUtils } from './mcp/oauth-utils.js';
185
+ export type { OAuthAuthorizationServerMetadata, OAuthProtectedResourceMetadata, OAuthUrlValidationOptions, } from './mcp/oauth-utils.js';
186
+ export { OAuthUtils, OAuthSecurityError, isLoopbackUrl, validateOAuthEndpointUrl, } from './mcp/oauth-utils.js';
187
187
  export * from './telemetry/index.js';
188
188
  export * from './telemetry/billingEvents.js';
189
189
  export { logBillingEvent } from './telemetry/loggers.js';
package/dist/src/index.js CHANGED
@@ -196,7 +196,7 @@ export * from './tools/ask-user.js';
196
196
  // MCP OAuth
197
197
  export { MCPOAuthProvider } from './mcp/oauth-provider.js';
198
198
  export { MCPOAuthTokenStorage } from './mcp/oauth-token-storage.js';
199
- export { OAuthUtils } from './mcp/oauth-utils.js';
199
+ export { OAuthUtils, OAuthSecurityError, isLoopbackUrl, validateOAuthEndpointUrl, } from './mcp/oauth-utils.js';
200
200
  // Export telemetry functions
201
201
  export * from './telemetry/index.js';
202
202
  export * from './telemetry/billingEvents.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ import { URL } from 'node:url';
8
8
  import { openBrowserSecurely } from '../utils/secure-browser-launcher.js';
9
9
  import { MCPOAuthTokenStorage } from './oauth-token-storage.js';
10
10
  import { getErrorMessage, FatalCancellationError } from '../utils/errors.js';
11
- import { OAuthUtils, ResourceMismatchError } from './oauth-utils.js';
11
+ import { OAuthUtils, ResourceMismatchError, OAuthSecurityError, isLoopbackUrl, validateOAuthEndpointUrl, } from './oauth-utils.js';
12
12
  import { coreEvents } from '../utils/events.js';
13
13
  import { debugLogger } from '../utils/debugLogger.js';
14
14
  import { getConsentForOauth } from '../utils/authConsent.js';
@@ -29,7 +29,13 @@ export class MCPOAuthProvider {
29
29
  * @param redirectPort The port to use for the redirect URI
30
30
  * @returns The registered client information
31
31
  */
32
- async registerClient(registrationUrl, config, redirectPort) {
32
+ async registerClient(registrationUrl, config, redirectPort, mcpServerUrl) {
33
+ const allowLoopback = mcpServerUrl
34
+ ? isLoopbackUrl(mcpServerUrl)
35
+ : isLoopbackUrl(registrationUrl);
36
+ const validatedRegistrationUrl = await validateOAuthEndpointUrl(registrationUrl, {
37
+ allowLoopback,
38
+ });
33
39
  const redirectUri = getRedirectUri(config, redirectPort);
34
40
  const registrationRequest = {
35
41
  client_name: 'Gemini CLI MCP Client',
@@ -39,7 +45,7 @@ export class MCPOAuthProvider {
39
45
  token_endpoint_auth_method: 'none', // Public client
40
46
  scope: config.scopes?.join(' ') || '',
41
47
  };
42
- const response = await fetch(registrationUrl, {
48
+ const response = await fetch(validatedRegistrationUrl, {
43
49
  method: 'POST',
44
50
  headers: {
45
51
  'Content-Type': 'application/json',
@@ -63,7 +69,10 @@ export class MCPOAuthProvider {
63
69
  // Use the full URL with path preserved for OAuth discovery
64
70
  return OAuthUtils.discoverOAuthConfig(mcpServerUrl);
65
71
  }
66
- async discoverAuthServerMetadataForRegistration(issuer) {
72
+ async discoverAuthServerMetadataForRegistration(issuer, mcpServerUrl) {
73
+ const allowLoopback = mcpServerUrl
74
+ ? isLoopbackUrl(mcpServerUrl)
75
+ : isLoopbackUrl(issuer);
67
76
  const authUrl = new URL(issuer);
68
77
  // Preserve path components for issuers with path-based discovery (e.g., Keycloak)
69
78
  // Extract issuer by removing the OIDC protocol-specific path suffix
@@ -100,11 +109,11 @@ export class MCPOAuthProvider {
100
109
  const attemptedIssuers = Array.from(issuerCandidates);
101
110
  let selectedIssuer = attemptedIssuers[0];
102
111
  let discoveredMetadata = null;
103
- for (const issuer of attemptedIssuers) {
104
- debugLogger.debug(` Trying issuer URL: ${issuer}`);
105
- const metadata = await OAuthUtils.discoverAuthorizationServerMetadata(issuer);
112
+ for (const issuerCandidate of attemptedIssuers) {
113
+ debugLogger.debug(` Trying issuer URL: ${issuerCandidate}`);
114
+ const metadata = await OAuthUtils.discoverAuthorizationServerMetadata(issuerCandidate, { allowLoopback });
106
115
  if (metadata) {
107
- selectedIssuer = issuer;
116
+ selectedIssuer = issuerCandidate;
108
117
  discoveredMetadata = metadata;
109
118
  break;
110
119
  }
@@ -202,7 +211,8 @@ export class MCPOAuthProvider {
202
211
  }
203
212
  catch (error) {
204
213
  // Re-throw security validation errors
205
- if (error instanceof ResourceMismatchError) {
214
+ if (error instanceof ResourceMismatchError ||
215
+ error instanceof OAuthSecurityError) {
206
216
  throw error;
207
217
  }
208
218
  debugLogger.debug(`Failed to check endpoint for authentication requirements: ${getErrorMessage(error)}`);
@@ -250,12 +260,12 @@ export class MCPOAuthProvider {
250
260
  throw new Error('Cannot perform dynamic registration without issuer');
251
261
  }
252
262
  debugLogger.debug('→ Attempting dynamic client registration...');
253
- const { metadata: authServerMetadata } = await this.discoverAuthServerMetadataForRegistration(config.issuer);
263
+ const { metadata: authServerMetadata } = await this.discoverAuthServerMetadataForRegistration(config.issuer, mcpServerUrl);
254
264
  registrationUrl = authServerMetadata.registration_endpoint;
255
265
  }
256
266
  // Register client if registration endpoint is available
257
267
  if (registrationUrl) {
258
- const clientRegistration = await this.registerClient(registrationUrl, config, redirectPort);
268
+ const clientRegistration = await this.registerClient(registrationUrl, config, redirectPort, mcpServerUrl);
259
269
  config.clientId = clientRegistration.client_id;
260
270
  if (clientRegistration.client_secret) {
261
271
  config.clientSecret = clientRegistration.client_secret;
@@ -270,6 +280,18 @@ export class MCPOAuthProvider {
270
280
  if (!config.clientId || !config.authorizationUrl || !config.tokenUrl) {
271
281
  throw new Error('Missing required OAuth configuration after discovery and registration');
272
282
  }
283
+ const allowLoopback = mcpServerUrl
284
+ ? isLoopbackUrl(mcpServerUrl)
285
+ : (config.authorizationUrl
286
+ ? isLoopbackUrl(config.authorizationUrl)
287
+ : false) ||
288
+ (config.tokenUrl ? isLoopbackUrl(config.tokenUrl) : false);
289
+ await validateOAuthEndpointUrl(config.authorizationUrl, {
290
+ allowLoopback,
291
+ });
292
+ await validateOAuthEndpointUrl(config.tokenUrl, {
293
+ allowLoopback,
294
+ });
273
295
  // Build flow config for shared utilities
274
296
  const flowConfig = {
275
297
  clientId: config.clientId,
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-provider.js","sourceRoot":"","sources":["../../../src/mcp/oauth-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth-provider.js","sourceRoot":"","sources":["../../../src/mcp/oauth-provider.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,11 @@ vi.mock('node:readline', () => ({
52
52
  }));
53
53
  import * as http from 'node:http';
54
54
  import * as crypto from 'node:crypto';
55
+ import * as dnsPromises from 'node:dns/promises';
56
+ import ipaddr from 'ipaddr.js';
57
+ vi.mock('node:dns/promises', () => ({
58
+ lookup: vi.fn(),
59
+ }));
55
60
  import { MCPOAuthProvider, } from './oauth-provider.js';
56
61
  import { getConsentForOauth } from '../utils/authConsent.js';
57
62
  import { MCPOAuthTokenStorage } from './oauth-token-storage.js';
@@ -133,6 +138,12 @@ describe('MCPOAuthProvider', () => {
133
138
  vi.spyOn(console, 'log').mockImplementation(() => { });
134
139
  vi.spyOn(console, 'warn').mockImplementation(() => { });
135
140
  vi.spyOn(console, 'error').mockImplementation(() => { });
141
+ vi.mocked(dnsPromises.lookup).mockImplementation(async (hostname) => {
142
+ if (ipaddr.isValid(hostname)) {
143
+ return [{ address: hostname, family: hostname.includes(':') ? 6 : 4 }];
144
+ }
145
+ return [{ address: '93.184.216.34', family: 4 }];
146
+ });
136
147
  // Mock crypto functions
137
148
  vi.mocked(crypto.randomBytes).mockImplementation((size) => {
138
149
  if (size === 32)
@@ -1545,8 +1556,8 @@ describe('MCPOAuthProvider', () => {
1545
1556
  });
1546
1557
  const result = await providerWithAccess.discoverAuthServerMetadataForRegistration('http://localhost:8888/realms/my-realm/protocol/openid-connect/auth');
1547
1558
  expect(vi.mocked(OAuthUtils.discoverAuthorizationServerMetadata).mock.calls).toEqual([
1548
- ['http://localhost:8888'],
1549
- ['http://localhost:8888/realms/my-realm'],
1559
+ ['http://localhost:8888', { allowLoopback: true }],
1560
+ ['http://localhost:8888/realms/my-realm', { allowLoopback: true }],
1550
1561
  ]);
1551
1562
  expect(result.issuerUrl).toBe('http://localhost:8888/realms/my-realm');
1552
1563
  expect(result.metadata).toBe(registrationMetadata);
@@ -1578,5 +1589,27 @@ describe('MCPOAuthProvider', () => {
1578
1589
  expect(result.metadata).toBe(oktaMetadata);
1579
1590
  });
1580
1591
  });
1592
+ describe('remote MCP server loopback restriction enforcement', () => {
1593
+ it('rejects dynamic client registration to loopback when mcpServerUrl is remote', async () => {
1594
+ const authProvider = new MCPOAuthProvider();
1595
+ const providerWithAccess = authProvider;
1596
+ await expect(providerWithAccess.registerClient('http://127.0.0.1:18080/register', mockConfig, 7777, 'https://remote-mcp.example.com')).rejects.toThrow();
1597
+ });
1598
+ it('passes allowLoopback=false during metadata discovery when mcpServerUrl is remote', async () => {
1599
+ const authProvider = new MCPOAuthProvider();
1600
+ const providerWithAccess = authProvider;
1601
+ const spy = vi
1602
+ .spyOn(OAuthUtils, 'discoverAuthorizationServerMetadata')
1603
+ .mockResolvedValueOnce({
1604
+ issuer: 'https://remote-auth.example.com',
1605
+ authorization_endpoint: 'https://remote-auth.example.com/authorize',
1606
+ token_endpoint: 'https://remote-auth.example.com/token',
1607
+ });
1608
+ await providerWithAccess.discoverAuthServerMetadataForRegistration('https://remote-auth.example.com', 'https://remote-mcp.example.com');
1609
+ expect(spy).toHaveBeenCalledWith('https://remote-auth.example.com', {
1610
+ allowLoopback: false,
1611
+ });
1612
+ });
1613
+ });
1581
1614
  });
1582
1615
  //# sourceMappingURL=oauth-provider.test.js.map