@google/gemini-cli 0.65.0-preview.0 → 0.66.0-nightly.20261017.ged96faedf
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.
- package/README.md +21 -56
- package/bundle/{chunk-NL7ZHGCH.js → chunk-464WBVYM.js} +1 -1
- package/bundle/{chunk-QJK54DSE.js → chunk-5VQUE3OF.js} +1 -1
- package/bundle/{chunk-VF5WQSOE.js → chunk-7ARQMEMX.js} +1 -1
- package/bundle/{chunk-2WVLIJA5.js → chunk-BUG4N6U5.js} +145 -77
- package/bundle/{chunk-F6AJM4WN.js → chunk-DPV3ZEOC.js} +3 -3
- package/bundle/{chunk-GSQEBEGC.js → chunk-ERBSM2HU.js} +3 -3
- package/bundle/{chunk-WTRK3NVX.js → chunk-GEUFOF2X.js} +106 -1500
- package/bundle/{chunk-V2R74WAG.js → chunk-H4U2CWBQ.js} +151 -81
- package/bundle/chunk-HDP6V6JI.js +1956 -0
- package/bundle/{chunk-RPHDSDL6.js → chunk-IDCWFZU3.js} +1 -1
- package/bundle/{chunk-SN7QZKXC.js → chunk-IGOTAEJY.js} +170 -1551
- package/bundle/chunk-J5QPCO3J.js +101859 -0
- package/bundle/{chunk-H2CZXS7F.js → chunk-JY3DYBJT.js} +1 -1
- package/bundle/{chunk-HLOOE7YN.js → chunk-LDGJJCVW.js} +9 -8
- package/bundle/chunk-MH4KAY5W.js +512 -0
- package/bundle/{chunk-LLE5Z636.js → chunk-NAPT3FAL.js} +106 -1500
- package/bundle/chunk-NOSWGXRT.js +1956 -0
- package/bundle/{chunk-43EXRO7A.js → chunk-NU74STQ5.js} +145 -77
- package/bundle/{chunk-K7NOVQ6G.js → chunk-QCWGLPCO.js} +376 -231
- package/bundle/{chunk-WGL5FJOS.js → chunk-QF3ALSJN.js} +3 -3
- package/bundle/{chunk-K4G5D5ZZ.js → chunk-R4KPURFC.js} +1 -1
- package/bundle/chunk-R6XDLHLP.js +1956 -0
- package/bundle/chunk-R7UPATQC.js +1956 -0
- package/bundle/chunk-RACMC24X.js +118 -0
- package/bundle/{chunk-4JGVVJGK.js → chunk-RE4V6I3G.js} +1 -1
- package/bundle/{chunk-S7BCRBI4.js → chunk-UTTFPWGQ.js} +1 -1
- package/bundle/chunk-VXYA6LA4.js +1571 -0
- package/bundle/chunk-XY2QSBID.js +17603 -0
- package/bundle/{chunk-K7AA35SP.js → chunk-YOI4DS3V.js} +365 -230
- package/bundle/chunk-YP27UYI4.js +154 -0
- package/bundle/{chunk-TP236FKO.js → chunk-YPLMNSM4.js} +8243 -15166
- package/bundle/chunk-ZFQ347ZN.js +402181 -0
- package/bundle/{cleanup-HPADDONA.js → cleanup-6FAZDCL3.js} +2 -2
- package/bundle/{cleanup-JOMSXKMP.js → cleanup-GNZLZG55.js} +2 -2
- package/bundle/{cleanup-LYRJHMMO.js → cleanup-RX3AC5ET.js} +2 -2
- package/bundle/cleanup-WAU2KYGS.js +32 -0
- package/bundle/{core-NCJTYARO.js → core-AGGXDQOT.js} +13 -1
- package/bundle/{devtoolsService-WP2OPVPB.js → devtoolsService-6XOCGTLC.js} +2 -2
- package/bundle/{devtoolsService-JFJBTZ4B.js → devtoolsService-FBTSVQ57.js} +4 -3
- package/bundle/{devtoolsService-HIZA3JGR.js → devtoolsService-UO6ZB72B.js} +2 -2
- package/bundle/devtoolsService-W5QGZ3SW.js +4359 -0
- package/bundle/{dist-GQKLLBDW.js → dist-2ELAEESC.js} +13 -1
- package/bundle/{core-IVQAI4S6.js → dist-2R7C2WHA.js} +13 -1
- package/bundle/dist-PALH7PJS.js +2280 -0
- package/bundle/docs/changelogs/index.md +22 -0
- package/bundle/docs/changelogs/latest.md +64 -54
- package/bundle/docs/changelogs/preview.md +91 -55
- package/bundle/docs/reference/configuration.md +8 -3
- package/bundle/docs/reference/keyboard-shortcuts.md +18 -4
- package/bundle/{gemini-5TUKZVGS.js → gemini-6MH55Y7F.js} +37 -18
- package/bundle/{gemini-7CHJYSHM.js → gemini-DOXUDJDY.js} +37 -18
- package/bundle/{gemini-546WMAHG.js → gemini-OHYXI52N.js} +237 -202
- package/bundle/gemini-OUEDCH4P.js +17970 -0
- package/bundle/gemini.js +14 -15
- package/bundle/{interactiveCli-E3PUPYMZ.js → interactiveCli-7LIKGDTJ.js} +1061 -989
- package/bundle/{interactiveCli-5XIAIY74.js → interactiveCli-EGQYN3KR.js} +1371 -1280
- package/bundle/{interactiveCli-L4PK7YY3.js → interactiveCli-TG7PGV4V.js} +1061 -989
- package/bundle/interactiveCli-YEXCUIFZ.js +35601 -0
- package/bundle/{liteRtServerManager-JCTYJBV5.js → liteRtServerManager-KAPXZ3EU.js} +4 -4
- package/bundle/{liteRtServerManager-JERG6KYC.js → liteRtServerManager-MSJIWMWP.js} +4 -4
- package/bundle/{liteRtServerManager-22ISMNN2.js → liteRtServerManager-PD2N3GLD.js} +4 -4
- package/bundle/liteRtServerManager-X5SCFYXM.js +65 -0
- package/bundle/{oauth2-provider-XRUER2XR.js → oauth2-provider-IUN6Z4IO.js} +1 -1
- package/bundle/{oauth2-provider-477UJQX6.js → oauth2-provider-MKJIQNWP.js} +41 -79
- package/bundle/{oauth2-provider-MKWWBW4K.js → oauth2-provider-RMF7U2UN.js} +1 -1
- package/bundle/oauth2-provider-ZM5GWCNX.js +273 -0
- package/bundle/{start-MVIPJNQ5.js → start-5GIUIER3.js} +6 -6
- package/bundle/{start-RZWSVT55.js → start-APIVGXZ3.js} +6 -6
- package/bundle/{start-AGMBPY3O.js → start-GJ4TH4KZ.js} +6 -6
- package/bundle/start-WDS52ZNE.js +18 -0
- package/package.json +1 -1
- package/bundle/chunk-4DCA4L53.js +0 -425
- package/bundle/chunk-BFIV7GTA.js +0 -425
- package/bundle/chunk-V72FRESD.js +0 -425
|
@@ -18,6 +18,28 @@ 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.64.0 - 2026-10-13
|
|
22
|
+
|
|
23
|
+
- **Atomic Operations & State Persistence:** Serialized file tool operations
|
|
24
|
+
with atomic writes and introduced atomic CLI state persistence with automatic
|
|
25
|
+
recovery from backup on corruption
|
|
26
|
+
([#29499](https://github.com/google-gemini/gemini-cli/pull/29499) by
|
|
27
|
+
@elberthc-byte,
|
|
28
|
+
[#29558](https://github.com/google-gemini/gemini-cli/pull/29558) by
|
|
29
|
+
@urielefrenvirtusa).
|
|
30
|
+
- **Chat Recording Optimization:** Implemented append-only delta patching and
|
|
31
|
+
bounded history windowing in ChatRecordingService to optimize memory and disk
|
|
32
|
+
efficiency during long-running sessions
|
|
33
|
+
([#29568](https://github.com/google-gemini/gemini-cli/pull/29568) by
|
|
34
|
+
@jvargassanchez-dot).
|
|
35
|
+
- **CLI Interaction & Input Robustness:** Resolved `@file:line` references,
|
|
36
|
+
prevented CPU hangs on `@` in code blocks, and ensured Ctrl+C emergency aborts
|
|
37
|
+
reliably reach cancellation handlers
|
|
38
|
+
([#29581](https://github.com/google-gemini/gemini-cli/pull/29581) by
|
|
39
|
+
@jesussamuel-byte,
|
|
40
|
+
[#29586](https://github.com/google-gemini/gemini-cli/pull/29586) by
|
|
41
|
+
@urielefrenvirtusa).
|
|
42
|
+
|
|
21
43
|
## Announcements: v0.63.0 - 2026-10-06
|
|
22
44
|
|
|
23
45
|
- **Autonomous Plan Execution:** Enabled autonomous plan execution in
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Latest stable release: v0.
|
|
1
|
+
# Latest stable release: v0.64.0
|
|
2
2
|
|
|
3
|
-
Released: October
|
|
3
|
+
Released: October 13, 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,62 +11,72 @@ npm install -g @google/gemini-cli
|
|
|
11
11
|
|
|
12
12
|
## Highlights
|
|
13
13
|
|
|
14
|
-
- **
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
- **
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
- **
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
- **
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
14
|
+
- **Atomic File Operations & State Recovery:** Serialized file tool operations
|
|
15
|
+
with atomic writes and introduced atomic CLI state persistence with automatic
|
|
16
|
+
recovery from backup on corruption.
|
|
17
|
+
- **Chat Recording Optimization:** Implemented append-only delta patching and
|
|
18
|
+
bounded history windowing in ChatRecordingService to optimize memory and disk
|
|
19
|
+
efficiency during long-running sessions.
|
|
20
|
+
- **CLI Input & Reference Resolution:** Added support for resolving `@file:line`
|
|
21
|
+
references, resolved CPU hangs and quote swallowing on `@` symbols within code
|
|
22
|
+
blocks, and prevented ghost text wrap hangs.
|
|
23
|
+
- **Terminal UI & Interaction Stability:** Ensured Ctrl+C emergency aborts
|
|
24
|
+
reliably reach active cancellation handlers, made selection list confirmation
|
|
25
|
+
with Enter and Spacebar dependable, preserved scroll positions, and fixed
|
|
26
|
+
Windows ConPTY IME cursor forwarding.
|
|
27
27
|
|
|
28
28
|
## What's Changed
|
|
29
29
|
|
|
30
|
-
-
|
|
31
|
-
|
|
32
|
-
[#
|
|
33
|
-
-
|
|
34
|
-
|
|
35
|
-
-
|
|
36
|
-
|
|
37
|
-
-
|
|
38
|
-
|
|
39
|
-
[#
|
|
40
|
-
-
|
|
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
|
+
- refactor(a2a-server): implement V1 to V2 settings migration logic by
|
|
31
|
+
@jvargassanchez-dot in
|
|
32
|
+
[#29450](https://github.com/google-gemini/gemini-cli/pull/29450)
|
|
33
|
+
- fix(acp): bridge PromptResponse.usage and emit usage_update notifications
|
|
34
|
+
(#29389) by @elberthc-byte in
|
|
35
|
+
[#29549](https://github.com/google-gemini/gemini-cli/pull/29549)
|
|
36
|
+
- Changelog for v0.63.0-preview.0 by @gemini-cli-robot in
|
|
37
|
+
[#29565](https://github.com/google-gemini/gemini-cli/pull/29565)
|
|
38
|
+
- fix(cli): propagate resolved folder trust state in headless mode (#29031) by
|
|
39
|
+
@amelidev in [#29528](https://github.com/google-gemini/gemini-cli/pull/29528)
|
|
40
|
+
- chore(release): bump version to 0.64.0-nightly.20260929.gd75234cae by
|
|
48
41
|
@gemini-cli-robot in
|
|
49
|
-
[#
|
|
50
|
-
-
|
|
51
|
-
|
|
52
|
-
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
-
|
|
59
|
-
|
|
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
|
|
42
|
+
[#29567](https://github.com/google-gemini/gemini-cli/pull/29567)
|
|
43
|
+
- fix(cli): prevent CPU hang and quote swallowing on @ within code (#29434) by
|
|
44
|
+
@elberthc-byte in
|
|
45
|
+
[#29557](https://github.com/google-gemini/gemini-cli/pull/29557)
|
|
46
|
+
- fix(core): serialize file tool operations and make writes atomic (#29078) by
|
|
47
|
+
@elberthc-byte in
|
|
48
|
+
[#29499](https://github.com/google-gemini/gemini-cli/pull/29499)
|
|
49
|
+
- fix(core): implement append-only delta patching and bounded history windowing
|
|
50
|
+
in ChatRecordingService by @jvargassanchez-dot in
|
|
51
|
+
[#29568](https://github.com/google-gemini/gemini-cli/pull/29568)
|
|
52
|
+
- fix(cli): persist state atomically and recover from backup on corruption by
|
|
65
53
|
@urielefrenvirtusa in
|
|
66
|
-
[#
|
|
67
|
-
- fix(
|
|
68
|
-
by @
|
|
69
|
-
[#
|
|
54
|
+
[#29558](https://github.com/google-gemini/gemini-cli/pull/29558)
|
|
55
|
+
- fix(cli): ensure Ctrl+C emergency abort reaches cancellation handler during
|
|
56
|
+
active operations by @urielefrenvirtusa in
|
|
57
|
+
[#29586](https://github.com/google-gemini/gemini-cli/pull/29586)
|
|
58
|
+
- fix(cli): resolve @file:line references and prevent ghost text wrap hang by
|
|
59
|
+
@jesussamuel-byte in
|
|
60
|
+
[#29581](https://github.com/google-gemini/gemini-cli/pull/29581)
|
|
61
|
+
- fix(ui): ensure Windows ConPTY forwards IME cursor position by
|
|
62
|
+
@jesussamuel-byte in
|
|
63
|
+
[#29560](https://github.com/google-gemini/gemini-cli/pull/29560)
|
|
64
|
+
- fix(cli): retry directory removal on Windows locking errors during extension
|
|
65
|
+
updates by @jesussamuel-byte in
|
|
66
|
+
[#29540](https://github.com/google-gemini/gemini-cli/pull/29540)
|
|
67
|
+
- fix(acp): resolve session by exact id and handle listener cleanup on session
|
|
68
|
+
failure by @diegogodinezr in
|
|
69
|
+
[#29580](https://github.com/google-gemini/gemini-cli/pull/29580)
|
|
70
|
+
- fix(cli): preserve scroll position and partition pending height budget by
|
|
71
|
+
@luisfelipe-alt in
|
|
72
|
+
[#29520](https://github.com/google-gemini/gemini-cli/pull/29520)
|
|
73
|
+
- fix(cli): ensure Enter and Spacebar reliably confirm selection list options by
|
|
74
|
+
@ugorla-dev in
|
|
75
|
+
[#29502](https://github.com/google-gemini/gemini-cli/pull/29502)
|
|
76
|
+
- fix(patch): cherry-pick 2ce1a69 to release/v0.64.0-preview.0-pr-29672 to patch
|
|
77
|
+
version v0.64.0-preview.0 and create version 0.64.0-preview.1 by
|
|
78
|
+
@gemini-cli-robot in
|
|
79
|
+
[#29696](https://github.com/google-gemini/gemini-cli/pull/29696)
|
|
70
80
|
|
|
71
81
|
**Full Changelog**:
|
|
72
|
-
https://github.com/google-gemini/gemini-cli/compare/v0.
|
|
82
|
+
https://github.com/google-gemini/gemini-cli/compare/v0.63.0...v0.64.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Preview release: v0.
|
|
1
|
+
# Preview release: v0.65.0-preview.0
|
|
2
2
|
|
|
3
|
-
Released: October
|
|
3
|
+
Released: October 13, 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,67 +13,103 @@ npm install -g @google/gemini-cli@preview
|
|
|
13
13
|
|
|
14
14
|
## Highlights
|
|
15
15
|
|
|
16
|
-
- **
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
- **
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
16
|
+
- **Custom Telemetry Headers**: Added support for configuring custom OTLP
|
|
17
|
+
headers in telemetry settings, enabling authentication and header
|
|
18
|
+
customization for OpenTelemetry collectors.
|
|
19
|
+
- **File System Performance & Traversal**: Optimized ignore pattern filtering
|
|
20
|
+
with subtree pruning to accelerate directory scanning, deferred recursive file
|
|
21
|
+
reads for `@<directory>` references, and improved empty file handling across
|
|
22
|
+
multi-byte encodings.
|
|
23
|
+
- **Session Resilience & State Integrity**: Prevented session poisoning during
|
|
24
|
+
rapid Ctrl+C interruptions, preserved resumed session history on quick exits,
|
|
25
|
+
and eliminated duplicate tool response turns upon resuming sessions.
|
|
26
|
+
- **Authentication & Workspace Security**: Enforced read-only workspace settings
|
|
27
|
+
in untrusted directories, aligned OAuth callback parameter validation with RFC
|
|
28
|
+
9207 metadata, and resolved infinite authentication retry loops.
|
|
29
|
+
- **Terminal UI & Interactive Stability**: Resolved interactive mode hangs on
|
|
30
|
+
Enter keypresses, prevented unnecessary terminal clears and scroll resets when
|
|
31
|
+
expanding output with Ctrl+O, and restored debounced static UI refreshes on
|
|
32
|
+
terminal width changes.
|
|
28
33
|
|
|
29
34
|
## What's Changed
|
|
30
35
|
|
|
31
|
-
-
|
|
36
|
+
- fix(cli): enforce read-only workspace settings in untrusted folders by
|
|
32
37
|
@jvargassanchez-dot in
|
|
33
|
-
[#
|
|
34
|
-
- fix(
|
|
35
|
-
|
|
36
|
-
[#
|
|
37
|
-
-
|
|
38
|
-
|
|
39
|
-
-
|
|
40
|
-
|
|
41
|
-
|
|
38
|
+
[#29583](https://github.com/google-gemini/gemini-cli/pull/29583)
|
|
39
|
+
- fix(core): avoid duplicate tool response turns when resuming sessions by
|
|
40
|
+
@diegogodinezr in
|
|
41
|
+
[#29618](https://github.com/google-gemini/gemini-cli/pull/29618)
|
|
42
|
+
- fix(core): prevent deletion of resumed session history on quick exit (#29198)
|
|
43
|
+
by @villahernandez-coder in
|
|
44
|
+
[#29584](https://github.com/google-gemini/gemini-cli/pull/29584)
|
|
45
|
+
- Changelog for v0.64.0-preview.0 by @gemini-cli-robot in
|
|
46
|
+
[#29656](https://github.com/google-gemini/gemini-cli/pull/29656)
|
|
47
|
+
- Changelog for v0.63.0 by @gemini-cli-robot in
|
|
48
|
+
[#29659](https://github.com/google-gemini/gemini-cli/pull/29659)
|
|
49
|
+
- fix(core): align OAuth callback iss parameter validation with RFC 9207
|
|
50
|
+
metadata by @luisfelipe-alt in
|
|
51
|
+
[#29616](https://github.com/google-gemini/gemini-cli/pull/29616)
|
|
52
|
+
- fix(cli): prevent unnecessary terminal clears and scroll resets when expanding
|
|
53
|
+
with Ctrl+O by @jesussamuel-byte in
|
|
54
|
+
[#29640](https://github.com/google-gemini/gemini-cli/pull/29640)
|
|
55
|
+
- chore(release): bump version to 0.65.0-nightly.20261006.gfb972b2f8 by
|
|
42
56
|
@gemini-cli-robot in
|
|
43
|
-
[#
|
|
44
|
-
- fix(
|
|
45
|
-
@
|
|
46
|
-
[#
|
|
47
|
-
- fix(core):
|
|
57
|
+
[#29657](https://github.com/google-gemini/gemini-cli/pull/29657)
|
|
58
|
+
- fix(ci): add missing loop in unassign-inactive-assignees workflow by
|
|
59
|
+
@ugorla-dev in
|
|
60
|
+
[#29609](https://github.com/google-gemini/gemini-cli/pull/29609)
|
|
61
|
+
- fix(core): enforce terminal user turn invariant and normalize request contents
|
|
62
|
+
by @luisfelipe-alt in
|
|
63
|
+
[#29612](https://github.com/google-gemini/gemini-cli/pull/29612)
|
|
64
|
+
- `feat(telemetry): support custom OTLP headers in telemetry configuration` by
|
|
65
|
+
@jesussamuel-byte in
|
|
66
|
+
[#29641](https://github.com/google-gemini/gemini-cli/pull/29641)
|
|
67
|
+
- fix(auth): prevent infinite verification and OAuth retry loops by
|
|
68
|
+
@villahernandez-coder in
|
|
69
|
+
[#29655](https://github.com/google-gemini/gemini-cli/pull/29655)
|
|
70
|
+
- fix(cli): handle JSON parse and response stream errors in fetchJson by
|
|
71
|
+
@jesussamuel-byte in
|
|
72
|
+
[#29658](https://github.com/google-gemini/gemini-cli/pull/29658)
|
|
73
|
+
- fix(core): preserve line terminators in truncateString by @diegogodinezr in
|
|
74
|
+
[#29673](https://github.com/google-gemini/gemini-cli/pull/29673)
|
|
75
|
+
- fix(vscode-ide-companion): make IdeServer.stop() resolve while MCP sessions
|
|
76
|
+
are open by @elberthc-byte in
|
|
77
|
+
[#29674](https://github.com/google-gemini/gemini-cli/pull/29674)
|
|
78
|
+
- fix(core): retain ask_user question text in the tool result display by
|
|
48
79
|
@elberthc-byte in
|
|
49
|
-
[#
|
|
50
|
-
- fix(core):
|
|
51
|
-
|
|
52
|
-
[#
|
|
53
|
-
- fix(cli):
|
|
80
|
+
[#29677](https://github.com/google-gemini/gemini-cli/pull/29677)
|
|
81
|
+
- fix(core): eliminate false positives on untrusted command flags and compound
|
|
82
|
+
loops by @DavidAPierce in
|
|
83
|
+
[#29672](https://github.com/google-gemini/gemini-cli/pull/29672)
|
|
84
|
+
- fix(cli): clear cached credentials when re-selecting Google login by
|
|
54
85
|
@urielefrenvirtusa in
|
|
55
|
-
[#
|
|
56
|
-
- fix(cli):
|
|
57
|
-
|
|
58
|
-
[#
|
|
59
|
-
-
|
|
86
|
+
[#29643](https://github.com/google-gemini/gemini-cli/pull/29643)
|
|
87
|
+
- fix(cli): resolve hang on Enter keypress in interactive mode (#23297) by
|
|
88
|
+
@elberthc-byte in
|
|
89
|
+
[#29476](https://github.com/google-gemini/gemini-cli/pull/29476)
|
|
90
|
+
- perf(core): optimize ignore filtering and enable subtree pruning (#29077) by
|
|
91
|
+
@amelidev in [#29582](https://github.com/google-gemini/gemini-cli/pull/29582)
|
|
92
|
+
- fix(a2a-server): isolate tool rejection to active call in sequential batches
|
|
93
|
+
by @jvargassanchez-dot in
|
|
94
|
+
[#29683](https://github.com/google-gemini/gemini-cli/pull/29683)
|
|
95
|
+
- fix(cli): skip eager recursive file reading for @<directory> references by
|
|
96
|
+
@jvargassanchez-dot in
|
|
97
|
+
[#29617](https://github.com/google-gemini/gemini-cli/pull/29617)
|
|
98
|
+
- fix(cli): keep loading other extensions when one fails the allowlist check by
|
|
60
99
|
@jesussamuel-byte in
|
|
61
|
-
[#
|
|
62
|
-
- fix(
|
|
100
|
+
[#29720](https://github.com/google-gemini/gemini-cli/pull/29720)
|
|
101
|
+
- fix(cli): correct reverse search highlight index for expanding unicode
|
|
102
|
+
characters by @diegogodinezr in
|
|
103
|
+
[#29699](https://github.com/google-gemini/gemini-cli/pull/29699)
|
|
104
|
+
- fix(core): treat whitespace-only UTF-16 and UTF-32 files as empty by
|
|
63
105
|
@jesussamuel-byte in
|
|
64
|
-
[#
|
|
65
|
-
- fix(cli):
|
|
66
|
-
|
|
67
|
-
[#
|
|
68
|
-
- fix(
|
|
69
|
-
|
|
70
|
-
[#
|
|
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)
|
|
106
|
+
[#29722](https://github.com/google-gemini/gemini-cli/pull/29722)
|
|
107
|
+
- fix(cli): restore debounced static UI refresh on terminal width changes by
|
|
108
|
+
@jvargassanchez-dot in
|
|
109
|
+
[#29644](https://github.com/google-gemini/gemini-cli/pull/29644)
|
|
110
|
+
- fix(cli): prevent session poisoning on rapid Ctrl-C interruption by
|
|
111
|
+
@villahernandez-coder in
|
|
112
|
+
[#29728](https://github.com/google-gemini/gemini-cli/pull/29728)
|
|
77
113
|
|
|
78
114
|
**Full Changelog**:
|
|
79
|
-
https://github.com/google-gemini/gemini-cli/compare/v0.
|
|
115
|
+
https://github.com/google-gemini/gemini-cli/compare/v0.64.0-preview.1...v0.65.0-preview.0
|
|
@@ -66,9 +66,14 @@ variables using `$VAR_NAME`, `${VAR_NAME}`, or `${VAR_NAME:-DEFAULT_VALUE}`
|
|
|
66
66
|
syntax. These variables will be automatically resolved when the settings are
|
|
67
67
|
loaded. For example, if you have an environment variable `MY_API_TOKEN`, you
|
|
68
68
|
could use it in `settings.json` like this: `"apiKey": "$MY_API_TOKEN"`. If you
|
|
69
|
-
want to provide a fallback value, use `${MY_API_TOKEN:-default-token}`.
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
want to provide a fallback value, use `${MY_API_TOKEN:-default-token}`. You can
|
|
70
|
+
reference variables from your shell environment as well as variables loaded from
|
|
71
|
+
[`.env` files](#environment-variables-and-env-files). The settings that control
|
|
72
|
+
how `.env` files are loaded, such as `security.folderTrust.enabled`,
|
|
73
|
+
`advanced.ignoreLocalEnv`, `advanced.excludedEnvVars`, and `tools.sandbox`, are
|
|
74
|
+
evaluated before any `.env` file is loaded, so they can only reference variables
|
|
75
|
+
from your shell environment. Additionally, each extension can have its own
|
|
76
|
+
`.env` file in its directory, which will be loaded automatically.
|
|
72
77
|
|
|
73
78
|
**Note for Enterprise Users:** For guidance on deploying and managing Gemini CLI
|
|
74
79
|
in a corporate environment, see the
|
|
@@ -152,7 +152,7 @@ You can add alternative keybindings or remove default keybindings by creating a
|
|
|
152
152
|
|
|
153
153
|
The configuration uses a JSON array of objects, similar to VS Code's keybinding
|
|
154
154
|
schema. Each object must specify a `command` from the reference tables above and
|
|
155
|
-
a `key` combination
|
|
155
|
+
a `key` combination or an array of `keys`.
|
|
156
156
|
|
|
157
157
|
```json
|
|
158
158
|
[
|
|
@@ -165,6 +165,16 @@ a `key` combination.
|
|
|
165
165
|
"command": "-app.toggleYolo",
|
|
166
166
|
"key": "ctrl+y"
|
|
167
167
|
},
|
|
168
|
+
{
|
|
169
|
+
// unbind multiple keys in a single entry
|
|
170
|
+
"command": "-input.newline",
|
|
171
|
+
"keys": ["alt+enter", "ctrl+enter", "shift+enter", "ctrl+j"]
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
// bind multiple keys in a single entry
|
|
175
|
+
"command": "input.newline",
|
|
176
|
+
"keys": ["enter", "shift+enter"]
|
|
177
|
+
},
|
|
168
178
|
{
|
|
169
179
|
"command": "input.submit",
|
|
170
180
|
"key": "ctrl+y"
|
|
@@ -187,9 +197,13 @@ a `key` combination.
|
|
|
187
197
|
]
|
|
188
198
|
```
|
|
189
199
|
|
|
190
|
-
- **Unbinding
|
|
191
|
-
(`-`) to the `command` name.
|
|
192
|
-
|
|
200
|
+
- **Unbinding**: To remove an existing or default keybinding, prefix a minus
|
|
201
|
+
sign (`-`) to the `command` name. You can unbind multiple keys in a single
|
|
202
|
+
entry using `keys`.
|
|
203
|
+
- **Multiple Keys**: You can provide an array of key combinations using `keys`
|
|
204
|
+
instead of (or in addition to) `key`. The first key in `keys` acts as the
|
|
205
|
+
primary shortcut displayed in the UI.
|
|
206
|
+
- **No Auto-unbinding**: The same key can be bound to multiple commands in
|
|
193
207
|
different contexts at the same time. Therefore, creating a binding does not
|
|
194
208
|
automatically unbind the key from other commands.
|
|
195
209
|
- **Explicit Modifiers**: Key matching is explicit. For example, a binding for
|
|
@@ -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-
|
|
5
|
+
} from "./chunk-DPV3ZEOC.js";
|
|
6
6
|
import {
|
|
7
7
|
BuiltinCommandLoader,
|
|
8
8
|
CommandService,
|
|
@@ -35,7 +35,6 @@ import {
|
|
|
35
35
|
promptForSetting,
|
|
36
36
|
renderSkillActionFeedback,
|
|
37
37
|
requestConsentNonInteractive,
|
|
38
|
-
require_semver,
|
|
39
38
|
skillsConsentString,
|
|
40
39
|
startAutoMemoryIfEnabled,
|
|
41
40
|
statusCommand,
|
|
@@ -46,11 +45,11 @@ import {
|
|
|
46
45
|
updateExtension,
|
|
47
46
|
validateAuthMethod,
|
|
48
47
|
validateContextFilePath
|
|
49
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-IGOTAEJY.js";
|
|
50
49
|
import {
|
|
51
50
|
exitCli,
|
|
52
51
|
require_source
|
|
53
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-R4KPURFC.js";
|
|
54
53
|
import {
|
|
55
54
|
appEvents
|
|
56
55
|
} from "./chunk-5PS3AYFU.js";
|
|
@@ -89,11 +88,12 @@ import {
|
|
|
89
88
|
resolveGemmaConfig,
|
|
90
89
|
saveModelChange,
|
|
91
90
|
stripAnsi
|
|
92
|
-
} from "./chunk-
|
|
91
|
+
} from "./chunk-H4U2CWBQ.js";
|
|
93
92
|
import {
|
|
94
|
-
RELAUNCH_EXIT_CODE
|
|
95
|
-
|
|
96
|
-
|
|
93
|
+
RELAUNCH_EXIT_CODE,
|
|
94
|
+
require_semver
|
|
95
|
+
} from "./chunk-R6XDLHLP.js";
|
|
96
|
+
import "./chunk-MH4KAY5W.js";
|
|
97
97
|
import {
|
|
98
98
|
cleanupCheckpoints,
|
|
99
99
|
registerCleanup,
|
|
@@ -102,7 +102,7 @@ import {
|
|
|
102
102
|
runExitCleanup,
|
|
103
103
|
runSyncCleanup,
|
|
104
104
|
setupSignalHandlers
|
|
105
|
-
} from "./chunk-
|
|
105
|
+
} from "./chunk-UTTFPWGQ.js";
|
|
106
106
|
import {
|
|
107
107
|
ASK_USER_TOOL_NAME,
|
|
108
108
|
ApprovalMode,
|
|
@@ -257,7 +257,7 @@ import {
|
|
|
257
257
|
updatePolicy,
|
|
258
258
|
writeToStderr,
|
|
259
259
|
writeToStdout
|
|
260
|
-
} from "./chunk-
|
|
260
|
+
} from "./chunk-YPLMNSM4.js";
|
|
261
261
|
import "./chunk-664ZODQF.js";
|
|
262
262
|
import "./chunk-IUUIT4SU.js";
|
|
263
263
|
import "./chunk-L6PII3GR.js";
|
|
@@ -7876,7 +7876,7 @@ async function loadSandboxConfig(settings, argv) {
|
|
|
7876
7876
|
}
|
|
7877
7877
|
const command2 = getSandboxCommand(sandboxValue);
|
|
7878
7878
|
const packageJson = await getPackageJson(__dirname3);
|
|
7879
|
-
const image = process.env["GEMINI_SANDBOX_IMAGE"] ?? "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.
|
|
7879
|
+
const image = process.env["GEMINI_SANDBOX_IMAGE"] ?? "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.66.0-nightly.20261017.ged96faedf" ?? customImage ?? packageJson?.config?.sandboxImageUri;
|
|
7880
7880
|
const isNative = command2 === "windows-native" || command2 === "sandbox-exec" || command2 === "lxc";
|
|
7881
7881
|
return command2 && (image || isNative) ? { enabled: true, allowedPaths, networkAccess, command: command2, image } : void 0;
|
|
7882
7882
|
}
|
|
@@ -11547,7 +11547,7 @@ async function runNonInteractive({
|
|
|
11547
11547
|
}
|
|
11548
11548
|
});
|
|
11549
11549
|
if (process.env["GEMINI_CLI_ACTIVITY_LOG_TARGET"]) {
|
|
11550
|
-
const { setupInitialActivityLogger } = await import("./devtoolsService-
|
|
11550
|
+
const { setupInitialActivityLogger } = await import("./devtoolsService-6XOCGTLC.js");
|
|
11551
11551
|
setupInitialActivityLogger(config);
|
|
11552
11552
|
}
|
|
11553
11553
|
const { stdout: workingStdout } = createWorkingStdio();
|
|
@@ -12057,7 +12057,7 @@ async function runNonInteractive2(params) {
|
|
|
12057
12057
|
}
|
|
12058
12058
|
});
|
|
12059
12059
|
if (process.env["GEMINI_CLI_ACTIVITY_LOG_TARGET"]) {
|
|
12060
|
-
const { setupInitialActivityLogger } = await import("./devtoolsService-
|
|
12060
|
+
const { setupInitialActivityLogger } = await import("./devtoolsService-6XOCGTLC.js");
|
|
12061
12061
|
setupInitialActivityLogger(config);
|
|
12062
12062
|
}
|
|
12063
12063
|
const { stdout: workingStdout } = createWorkingStdio();
|
|
@@ -17084,11 +17084,27 @@ var SlashCommandConflictHandler = class {
|
|
|
17084
17084
|
clearTimeout(this.flushTimeout);
|
|
17085
17085
|
this.flushTimeout = null;
|
|
17086
17086
|
}
|
|
17087
|
+
this.pendingConflicts = [];
|
|
17088
|
+
this.notifiedConflicts.clear();
|
|
17089
|
+
}
|
|
17090
|
+
getConflictKey(c) {
|
|
17091
|
+
const sourceId = c.loserExtensionName || c.loserMcpServerName || c.loserKind;
|
|
17092
|
+
return `${c.name}:${sourceId}:${c.renamedTo}`;
|
|
17087
17093
|
}
|
|
17088
17094
|
handleConflicts(payload) {
|
|
17095
|
+
const currentConflictKeys = new Set(
|
|
17096
|
+
payload.conflicts.map((c) => this.getConflictKey(c))
|
|
17097
|
+
);
|
|
17098
|
+
for (const key of this.notifiedConflicts) {
|
|
17099
|
+
if (!currentConflictKeys.has(key)) {
|
|
17100
|
+
this.notifiedConflicts.delete(key);
|
|
17101
|
+
}
|
|
17102
|
+
}
|
|
17103
|
+
this.pendingConflicts = this.pendingConflicts.filter(
|
|
17104
|
+
(c) => currentConflictKeys.has(this.getConflictKey(c))
|
|
17105
|
+
);
|
|
17089
17106
|
const newConflicts = payload.conflicts.filter((c) => {
|
|
17090
|
-
const
|
|
17091
|
-
const key = `${c.name}:${sourceId}:${c.renamedTo}`;
|
|
17107
|
+
const key = this.getConflictKey(c);
|
|
17092
17108
|
if (this.notifiedConflicts.has(key)) {
|
|
17093
17109
|
return false;
|
|
17094
17110
|
}
|
|
@@ -17098,6 +17114,9 @@ var SlashCommandConflictHandler = class {
|
|
|
17098
17114
|
if (newConflicts.length > 0) {
|
|
17099
17115
|
this.pendingConflicts.push(...newConflicts);
|
|
17100
17116
|
this.scheduleFlush();
|
|
17117
|
+
} else if (this.pendingConflicts.length === 0 && this.flushTimeout) {
|
|
17118
|
+
clearTimeout(this.flushTimeout);
|
|
17119
|
+
this.flushTimeout = null;
|
|
17101
17120
|
}
|
|
17102
17121
|
}
|
|
17103
17122
|
scheduleFlush() {
|
|
@@ -17435,7 +17454,7 @@ async function resolveSessionId(resumeArg, sessionIdArg, sessionFileArg) {
|
|
|
17435
17454
|
}
|
|
17436
17455
|
}
|
|
17437
17456
|
async function startInteractiveUI(config, settings, startupWarnings, workspaceRoot = process.cwd(), resumedSessionData, initializationResult) {
|
|
17438
|
-
const { startInteractiveUI: doStartUI } = await import("./interactiveCli-
|
|
17457
|
+
const { startInteractiveUI: doStartUI } = await import("./interactiveCli-YEXCUIFZ.js");
|
|
17439
17458
|
await doStartUI(
|
|
17440
17459
|
config,
|
|
17441
17460
|
settings,
|
|
@@ -17644,7 +17663,7 @@ ${finalArgs[promptIndex + 1]}`;
|
|
|
17644
17663
|
await config.storage.initialize();
|
|
17645
17664
|
adminControlsListner.setConfig(config);
|
|
17646
17665
|
if (config.isInteractive() && settings.merged.general.devtools) {
|
|
17647
|
-
const { setupInitialActivityLogger } = await import("./devtoolsService-
|
|
17666
|
+
const { setupInitialActivityLogger } = await import("./devtoolsService-6XOCGTLC.js");
|
|
17648
17667
|
setupInitialActivityLogger(config);
|
|
17649
17668
|
}
|
|
17650
17669
|
registerTelemetryConfig(config);
|
|
@@ -17703,7 +17722,7 @@ ${finalArgs[promptIndex + 1]}`;
|
|
|
17703
17722
|
const initAppHandle = startupProfiler.start("initialize_app");
|
|
17704
17723
|
const initializationResult = await initializeApp(config, settings);
|
|
17705
17724
|
initAppHandle?.end();
|
|
17706
|
-
import("./liteRtServerManager-
|
|
17725
|
+
import("./liteRtServerManager-PD2N3GLD.js").then(({ LiteRtServerManager }) => {
|
|
17707
17726
|
const mergedGemma = settings.merged.experimental?.gemmaModelRouter;
|
|
17708
17727
|
if (!mergedGemma) return;
|
|
17709
17728
|
const userGemma = settings.forScope("User" /* User */).settings.experimental?.gemmaModelRouter;
|