@google/gemini-cli-core 0.64.0-preview.0 → 0.65.0-nightly.20261008.g44d764ee5

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 (90) hide show
  1. package/dist/docs/changelogs/index.md +14 -0
  2. package/dist/docs/changelogs/latest.md +55 -34
  3. package/dist/docs/changelogs/preview.md +59 -54
  4. package/dist/docs/cli/telemetry.md +1 -0
  5. package/dist/docs/reference/configuration.md +7 -0
  6. package/dist/docs/tools/mcp-server.md +41 -12
  7. package/dist/google-gemini-cli-core-0.65.0-nightly.20261006.gfb972b2f8.tgz +0 -0
  8. package/dist/src/agents/auth-provider/oauth2-provider.d.ts +11 -2
  9. package/dist/src/agents/auth-provider/oauth2-provider.js +54 -11
  10. package/dist/src/agents/auth-provider/oauth2-provider.js.map +1 -1
  11. package/dist/src/agents/auth-provider/oauth2-provider.test.js +72 -0
  12. package/dist/src/agents/auth-provider/oauth2-provider.test.js.map +1 -1
  13. package/dist/src/code_assist/setup.js +6 -1
  14. package/dist/src/code_assist/setup.js.map +1 -1
  15. package/dist/src/code_assist/setup.test.js +18 -0
  16. package/dist/src/code_assist/setup.test.js.map +1 -1
  17. package/dist/src/config/config.d.ts +2 -0
  18. package/dist/src/config/config.js +4 -0
  19. package/dist/src/config/config.js.map +1 -1
  20. package/dist/src/config/config.test.js +23 -0
  21. package/dist/src/config/config.test.js.map +1 -1
  22. package/dist/src/core/client.d.ts +6 -0
  23. package/dist/src/core/client.js +15 -0
  24. package/dist/src/core/client.js.map +1 -1
  25. package/dist/src/core/client.test.js +31 -0
  26. package/dist/src/core/client.test.js.map +1 -1
  27. package/dist/src/core/geminiChat.d.ts +49 -0
  28. package/dist/src/core/geminiChat.js +209 -31
  29. package/dist/src/core/geminiChat.js.map +1 -1
  30. package/dist/src/core/geminiChat.test.js +677 -1
  31. package/dist/src/core/geminiChat.test.js.map +1 -1
  32. package/dist/src/generated/git-commit.d.ts +2 -2
  33. package/dist/src/generated/git-commit.js +2 -2
  34. package/dist/src/generated/git-commit.js.map +1 -1
  35. package/dist/src/mcp/oauth-callback-iss-handling.test.d.ts +6 -0
  36. package/dist/src/mcp/oauth-callback-iss-handling.test.js +251 -0
  37. package/dist/src/mcp/oauth-callback-iss-handling.test.js.map +1 -0
  38. package/dist/src/mcp/oauth-provider.d.ts +1 -0
  39. package/dist/src/mcp/oauth-provider.js +10 -1
  40. package/dist/src/mcp/oauth-provider.js.map +1 -1
  41. package/dist/src/mcp/oauth-provider.test.js +112 -0
  42. package/dist/src/mcp/oauth-provider.test.js.map +1 -1
  43. package/dist/src/mcp/oauth-utils.d.ts +6 -0
  44. package/dist/src/mcp/oauth-utils.js +6 -0
  45. package/dist/src/mcp/oauth-utils.js.map +1 -1
  46. package/dist/src/mcp/oauth-utils.test.js +32 -0
  47. package/dist/src/mcp/oauth-utils.test.js.map +1 -1
  48. package/dist/src/services/chatRecordingService.d.ts +6 -1
  49. package/dist/src/services/chatRecordingService.js +86 -22
  50. package/dist/src/services/chatRecordingService.js.map +1 -1
  51. package/dist/src/services/chatRecordingService.test.js +176 -15
  52. package/dist/src/services/chatRecordingService.test.js.map +1 -1
  53. package/dist/src/telemetry/config.d.ts +7 -0
  54. package/dist/src/telemetry/config.js +194 -11
  55. package/dist/src/telemetry/config.js.map +1 -1
  56. package/dist/src/telemetry/config.test.js +167 -1
  57. package/dist/src/telemetry/config.test.js.map +1 -1
  58. package/dist/src/telemetry/index.d.ts +1 -1
  59. package/dist/src/telemetry/index.js +1 -1
  60. package/dist/src/telemetry/index.js.map +1 -1
  61. package/dist/src/telemetry/sdk.js +26 -0
  62. package/dist/src/telemetry/sdk.js.map +1 -1
  63. package/dist/src/telemetry/sdk.test.js +63 -0
  64. package/dist/src/telemetry/sdk.test.js.map +1 -1
  65. package/dist/src/tools/mcp-client.js +5 -0
  66. package/dist/src/tools/mcp-client.js.map +1 -1
  67. package/dist/src/tools/mcp-client.test.js +49 -0
  68. package/dist/src/tools/mcp-client.test.js.map +1 -1
  69. package/dist/src/utils/googleQuotaErrors.js +6 -1
  70. package/dist/src/utils/googleQuotaErrors.js.map +1 -1
  71. package/dist/src/utils/historyHardening.js +4 -0
  72. package/dist/src/utils/historyHardening.js.map +1 -1
  73. package/dist/src/utils/historyHardening.test.js +39 -0
  74. package/dist/src/utils/historyHardening.test.js.map +1 -1
  75. package/dist/src/utils/oauth-flow.d.ts +3 -1
  76. package/dist/src/utils/oauth-flow.js +33 -8
  77. package/dist/src/utils/oauth-flow.js.map +1 -1
  78. package/dist/src/utils/oauth-flow.test.js +51 -2
  79. package/dist/src/utils/oauth-flow.test.js.map +1 -1
  80. package/dist/src/utils/retry.js +6 -2
  81. package/dist/src/utils/retry.js.map +1 -1
  82. package/dist/src/utils/retry.test.js +29 -1
  83. package/dist/src/utils/retry.test.js.map +1 -1
  84. package/dist/src/utils/sessionUtils.d.ts +11 -0
  85. package/dist/src/utils/sessionUtils.js +99 -13
  86. package/dist/src/utils/sessionUtils.js.map +1 -1
  87. package/dist/src/utils/sessionUtils.test.js +405 -7
  88. package/dist/src/utils/sessionUtils.test.js.map +1 -1
  89. package/dist/tsconfig.tsbuildinfo +1 -1
  90. package/package.json +1 -1
@@ -18,6 +18,20 @@ 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.63.0 - 2026-10-06
22
+
23
+ - **Autonomous Plan Execution:** Enabled autonomous plan execution in
24
+ non-interactive mode to support unattended agent workflows
25
+ ([#29539](https://github.com/google-gemini/gemini-cli/pull/29539) by
26
+ @urielefrenvirtusa).
27
+ - **Core Stability and Memory Lifecycle:** Bounded tool output sizes and
28
+ optimized memory management in long-running agent loops while preventing
29
+ infinite authentication loops across headless and supervisor environments
30
+ ([#29451](https://github.com/google-gemini/gemini-cli/pull/29451) by
31
+ @diegogodinezr,
32
+ [#29448](https://github.com/google-gemini/gemini-cli/pull/29448) by
33
+ @villahernandez-coder).
34
+
21
35
  ## Announcements: v0.61.0 - 2026-09-23
22
36
 
23
37
  - **Core Security Hardening:** Prevented indirect prompt injection
@@ -1,6 +1,6 @@
1
- # Latest stable release: v0.61.0
1
+ # Latest stable release: v0.63.0
2
2
 
3
- Released: September 23, 2026
3
+ Released: October 6, 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,41 +11,62 @@ npm install -g @google/gemini-cli
11
11
 
12
12
  ## Highlights
13
13
 
14
- - **Prompt Injection Defense:** Enhanced security by preventing indirect prompt
15
- injection attacks through build file modifications and untrusted command
16
- flags.
17
- - **Sandbox & State Hardening:** Hardened filesystem boundaries and isolated
18
- internal runtime state to ensure more secure execution environments.
19
- - **Agent Loop Robustness:** Guaranteed that internal state properties within
20
- `AgentLoopContext` are fully preserved during object spread operations,
21
- improving agent reliability.
22
- - **Versioned Model Preserves:** Ensured explicit versioned Flash model IDs are
23
- correctly preserved and used directly during routing and execution.
14
+ - **Autonomous Plan Execution:** Enabled autonomous plan execution in
15
+ non-interactive mode, allowing automated agent workflows to run multi-step
16
+ plans without requiring interactive user confirmation.
17
+ - **Memory Lifecycle & Output Bounding:** Bounded tool output sizes and
18
+ optimized the memory lifecycle in long-running agent loops to prevent memory
19
+ exhaustion, while formatting full output when truncation is disabled.
20
+ - **Authentication Resilience:** Prevented infinite authentication loops caused
21
+ by file contention, headless keyring environments, and supervisor state drops,
22
+ ensuring reliable credential handling across environments.
23
+ - **CLI & Connection Recovery UX:** Displayed a retry progress indicator during
24
+ connection recovery, restored paused stdin after capability detection, and
25
+ ensured automatic temporary directory cleanup upon background shell execution
26
+ exit.
24
27
 
25
28
  ## What's Changed
26
29
 
27
- - Changelog for v0.60.0-preview.0 by @gemini-cli-robot in
28
- [#29251](https://github.com/google-gemini/gemini-cli/pull/29251)
29
- - chore(release): bump version to 0.61.0-nightly.20260908.gc647533d6 by
30
+ - fix(cli): display retry progress indicator during connection recovery (#28340)
31
+ by @amelidev in
32
+ [#29468](https://github.com/google-gemini/gemini-cli/pull/29468)
33
+ - Changelog for v0.61.0-preview.1 by @gemini-cli-robot in
34
+ [#29469](https://github.com/google-gemini/gemini-cli/pull/29469)
35
+ - Changelog for v0.61.0 by @gemini-cli-robot in
36
+ [#29472](https://github.com/google-gemini/gemini-cli/pull/29472)
37
+ - fix(cli): distinguish missing MCP enablement config from malformed JSON by
38
+ @jesussamuel-byte in
39
+ [#29446](https://github.com/google-gemini/gemini-cli/pull/29446)
40
+ - fix(cli): restore paused stdin after capability detection by @ugorla-dev in
41
+ [#29487](https://github.com/google-gemini/gemini-cli/pull/29487)
42
+ - fix(core): bound tool output size and optimize memory lifecycle in
43
+ long-running agent loops by @diegogodinezr in
44
+ [#29451](https://github.com/google-gemini/gemini-cli/pull/29451)
45
+ - fix(core): remove invalid diff.external override by @urielefrenvirtusa in
46
+ [#29467](https://github.com/google-gemini/gemini-cli/pull/29467)
47
+ - chore(release): bump version to 0.63.0-nightly.20260923.gf50ba8608 by
30
48
  @gemini-cli-robot in
31
- [#29254](https://github.com/google-gemini/gemini-cli/pull/29254)
32
- - Changelog for v0.59.0 by @gemini-cli-robot in
33
- [#29253](https://github.com/google-gemini/gemini-cli/pull/29253)
34
- - fix(core): preserve explicit versioned Flash model IDs by @SandyTao520 in
35
- [#29252](https://github.com/google-gemini/gemini-cli/pull/29252)
36
- - fix(core): prevent indirect prompt injection via build file modifications and
37
- untrusted flags by @villahernandez-coder in
38
- [#29250](https://github.com/google-gemini/gemini-cli/pull/29250)
39
- - fix(sandbox): harden filesystem boundaries and isolate runtime state by
40
- @diegogodinezr in
41
- [#29214](https://github.com/google-gemini/gemini-cli/pull/29214)
42
- - fix(core): ensure AgentLoopContext properties are preserved across object
43
- spread by @diegogodinezr in
44
- [#29335](https://github.com/google-gemini/gemini-cli/pull/29335)
45
- - fix(patch): cherry-pick 62364cb to release/v0.61.0-preview.0-pr-29443 to patch
46
- version v0.61.0-preview.0 and create version 0.61.0-preview.1 by
47
- @gemini-cli-robot in
48
- [#29455](https://github.com/google-gemini/gemini-cli/pull/29455)
49
+ [#29471](https://github.com/google-gemini/gemini-cli/pull/29471)
50
+ - Changelog for v0.62.0-preview.0 by @gemini-cli-robot in
51
+ [#29470](https://github.com/google-gemini/gemini-cli/pull/29470)
52
+ - fix(core): clean up temporary directory when background shell execution exits
53
+ by @jesussamuel-byte in
54
+ [#29437](https://github.com/google-gemini/gemini-cli/pull/29437)
55
+ - fix(acp): resolve session before config initialization and avoid same-minute
56
+ filename collisions by @jesussamuel-byte in
57
+ [#29463](https://github.com/google-gemini/gemini-cli/pull/29463)
58
+ - fix(core): align policy redirection gates, path validation, and workflow
59
+ parsing by @DavidAPierce in
60
+ [#29506](https://github.com/google-gemini/gemini-cli/pull/29506)
61
+ - fix(auth): prevent infinite auth loop from file contention, headless keyring,
62
+ and supervisor state drops (#28341) by @villahernandez-coder in
63
+ [#29448](https://github.com/google-gemini/gemini-cli/pull/29448)
64
+ - fix(core): enable autonomous plan execution in non-interactive mode by
65
+ @urielefrenvirtusa in
66
+ [#29539](https://github.com/google-gemini/gemini-cli/pull/29539)
67
+ - fix(core): disable truncation when maxChars <= 0 in formatTruncatedToolOutput
68
+ by @diegogodinezr in
69
+ [#29542](https://github.com/google-gemini/gemini-cli/pull/29542)
49
70
 
50
71
  **Full Changelog**:
51
- https://github.com/google-gemini/gemini-cli/compare/v0.60.0...v0.61.0
72
+ https://github.com/google-gemini/gemini-cli/compare/v0.62.0...v0.63.0
@@ -1,6 +1,6 @@
1
- # Preview release: v0.63.0-preview.0
1
+ # Preview release: v0.64.0-preview.0
2
2
 
3
- Released: September 29, 2026
3
+ Released: October 6, 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,62 +13,67 @@ npm install -g @google/gemini-cli@preview
13
13
 
14
14
  ## Highlights
15
15
 
16
- - **Autonomous Plan Execution**: Enabled autonomous plan execution in
17
- non-interactive mode, allowing automated agent workflows to run multi-step
18
- plans without requiring interactive user confirmation.
19
- - **Memory Lifecycle & Output Bounding**: Bounded tool output sizes and
20
- optimized the memory lifecycle in long-running agent loops to prevent memory
21
- leaks, while ensuring full output formatting when truncation is disabled.
22
- - **Authentication Resilience**: Prevented infinite authentication loops caused
23
- by file contention, headless keyring environments, and supervisor state drops,
24
- ensuring reliable credential handling across environments.
25
- - **CLI & Connection Recovery UX**: Displayed a retry progress indicator during
26
- connection recovery, restored paused stdin after capability detection, and
27
- ensured automatic temporary directory cleanup upon background shell execution
28
- exit.
16
+ - **Atomic File Operations & State Recovery**: Serialized file tool operations
17
+ with atomic writes and introduced atomic CLI state persistence with automatic
18
+ recovery from backup on corruption.
19
+ - **Chat Recording Optimization**: Implemented append-only delta patching and
20
+ bounded history windowing in ChatRecordingService to optimize memory and disk
21
+ efficiency during long-running sessions.
22
+ - **CLI Input & Reference Resolution**: Added support for resolving `@file:line`
23
+ references, resolved CPU hangs and quote swallowing on `@` symbols within code
24
+ blocks, and prevented ghost text wrap hangs.
25
+ - **Terminal UI & Interaction Stability**: Ensured Ctrl+C emergency aborts reach
26
+ active cancellation handlers, made selection list confirmation with Enter and
27
+ Spacebar reliable, and fixed Windows ConPTY IME cursor forwarding.
29
28
 
30
29
  ## What's Changed
31
30
 
32
- - fix(cli): display retry progress indicator during connection recovery (#28340)
33
- by @amelidev in
34
- [#29468](https://github.com/google-gemini/gemini-cli/pull/29468)
35
- - Changelog for v0.61.0-preview.1 by @gemini-cli-robot in
36
- [#29469](https://github.com/google-gemini/gemini-cli/pull/29469)
37
- - Changelog for v0.61.0 by @gemini-cli-robot in
38
- [#29472](https://github.com/google-gemini/gemini-cli/pull/29472)
39
- - fix(cli): distinguish missing MCP enablement config from malformed JSON by
40
- @jesussamuel-byte in
41
- [#29446](https://github.com/google-gemini/gemini-cli/pull/29446)
42
- - fix(cli): restore paused stdin after capability detection by @ugorla-dev in
43
- [#29487](https://github.com/google-gemini/gemini-cli/pull/29487)
44
- - fix(core): bound tool output size and optimize memory lifecycle in
45
- long-running agent loops by @diegogodinezr in
46
- [#29451](https://github.com/google-gemini/gemini-cli/pull/29451)
47
- - fix(core): remove invalid diff.external override by @urielefrenvirtusa in
48
- [#29467](https://github.com/google-gemini/gemini-cli/pull/29467)
49
- - chore(release): bump version to 0.63.0-nightly.20260923.gf50ba8608 by
31
+ - refactor(a2a-server): implement V1 to V2 settings migration logic by
32
+ @jvargassanchez-dot in
33
+ [#29450](https://github.com/google-gemini/gemini-cli/pull/29450)
34
+ - fix(acp): bridge PromptResponse.usage and emit usage_update notifications
35
+ (#29389) by @elberthc-byte in
36
+ [#29549](https://github.com/google-gemini/gemini-cli/pull/29549)
37
+ - Changelog for v0.63.0-preview.0 by @gemini-cli-robot in
38
+ [#29565](https://github.com/google-gemini/gemini-cli/pull/29565)
39
+ - fix(cli): propagate resolved folder trust state in headless mode (#29031) by
40
+ @amelidev in [#29528](https://github.com/google-gemini/gemini-cli/pull/29528)
41
+ - chore(release): bump version to 0.64.0-nightly.20260929.gd75234cae by
50
42
  @gemini-cli-robot in
51
- [#29471](https://github.com/google-gemini/gemini-cli/pull/29471)
52
- - Changelog for v0.62.0-preview.0 by @gemini-cli-robot in
53
- [#29470](https://github.com/google-gemini/gemini-cli/pull/29470)
54
- - fix(core): clean up temporary directory when background shell execution exits
55
- by @jesussamuel-byte in
56
- [#29437](https://github.com/google-gemini/gemini-cli/pull/29437)
57
- - fix(acp): resolve session before config initialization and avoid same-minute
58
- filename collisions by @jesussamuel-byte in
59
- [#29463](https://github.com/google-gemini/gemini-cli/pull/29463)
60
- - fix(core): align policy redirection gates, path validation, and workflow
61
- parsing by @DavidAPierce in
62
- [#29506](https://github.com/google-gemini/gemini-cli/pull/29506)
63
- - fix(auth): prevent infinite auth loop from file contention, headless keyring,
64
- and supervisor state drops (#28341) by @villahernandez-coder in
65
- [#29448](https://github.com/google-gemini/gemini-cli/pull/29448)
66
- - fix(core): enable autonomous plan execution in non-interactive mode by
43
+ [#29567](https://github.com/google-gemini/gemini-cli/pull/29567)
44
+ - fix(cli): prevent CPU hang and quote swallowing on @ within code (#29434) by
45
+ @elberthc-byte in
46
+ [#29557](https://github.com/google-gemini/gemini-cli/pull/29557)
47
+ - fix(core): serialize file tool operations and make writes atomic (#29078) by
48
+ @elberthc-byte in
49
+ [#29499](https://github.com/google-gemini/gemini-cli/pull/29499)
50
+ - fix(core): implement append-only delta patching and bounded history windowing
51
+ in ChatRecordingService by @jvargassanchez-dot in
52
+ [#29568](https://github.com/google-gemini/gemini-cli/pull/29568)
53
+ - fix(cli): persist state atomically and recover from backup on corruption by
67
54
  @urielefrenvirtusa in
68
- [#29539](https://github.com/google-gemini/gemini-cli/pull/29539)
69
- - fix(core): disable truncation when maxChars <= 0 in formatTruncatedToolOutput
70
- by @diegogodinezr in
71
- [#29542](https://github.com/google-gemini/gemini-cli/pull/29542)
55
+ [#29558](https://github.com/google-gemini/gemini-cli/pull/29558)
56
+ - fix(cli): ensure Ctrl+C emergency abort reaches cancellation handler during
57
+ active operations by @urielefrenvirtusa in
58
+ [#29586](https://github.com/google-gemini/gemini-cli/pull/29586)
59
+ - fix(cli): resolve @file:line references and prevent ghost text wrap hang by
60
+ @jesussamuel-byte in
61
+ [#29581](https://github.com/google-gemini/gemini-cli/pull/29581)
62
+ - fix(ui): ensure Windows ConPTY forwards IME cursor position by
63
+ @jesussamuel-byte in
64
+ [#29560](https://github.com/google-gemini/gemini-cli/pull/29560)
65
+ - fix(cli): retry directory removal on Windows locking errors during extension
66
+ updates by @jesussamuel-byte in
67
+ [#29540](https://github.com/google-gemini/gemini-cli/pull/29540)
68
+ - fix(acp): resolve session by exact id and handle listener cleanup on session
69
+ failure by @diegogodinezr in
70
+ [#29580](https://github.com/google-gemini/gemini-cli/pull/29580)
71
+ - fix(cli): preserve scroll position and partition pending height budget by
72
+ @luisfelipe-alt in
73
+ [#29520](https://github.com/google-gemini/gemini-cli/pull/29520)
74
+ - fix(cli): ensure Enter and Spacebar reliably confirm selection list options by
75
+ @ugorla-dev in
76
+ [#29502](https://github.com/google-gemini/gemini-cli/pull/29502)
72
77
 
73
78
  **Full Changelog**:
74
- https://github.com/google-gemini/gemini-cli/compare/v0.62.0-preview.0...v0.63.0-preview.0
79
+ https://github.com/google-gemini/gemini-cli/compare/v0.63.0-preview.0...v0.64.0-preview.0
@@ -42,6 +42,7 @@ Environment variables can override these settings.
42
42
  | `target` | `GEMINI_TELEMETRY_TARGET` | Where to send telemetry data | `"gcp"`/`"local"` | `"local"` |
43
43
  | `otlpEndpoint` | `GEMINI_TELEMETRY_OTLP_ENDPOINT` | OTLP collector endpoint | URL string | `http://localhost:4317` |
44
44
  | `otlpProtocol` | `GEMINI_TELEMETRY_OTLP_PROTOCOL` | OTLP transport protocol | `"grpc"`/`"http"` | `"grpc"` |
45
+ | `otlpHeaders` | `GEMINI_TELEMETRY_OTLP_HEADERS` | Custom headers for OTLP exporter requests | JSON/`key=value` | - |
45
46
  | `outfile` | `GEMINI_TELEMETRY_OUTFILE` | Save telemetry to file (overrides `otlpEndpoint`) | file path | - |
46
47
  | `logPrompts` | `GEMINI_TELEMETRY_LOG_PROMPTS` | Include prompts in telemetry logs | `true`/`false` | `true` |
47
48
  | `useCollector` | `GEMINI_TELEMETRY_USE_COLLECTOR` | Use external OTLP collector (advanced) | `true`/`false` | `false` |
@@ -2550,6 +2550,8 @@ see [Telemetry](../cli/telemetry.md).
2550
2550
  - **`otlpEndpoint`** (string): The endpoint for the OTLP Exporter.
2551
2551
  - **`otlpProtocol`** (string): The protocol for the OTLP Exporter (`grpc` or
2552
2552
  `http`).
2553
+ - **`otlpHeaders`** (object): Custom headers to send with OTLP Exporter
2554
+ requests.
2553
2555
  - **`logPrompts`** (boolean): Whether or not to include the content of user
2554
2556
  prompts in the logs.
2555
2557
  - **`outfile`** (string): The file to write telemetry to when `target` is
@@ -2766,6 +2768,11 @@ the `advanced.excludedEnvVars` setting in your `settings.json` file.
2766
2768
  - **`GEMINI_TELEMETRY_OTLP_PROTOCOL`**:
2767
2769
  - Sets the OTLP protocol (`grpc` or `http`).
2768
2770
  - Overrides the `telemetry.otlpProtocol` setting.
2771
+ - **`GEMINI_TELEMETRY_OTLP_HEADERS`**:
2772
+ - Sets custom headers for OTLP exporter requests (as a JSON object string or
2773
+ comma-separated `key=value` pairs; also falls back to
2774
+ `OTEL_EXPORTER_OTLP_HEADERS`).
2775
+ - Merges with and overrides headers in the `telemetry.otlpHeaders` setting.
2769
2776
  - **`GEMINI_TELEMETRY_LOG_PROMPTS`**:
2770
2777
  - Set to `true` or `1` to enable or disable logging of user prompts. Any other
2771
2778
  value is treated as disabling it.
@@ -326,17 +326,31 @@ This feature will not work in:
326
326
 
327
327
  <!-- prettier-ignore -->
328
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.
329
+ > Gemini CLI validates the `iss` (issuer) parameter in OAuth authorization
330
+ > responses per [RFC 9207](https://www.rfc-editor.org/rfc/rfc9207) and the MCP
331
+ > specification:
332
+ >
333
+ > - Whenever the `iss` parameter is present in the callback redirect and an
334
+ > expected `issuer` is discovered or configured, `iss` **must** match the
335
+ > expected issuer URL.
336
+ > - When the authorization server metadata sets
337
+ > `authorization_response_iss_parameter_supported: true`, the callback
338
+ > redirect **must** include the `iss` parameter.
339
+ > - When the discovered authorization server metadata omits
340
+ > `authorization_response_iss_parameter_supported` or sets it to `false` (for
341
+ > example, providers that do not declare RFC 9207 support), callbacks without
342
+ > `iss` are accepted.
343
+ > - When you configure `issuer` explicitly in `settings.json` and Gemini CLI
344
+ > doesn't discover authorization server metadata, the callback redirect
345
+ > **must** include the `iss` parameter. To accept callbacks without `iss` for
346
+ > such a server, set `authorizationResponseIssParameterSupported` to `false`
347
+ > in the `oauth` configuration.
335
348
 
336
349
  ##### Expected authorization callback example
337
350
 
338
- When the authorization server redirects the user back to Gemini CLI, the
339
- redirect URI must include the `iss` parameter:
351
+ When the authorization server declares
352
+ `authorization_response_iss_parameter_supported: true`, the redirect URI must
353
+ include the `iss` parameter:
340
354
 
341
355
  ```http
342
356
  HTTP/1.1 302 Found
@@ -344,10 +358,14 @@ Location: http://localhost:<port>/oauth/callback?code=AUTH_CODE&state=STATE&iss=
344
358
  ```
345
359
 
346
360
  - **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`).
361
+ issuer (`https://auth.example.com`), or `iss` is omitted when the discovered
362
+ metadata doesn't set `authorization_response_iss_parameter_supported` to
363
+ `true`.
364
+ - **Missing `iss` when required (rejected):**
365
+ `http://localhost:<port>/oauth/callback?code=AUTH_CODE&state=STATE` when
366
+ `authorization_response_iss_parameter_supported` is `true`, or when `issuer`
367
+ is configured explicitly without discovered metadata (fails with HTTP 400:
368
+ `Missing issuer parameter in response`).
351
369
  - **Mismatched `iss` (rejected):** `iss` points to a different domain or
352
370
  includes userinfo (fails with HTTP 400: `Issuer mismatch`).
353
371
 
@@ -373,6 +391,12 @@ If your remote MCP server uses an authorization server with a known issuer URL:
373
391
  }
374
392
  ```
375
393
 
394
+ With this configuration, Gemini CLI requires the `iss` parameter in the
395
+ authorization callback. If the authorization server doesn't return `iss` in its
396
+ redirects, add `"authorizationResponseIssParameterSupported": false` to the
397
+ `oauth` block. Gemini CLI then accepts callbacks without `iss` while still
398
+ rejecting any `iss` value that doesn't match the configured `issuer`.
399
+
376
400
  #### Managing OAuth authentication
377
401
 
378
402
  Use the `/mcp auth` command to manage OAuth authentication:
@@ -398,6 +422,11 @@ Use the `/mcp auth` command to manage OAuth authentication:
398
422
  if omitted)
399
423
  - **`issuer`** (string): Authorization server issuer URL (auto-discovered if
400
424
  omitted; validated per RFC 9207)
425
+ - **`authorizationResponseIssParameterSupported`** (boolean): Whether the
426
+ authorization server returns the `iss` parameter in authorization responses
427
+ (RFC 9207). Auto-discovered from the authorization server metadata; defaults
428
+ to `true` when `issuer` is configured explicitly without discovered metadata.
429
+ Set to `false` to accept callbacks without `iss` for such a server.
401
430
  - **`tokenUrl`** (string): OAuth token endpoint (auto-discovered if omitted)
402
431
  - **`scopes`** (string[]): Required OAuth scopes
403
432
  - **`redirectUri`** (string): Custom redirect URI (defaults to an OS-assigned
@@ -21,6 +21,7 @@ export declare class OAuth2AuthProvider extends BaseA2AAuthProvider {
21
21
  readonly type = "oauth2";
22
22
  private readonly tokenStorage;
23
23
  private cachedToken;
24
+ private pendingAuthPromise;
24
25
  /** Resolved OAuth URLs — may come from config or agent card. */
25
26
  private authorizationUrl;
26
27
  private tokenUrl;
@@ -33,13 +34,21 @@ export declare class OAuth2AuthProvider extends BaseA2AAuthProvider {
33
34
  initialize(): Promise<void>;
34
35
  /**
35
36
  * Return an Authorization header with a valid Bearer token.
36
- * Refreshes or triggers interactive auth as needed.
37
+ * Refreshes or triggers interactive auth as needed, deduplicating concurrent requests.
37
38
  */
38
39
  headers(): Promise<HttpHeaders>;
40
+ /**
41
+ * Refresh an expired token or run interactive browser-based authentication.
42
+ */
43
+ private acquireToken;
44
+ /**
45
+ * Return the maximum number of consecutive authentication retries allowed.
46
+ */
47
+ protected getMaxAuthRetries(): number;
39
48
  /**
40
49
  * On 401/403, clear the cached token and re-authenticate (up to MAX_AUTH_RETRIES).
41
50
  */
42
- shouldRetryWithHeaders(_req: RequestInit, res: Response): Promise<HttpHeaders | undefined>;
51
+ shouldRetryWithHeaders(req: RequestInit, res: Response): Promise<HttpHeaders | undefined>;
43
52
  /**
44
53
  * Merge authorization_url, token_url, and scopes from the agent card's
45
54
  * `securitySchemes` when not already provided via user config.
@@ -27,6 +27,7 @@ export class OAuth2AuthProvider extends BaseA2AAuthProvider {
27
27
  type = 'oauth2';
28
28
  tokenStorage;
29
29
  cachedToken = null;
30
+ pendingAuthPromise = null;
30
31
  /** Resolved OAuth URLs — may come from config or agent card. */
31
32
  authorizationUrl;
32
33
  tokenUrl;
@@ -61,15 +62,30 @@ export class OAuth2AuthProvider extends BaseA2AAuthProvider {
61
62
  }
62
63
  /**
63
64
  * Return an Authorization header with a valid Bearer token.
64
- * Refreshes or triggers interactive auth as needed.
65
+ * Refreshes or triggers interactive auth as needed, deduplicating concurrent requests.
65
66
  */
66
67
  async headers() {
67
- // 1. Valid cached token → return immediately.
68
+ // 1. Valid cached token → return immediately and reset retry counter.
68
69
  if (this.cachedToken &&
69
70
  !this.tokenStorage.isTokenExpired(this.cachedToken)) {
71
+ this.authRetryCount = 0;
70
72
  return { Authorization: `Bearer ${this.cachedToken.accessToken}` };
71
73
  }
72
- // 2. Expired but has refresh token → attempt silent refresh.
74
+ // 2. Coalesce concurrent token refresh / interactive auth requests.
75
+ if (!this.pendingAuthPromise) {
76
+ this.pendingAuthPromise = this.acquireToken().finally(() => {
77
+ this.pendingAuthPromise = null;
78
+ });
79
+ }
80
+ const token = await this.pendingAuthPromise;
81
+ this.authRetryCount = 0;
82
+ return { Authorization: `Bearer ${token.accessToken}` };
83
+ }
84
+ /**
85
+ * Refresh an expired token or run interactive browser-based authentication.
86
+ */
87
+ async acquireToken() {
88
+ // 1. Expired but has refresh token → attempt silent refresh.
73
89
  if (this.cachedToken?.refreshToken &&
74
90
  this.tokenUrl &&
75
91
  this.config.client_id) {
@@ -81,34 +97,58 @@ export class OAuth2AuthProvider extends BaseA2AAuthProvider {
81
97
  }, this.cachedToken.refreshToken, this.tokenUrl);
82
98
  this.cachedToken = this.toOAuthToken(refreshed, this.cachedToken.refreshToken);
83
99
  await this.persistToken();
84
- return { Authorization: `Bearer ${this.cachedToken.accessToken}` };
100
+ return this.cachedToken;
85
101
  }
86
102
  catch (error) {
87
103
  debugLogger.debug(`[OAuth2AuthProvider] Refresh failed, falling back to interactive flow: ${getErrorMessage(error)}`);
88
104
  // Clear stale credentials and fall through to interactive flow.
105
+ this.cachedToken = null;
89
106
  await this.tokenStorage.deleteCredentials(this.agentName);
90
107
  }
91
108
  }
92
- // 3. No valid token → interactive browser-based auth.
109
+ // 2. No valid token → interactive browser-based auth.
93
110
  this.cachedToken = await this.authenticateInteractively();
94
- return { Authorization: `Bearer ${this.cachedToken.accessToken}` };
111
+ return this.cachedToken;
112
+ }
113
+ /**
114
+ * Return the maximum number of consecutive authentication retries allowed.
115
+ */
116
+ getMaxAuthRetries() {
117
+ return BaseA2AAuthProvider.MAX_AUTH_RETRIES;
95
118
  }
96
119
  /**
97
120
  * On 401/403, clear the cached token and re-authenticate (up to MAX_AUTH_RETRIES).
98
121
  */
99
- async shouldRetryWithHeaders(_req, res) {
122
+ async shouldRetryWithHeaders(req, res) {
100
123
  if (res.status !== 401 && res.status !== 403) {
101
124
  this.authRetryCount = 0;
102
125
  return undefined;
103
126
  }
104
- if (this.authRetryCount >= BaseA2AAuthProvider.MAX_AUTH_RETRIES) {
127
+ const reqHeaders = new Headers(req.headers);
128
+ const reqToken = reqHeaders.get('Authorization')?.split(' ')[1];
129
+ // If the token used in the request is already different from our current cached token
130
+ // (or if the cached token has already been cleared), another concurrent request has
131
+ // already initiated the re-authentication flow. We can safely retry with the new
132
+ // token without incrementing the retry count or clearing credentials again.
133
+ if (reqToken &&
134
+ (!this.cachedToken || reqToken !== this.cachedToken.accessToken)) {
135
+ debugLogger.debug('[OAuth2AuthProvider] Token already cleared or updated by another request, retrying with new token');
136
+ const retryCount = this.authRetryCount;
137
+ const headers = await this.headers();
138
+ this.authRetryCount = Math.max(this.authRetryCount, retryCount);
139
+ return headers;
140
+ }
141
+ if (this.authRetryCount >= this.getMaxAuthRetries()) {
105
142
  return undefined;
106
143
  }
107
- this.authRetryCount++;
144
+ const nextRetryCount = this.authRetryCount + 1;
145
+ this.authRetryCount = nextRetryCount;
108
146
  debugLogger.debug('[OAuth2AuthProvider] Auth failure, clearing token and re-authenticating');
109
147
  this.cachedToken = null;
110
148
  await this.tokenStorage.deleteCredentials(this.agentName);
111
- return this.headers();
149
+ const headers = await this.headers();
150
+ this.authRetryCount = nextRetryCount;
151
+ return headers;
112
152
  }
113
153
  // ---------------------------------------------------------------------------
114
154
  // Private helpers
@@ -174,7 +214,10 @@ export class OAuth2AuthProvider extends BaseA2AAuthProvider {
174
214
  /* resource= */ undefined);
175
215
  const consent = await getConsentForOauth(`Authentication required for A2A agent: '${this.agentName}'.`);
176
216
  if (!consent) {
177
- throw new FatalCancellationError('Authentication cancelled by user.');
217
+ const cancelError = new FatalCancellationError('Authentication cancelled by user.');
218
+ callbackServer.response.catch(() => { });
219
+ callbackServer.cancel?.(cancelError);
220
+ throw cancelError;
178
221
  }
179
222
  coreEvents.emitFeedback('info', `→ Opening your browser for OAuth sign-in...
180
223
 
@@ -1 +1 @@
1
- {"version":3,"file":"oauth2-provider.js","sourceRoot":"","sources":["../../../../src/agents/auth-provider/oauth2-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth2-provider.js","sourceRoot":"","sources":["../../../../src/agents/auth-provider/oauth2-provider.ts"],"names":[],"mappings":"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"}