Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
880 commits
Select commit Hold shift + click to select a range
cb289e0
fix(core): honor GOOGLE_GEMINI_BASE_URL and GOOGLE_VERTEX_BASE_URL (#…
chrisjcthomas Apr 15, 2026
cb35ee6
fix(cli): clean up slash command IDE listeners (#24397)
jasonsuhari Apr 15, 2026
e827cfd
Changelog for v0.38.0 (#25470)
gemini-cli-robot Apr 15, 2026
00b7781
fix(evals): update eval tests for invoke_agent telemetry and project-…
SandyTao520 Apr 15, 2026
34a9d6e
Changelog for v0.38.1 (#25476)
gemini-cli-robot Apr 16, 2026
6d7974f
feat(core): integrate skill-creator into skill extraction agent (#25421)
SandyTao520 Apr 16, 2026
963631a
feat(cli): provide default post-submit prompt for skill command (#25327)
ruomengz Apr 16, 2026
f16f1cc
feat(core): add tools to list and read MCP resources (#25395)
ruomengz Apr 16, 2026
fafe3e3
fix(evals): add typecheck coverage for evals, integration-tests, and …
SandyTao520 Apr 16, 2026
ac9025e
Use OSC 777 for terminal notifications (#25300)
jackyliuxx Apr 16, 2026
2b6dab6
fix(extensions): fix bundling for examples (#25542)
abhipatel12 Apr 16, 2026
9600da2
fix(cli): reset plan session state on /clear (#25515)
jasonsuhari Apr 16, 2026
17557b1
feat(core): add .mdx support to get-internal-docs tool (#25090)
g-samroberts Apr 16, 2026
655165c
docs(policy): mention that workspace policies are broken (#24367)
6112 Apr 16, 2026
fe89042
fix(core): allow explicit write permissions to override governance fi…
galdawave Apr 16, 2026
63e4bb9
feat(sandbox): resolve custom seatbelt profiles from $HOME/.gemini fi…
mvanhorn Apr 16, 2026
22fb833
Reduce blank lines. (#25563)
gundermanc Apr 16, 2026
3061555
fix(ui): revert preview theme on dialog unmount (#22542)
JayadityaGit Apr 17, 2026
8379099
fix(core): fix ShellExecutionConfig spread and add ProjectRegistry sa…
mahimashanware Apr 17, 2026
f7b2632
feat(core): Disable topic updates for subagents (#25567)
gundermanc Apr 17, 2026
b2f7759
feat(core): enable topic update narration by default and promote to g…
gundermanc Apr 17, 2026
220888a
docs: migrate installation and authentication to mdx with tabbed layo…
g-samroberts Apr 17, 2026
8573650
feat(config): split memoryManager flag into autoMemory (#25601)
SandyTao520 Apr 18, 2026
0e5c5b6
fix(core): allow Cloud Shell users to use PRO_MODEL_NO_ACCESS experim…
sehoon38 Apr 20, 2026
c627d09
fix(cli): round slow render latency to avoid opentelemetry float warn…
scidomino Apr 20, 2026
4b2091d
docs(tracker): introduce experimental task tracker feature (#24556)
anj-s Apr 20, 2026
6afc47f
docs(cli): fix inconsistent system.md casing in system prompt docs (#…
Bodlux Apr 20, 2026
1d383a4
feat(cli): add streamlined `gemini gemma` local model setup (#25498)
Samee24 Apr 20, 2026
a38e2f0
Changelog for v0.38.2 (#25593)
gemini-cli-robot Apr 21, 2026
2c14954
Fix: Disallow overriding IDE stdio via workspace .env (RCE) (#25022)
M0nd0R Apr 21, 2026
aee2cde
feat(test): refactor the memory usage test to use metrics from CLI pr…
cynthialong0-0 Apr 21, 2026
2734483
feat(vertex): add settings for Vertex AI request routing (#25513)
gordonhwc Apr 21, 2026
ebebbbf
Fix/allow for session persistence (#25176)
ahsanfarooq210 Apr 21, 2026
a4e98c0
fix(core): resolve nested plan directory duplication and relative pat…
mahimashanware Apr 21, 2026
cdc5ccc
feat: detect new files in @ recommendations with watcher based update…
prassamin Apr 21, 2026
7f8f330
Allow dots on GEMINI_API_KEY (#25497)
DKbyo Apr 21, 2026
c260550
feat(telemetry): add flag for enabling traces specifically (#25343)
spencer426 Apr 21, 2026
93a8d90
fix(cli): use newline in shell command wrapping to avoid breaking her…
cocosheng-g Apr 21, 2026
8999a88
fix(cli): ensure theme dialog labels are rendered for all themes (#24…
JayadityaGit Apr 21, 2026
c47233a
fix(core): disable detached mode in Bun to prevent immediate SIGHUP o…
euxaristia Apr 21, 2026
189c0ac
feat: add /new as alias for /clear and refine command description (#1…
ved015 Apr 21, 2026
194c779
fix(cli): start auto memory in ACP sessions (#25626)
jasonsuhari Apr 21, 2026
d6f88f8
fix(core): remove duplicate initialize call on agents refreshed (#25670)
adamfweidman Apr 21, 2026
ffb28c7
test(e2e): default integration tests to Flash Preview (#25753)
SandyTao520 Apr 21, 2026
6edfba4
refactor(memory): replace MemoryManagerAgent with prompt-driven memor…
SandyTao520 Apr 22, 2026
607180b
fix(cli): fix "/clear (new)" command (#25801)
mini2s Apr 22, 2026
0758a5e
fix(core): use dynamic CLI version for IDE client instead of hardcode…
thekishandev Apr 22, 2026
1c43dee
fix(core): handle line endings in ignore file parsing (#23895)
xoma-zver Apr 22, 2026
2a52611
Fix/command injection shell (#24170)
Famous077 Apr 22, 2026
2e12c34
fix(ui): removed background color for input (#25339)
devr0306 Apr 22, 2026
9c0a686
fix(devtools): reduce memory usage and defer connection (#24496)
SandyTao520 Apr 22, 2026
5318610
fix(core): support jsonl session logs in memory and summary services …
SandyTao520 Apr 22, 2026
aa05b45
fix(release): exclude ripgrep binaries from npm tarballs (#25841)
SandyTao520 Apr 23, 2026
d1c91f5
chore(release): bump version to 0.41.0-nightly.20260423.gaa05b4583 (#…
gemini-cli-robot Apr 23, 2026
a007f64
fix(core): only show `list` suggestion if the partial input is empty …
cynthialong0-0 Apr 23, 2026
dba9b9a
feat(cli): secure .env loading and enforce workspace trust in headles…
emilyhedlund Apr 23, 2026
ff28d55
fix: fatal hard-crash on loop detection via unhandled AbortError (#20…
hsm207 Apr 23, 2026
c024064
update package-lock.json (#25876)
emilyhedlund Apr 23, 2026
27927c5
feat(core): enhance shell command validation and add core tools allow…
galdawave Apr 23, 2026
69150e8
fix(ui): corrected background color check in user message components …
devr0306 Apr 23, 2026
1f73ec7
perf(core): fix slow boot by fetching experiments and quota asynchron…
spencer426 Apr 23, 2026
d4c5333
feat(core,cli): add support for Gemma 4 models (experimental) (#25604)
Abhijit-2592 Apr 23, 2026
571ca5a
update FatalUntrustedWorkspaceError message to include doc link (#25874)
emilyhedlund Apr 23, 2026
3dc8e7e
docs: add Gemini CLI course link to README (#25925)
JayadityaGit Apr 24, 2026
c4b38a5
feat(repo): add gemini-cli-bot metrics and workflows (#25888)
gundermanc Apr 24, 2026
cfd7541
fix(cli): allow output redirection for cli commands (#25894)
spencer426 Apr 24, 2026
ed469e4
fix(core): fail closed in YOLO mode when shell parsing fails for rest…
emilyhedlund Apr 24, 2026
048bf6e
fix(cli-ui): revert backspace handling to fix Windows regression (#25…
scidomino Apr 24, 2026
2e0641c
feat(voice): implement real-time voice mode with cloud and local back…
Abhijit-2592 Apr 24, 2026
a5b030b
Changelog for v0.39.0 (#25848)
gemini-cli-robot Apr 24, 2026
42587de
feat(memory): persist auto-memory scratchpad for skill extraction (#2…
SandyTao520 Apr 25, 2026
743518e
fix(cli): add missing response key to custom theme text schema (#25822)
gaurav0107 Apr 27, 2026
1cdfeb6
fix(cli): provide manual update command when automatic update fails (…
cocosheng-g Apr 27, 2026
2de8190
test(cli): add unit tests for restore ACP command (#23402) (#26053)
cocosheng-g Apr 27, 2026
98aca28
fix(ui): better error messages for ECONNRESET and ETIMEDOUT (#26059)
devr0306 Apr 27, 2026
71f313b
feat(core): wire up the new ContextManager and AgentChatHistory (#25409)
joshualitt Apr 27, 2026
b1a50a5
fix(cli): ensure sandbox proxy cleanup and remove handler leaks (#26065)
emilyhedlund Apr 27, 2026
31337b9
fix(cli): correct alternate buffer warning logic for JetBrains (#26067)
Adib234 Apr 27, 2026
7d08f84
fix(cli): make MCP ping optional in list command and use configured t…
cocosheng-g Apr 27, 2026
820a4e3
fix(core): better error message for failed cloudshell-gca auth (#26079)
devr0306 Apr 27, 2026
6cc0b1b
feat(cli): provide manual session UUID via command line arg (#26060)
cocosheng-g Apr 27, 2026
07506dc
Changelog for v0.40.0-preview.2 (#25846)
gemini-cli-robot Apr 27, 2026
47bca39
(docs) update sandboxing documentation (#25930)
g-samroberts Apr 27, 2026
c17400b
fix(core): enforce parallel task tracker updates (#24477)
anj-s Apr 27, 2026
54b7586
Update policy so transient errors are not marked terminal (#26066)
DavidAPierce Apr 28, 2026
58a57b7
Implement bot that performs time-series metric analysis and suggests …
gundermanc Apr 28, 2026
b0ffa3b
fix(core): handle non-string model flags in resolution (#26069)
Adib234 Apr 28, 2026
8e1ceca
fix(ux): added error message for ENOTDIR (#26128)
devr0306 Apr 28, 2026
7a3f7c3
Changelog for v0.40.0-preview.3 (#25904)
gemini-cli-robot Apr 28, 2026
4b8d5e7
fix(cli): prevent ACP stdout pollution from SessionEnd hooks (#26125)
cocosheng-g Apr 28, 2026
c841070
feat(cli): support boolean and number casting for env vars in setting…
cocosheng-g Apr 28, 2026
59b2dea
fix(cli): preserve Request headers in DevTools activity logger (#26078)
Adib234 Apr 28, 2026
f8603e9
fix(cli): prevent automatic updates from switching to less stable cha…
Adib234 Apr 28, 2026
8cfebb9
chore(release): bump version to 0.42.0-nightly.20260428.g59b2dea0e (#…
gemini-cli-robot Apr 28, 2026
12a77da
fix(cli): pass node arguments via NODE_OPTIONS during relaunch to sup…
cocosheng-g Apr 28, 2026
4edd7c7
fix(cli): handle DECKPAM keypad Enter sequences in terminal (#26092)
Gitanaskhan26 Apr 28, 2026
9e7c924
docs(cli): point plan-mode session retention to actual /settings labe…
ifitisit Apr 28, 2026
fbd8aaa
fix(core): add missing oauth fields support in subagent parsing (#26141)
abhipatel12 Apr 28, 2026
6d99113
fix(core): disconnect extension-backed MCP clients in stopExtension (…
cocosheng-g Apr 28, 2026
c7d5fcf
Update documentation workflows with workspace trust (#26150)
g-samroberts Apr 29, 2026
c2e5b28
refactor(acp): modularize monolithic acpClient into specialized files…
sripasg Apr 29, 2026
7ab932c
test: fix failures due to antigravity environment leakage (#26162)
adamfweidman Apr 29, 2026
2cf0c75
fix(core): add explicit empty log guard in A2A pushMessage (#26198)
adamfweidman Apr 29, 2026
011c0f9
feat(cli): add --delete flag to /exit command for session deletion (#…
AbdulTawabJuly Apr 29, 2026
3bc56d0
test(core): add regression test for issue for ToolConfirmationRespons…
Adib234 Apr 29, 2026
6dec672
Add the ability to @ mention the gemini robot. (#26207)
gundermanc Apr 29, 2026
25f422d
test(evals): add EvalMetadata JSDoc annotations to older tests (#26147)
akh64bit Apr 29, 2026
99235fc
fix(core): reduce default API timeout to 60s and enable retries for u…
Adib234 Apr 29, 2026
3aedbbc
fix(core): distinguish fallback chains and fix maxAttempts for auto v…
adamfweidman Apr 29, 2026
88626f3
fix(cli): handle InvalidStream event gracefully without throwing (#26…
adamfweidman Apr 29, 2026
dce1301
ci(github-actions): switch to github app token and fix bot self-trigg…
gundermanc Apr 29, 2026
2194da2
Respect logPrompts flag for logging sensitive fields (#26153)
lp-peg Apr 29, 2026
d6ce310
fix: correct API key validation logic in handleApiKeySubmit (#25453)
martin-hsu-test Apr 29, 2026
49988fc
fix(agent): prevent exit_plan_mode from being called via shell (#26230)
Abhijit-2592 Apr 29, 2026
fa1a7c1
# Fix: Inconsistent Case-Sensitivity in GrepTool (#26235)
gemini-cli[bot] Apr 29, 2026
8cec567
docs(core): add automated gemma setup guide (#26233)
Samee24 Apr 29, 2026
a2d10b7
Allow non-https proxy urls to support container environments (#26234)
stevemk14ebr Apr 29, 2026
1834ad0
fix(bot): productivity and backlog optimizations (#26236)
gundermanc Apr 29, 2026
0ccc5ce
refactor(acp): delegate prompt turn processing logic to GeminiClient …
sripasg Apr 29, 2026
a15568e
fix(cli): refine platform-specific undo/redo and smart bubbling for W…
cocosheng-g Apr 30, 2026
d743c6f
fix: suppress duplicate extension warnings during startup (#26208)
cocosheng-g Apr 30, 2026
487fb21
fix(cli): use byte length instead of string length for readStdin size…
Adib234 Apr 30, 2026
071e292
fix(ui): made shell tool header wrap on Ctrl+O (#26229)
devr0306 Apr 30, 2026
9a98b0e
Changelog for v0.41.0-preview.0 (#26244)
gemini-cli-robot Apr 30, 2026
0f10770
Skip binary CLI relaunch (#26261)
ruomengz Apr 30, 2026
c94edcd
fix(cli): do not override GOOGLE_CLOUD_PROJECT in Cloud Shell when us…
jackwotherspoon Apr 30, 2026
84875ce
docs(cli): add skill discovery troubleshooting checklist to tutorial …
pmenic Apr 30, 2026
90895ef
docs(policy-engine): link to tools reference for tool names and args …
Aaxhirrr Apr 30, 2026
0af1314
Fix posting invalid response to a comment (#26266)
gundermanc Apr 30, 2026
8c1e255
fix(cli): prevent informational logs from polluting json output (#26264)
cocosheng-g Apr 30, 2026
ef040eb
feat(ui): added microphone and updated placeholder for voice mode (#2…
devr0306 Apr 30, 2026
8461662
feat(cli): Add 'list' subcommand to '/commands' (#22324)
Jwhyee Apr 30, 2026
7125d2c
fix(core): ensure tool output cleanup on session deletion for legacy …
cocosheng-g Apr 30, 2026
778da08
Docs: Update Agent Skills documentation (#22388)
jkcinouye Apr 30, 2026
e676311
Changelog for v0.40.0 (#26245)
gemini-cli-robot Apr 30, 2026
a03ec92
test(acp): add missing coverage for extensions command error paths (#…
sahilkirad Apr 30, 2026
2f0c751
fix: report AgentExecutionBlocked in non-interactive programmatic mod…
cocosheng-g Apr 30, 2026
d494195
feat(extensions): add 'delete' as an alias for /extensions uninstall …
martin-hsu-test Apr 30, 2026
80e3bb9
fix(core): silently skip GEMINI.md paths that are directories (EISDIR…
martin-hsu-test Apr 30, 2026
892c8a7
fix(ci): checkout PR branch instead of main in bot workflow (#26289)
gundermanc Apr 30, 2026
f497240
fix(cli): use resolved sandbox state for auto-update check (#26285)
Adib234 Apr 30, 2026
caa0466
# Metrics Integrity & Standardized Reporting (BT-01) (#26240)
gemini-cli[bot] Apr 30, 2026
c427bd4
Add Star History section to README (#26290)
bdmorgan May 1, 2026
2e3090b
Add Star History section to README (#26308)
bdmorgan May 1, 2026
4e81f48
Remove Star History section from README (#26309)
bdmorgan May 1, 2026
b3e6c28
test(evals): add behavioral eval for file creation and write_file too…
akh64bit May 1, 2026
d9f273e
feat(config): enable Gemma 4 models by default via Gemini API (#26307)
Abhijit-2592 May 1, 2026
7213822
fix(cli): insert voice transcription at cursor position instead of ap…
Zheyuan-Lin May 1, 2026
8943640
fix(ui): fix issue with box edges (#26148)
gundermanc May 1, 2026
9cb4802
fix(cli): respect .env override for GOOGLE_CLOUD_PROJECT (#26288)
DavidAPierce May 1, 2026
8fb1b5a
fix(ci): robust version checking in release verification (#26337)
scidomino May 1, 2026
76d1a73
fix(cli): enable daemon relaunch in binary and bundle keytar (#26333)
ruomengz May 1, 2026
f496354
fix(core): discourage unprompted git add . in prompt snippets (#26220)
akh64bit May 1, 2026
b14a29e
feat(ui): added wave animation for voice mode (#26284)
devr0306 May 1, 2026
997f461
fix(cli): prevent Escape from clearing input buffer (#17083) (#26339)
cocosheng-g May 1, 2026
7dea5b4
fix(cli): undeprecate --prompt and correct positional query docs (#26…
Adib234 May 1, 2026
3638541
Metrics updates (#26348)
gemini-cli[bot] May 1, 2026
9380e13
fix(core): remove "System: Please continue." injection on InvalidStre…
SandyTao520 May 1, 2026
dc5b311
docs(policy-engine): add tool argument keys reference and shell polic…
harshpujari May 1, 2026
a93d2a1
fix(cli): resolve Ghostty/raw-mode False Cancellation in oauth flow (…
Aarchi-07 May 1, 2026
408afd3
fix(core): reset session-scoped state on resumption (#26342)
cocosheng-g May 1, 2026
de8fdcf
Fix bulk of remaining issues with generalist profile (#26073)
joshualitt May 1, 2026
40b384d
fix(core): make subagents aware of active approval modes (#23608)
akh64bit May 1, 2026
4e17552
fix(acp): resolve agent mode disconnect and improve mode awareness (#…
sripasg May 1, 2026
4fa2c95
docs(sdk): add JSDoc to exported interfaces in packages/sdk/src/types…
cocosheng-g May 4, 2026
ab48aad
perf: skip redundant GEMINI.md loading in partialConfig (#26443)
cocosheng-g May 4, 2026
40aa739
feat(core): reinforce Inquiry constraints to prevent unauthorized cha…
akh64bit May 4, 2026
30c324d
Enhance React guidelines (#22667)
psinha40898 May 4, 2026
88bdadc
revert: fix(ci): robust version checking in release verification (#26…
scidomino May 4, 2026
0657d31
refactor(UI): created constants file for ThemeDialog (#26446)
devr0306 May 4, 2026
9de8c8a
docs: fix GitHub capitalization in releases guide (#26379)
haosenwang1018 May 4, 2026
704be5a
fix(cli): ensure branch indicator updates in sub-directories and work…
Adib234 May 4, 2026
790f2cf
feat: add minimal V8 heap snapshot utility for memory diagnostics (#2…
cocosheng-g May 4, 2026
165efa8
fix(hooks): preserve non-text parts in fromHookLLMRequest (#26275)
SandyTao520 May 4, 2026
37edd1d
fix(cli): allow early stdout when config is undefined (#26453)
cocosheng-g May 4, 2026
0da1a20
fix(cli)#21297: clear skills consent dialog before reload (#26431)
manavmax May 4, 2026
77f4be1
fix(cli): render LaTeX-style output as Unicode in the TUI (#25802)
dimssu May 4, 2026
d313cd7
fix(core): use close event instead of exit in child_process fallback …
tusaryan May 4, 2026
60a6a47
feat(voice): add privacy and compliance UX warning for Gemini Live ba…
cocosheng-g May 4, 2026
a7beb89
feat(memory): add Auto Memory inbox flow with canonical-patch contrac…
SandyTao520 May 4, 2026
75a8de8
test(cleanup): fix temporary directory leaks in test suites (#26217)
Adib234 May 4, 2026
493b555
feat: add ignoreLocalEnv setting and --ignore-env flag (#2493) (#26445)
cocosheng-g May 4, 2026
7887794
docs(sdk): add JSDoc to all exported interfaces and types (#26277)
fauzan171 May 4, 2026
0d6bd29
feat(cli): improve /agents refresh logging (#26442)
cocosheng-g May 4, 2026
b6fc583
Fix: make Dockerfile self-contained with multi-stage build (#24277)
Famous077 May 4, 2026
4d1ca92
fix(core): filter unsupported multimodal types from tool responses (#…
aishaneeshah May 4, 2026
6a3175e
fix(core): properly format markdown in AskUser tool by unescaping new…
Adib234 May 4, 2026
f87072f
feat(bot): add actions spend metric script (#26463)
gundermanc May 4, 2026
5dfbb73
feat(cli): add /bug-memory command and auto-capture heap snapshot in …
Anjaligarhwal May 4, 2026
56809d7
fix(cli): make SkillInboxDialog fit and scroll in alternate buffer (#…
SandyTao520 May 4, 2026
a79da4f
Robust Scale-Safe Lifecycle Consolidation (#26355)
gemini-cli-robot May 4, 2026
04e875c
fix(ci): respect exempt labels when closing stale items (#26475)
gundermanc May 4, 2026
8f0edcd
fix(cli): use os.homedir() for home directory warning check (#25890)
TirthNaik-99 May 4, 2026
1d72a12
fix(a2a-server): resolve tool approval race condition and improve sta…
kschaab May 5, 2026
7cc19c2
fix(cli): prevent settings dialog border clipping using maxHeight (#2…
jackwotherspoon May 5, 2026
e80d7cc
feat: allow queuing messages during compression (#24071) (#26506)
cocosheng-g May 5, 2026
f5c0977
fix(core): retry on ERR_STREAM_PREMATURE_CLOSE errors (#26519)
cocosheng-g May 5, 2026
0803007
fix(core): Minor fixes for generalist profile. (#26357)
joshualitt May 5, 2026
0218817
feat(core): steer model to use edit tool for surgical edits, fix a ty…
aishaneeshah May 5, 2026
f17cfb2
docs: clarify Auto Memory proposes memory updates and skills (#26527)
SandyTao520 May 5, 2026
f29eb9a
fix(core): reject numeric project IDs in GOOGLE_CLOUD_PROJECT (#24695…
Abhijit-2592 May 5, 2026
d8f2a89
fix(core): remove unsafe type assertion suppressions in error utils (…
himanshu748 May 5, 2026
3627f47
fix(core): allow redirection in YOLO and AUTO_EDIT modes without sand…
galdawave May 5, 2026
e039fcd
ci(release): build and attach unsigned macOS binaries to releases (#2…
ruomengz May 5, 2026
80d2690
fix(core): Fix chat corruption bug in context manager. (#26534)
joshualitt May 5, 2026
469092a
fix(cli): provide JSON output for AgentExecutionStopped in non-intera…
cynthialong0-0 May 6, 2026
82f6ea5
feat(evals): add shell command safety evals (#26528)
akh64bit May 6, 2026
80e091a
fix(core): handle invalid custom plans directory gracefully (#26560)
cynthialong0-0 May 6, 2026
97a2bd7
fix(acp): move tool explanation from thought stream to tool call cont…
sripasg May 6, 2026
02995ba
fix(a2a-server): Resolve race condition in tool completion waiting (#…
kschaab May 6, 2026
5155221
fix(cli): randomize sandbox container names (#26014)
Kkartik14 May 6, 2026
897a4d7
fix(core): Fix hysteresis in async context management pipelines. (#26…
joshualitt May 6, 2026
7fb5146
Tighten private Auto Memory patch allowlist (#26535)
SandyTao520 May 6, 2026
e4242ed
fix(cli): hide read-only settings scopes (#26249)
cvan20191 May 6, 2026
feae856
fix(ci): preserve executable bit for mac binaries (#26600)
ruomengz May 6, 2026
a38f393
fix(cli): improve mcp list UX in untrusted folders (#26457)
Adib234 May 6, 2026
bb4224f
fix(core): prevent silent hang during OAuth auth on headless Linux (#…
RhysSullivan May 6, 2026
20b5a4c
Changelog for v0.42.0-preview.0 (#26537)
gemini-cli-robot May 6, 2026
4a10751
ci: fix Argument list too long in triage workflows (#26603)
cocosheng-g May 6, 2026
90304b2
refactor(cli): migrate core tools to native ToolDisplay property and …
mbleigh May 6, 2026
a809bc7
don't wrap args unnecessarily (#26599)
scidomino May 6, 2026
49456e4
fix(core): preserve system PATH in Git environment to fix ENOENT (#25…
cocosheng-g May 7, 2026
ac31e80
fix(routing): fix resolveClassifierModel argument mismatch in Approva…
danielweis May 7, 2026
4fd411a
docs: add vi mode shortcuts and clarify MCP/custom sandbox setup (#23…
chrisjcthomas May 7, 2026
451bf32
fix(ux): fixed issue with transcribed text not showing after releasin…
devr0306 May 7, 2026
3a0b19d
ci: fix json parsing in scheduled triage workflow (#26656)
cocosheng-g May 7, 2026
16e3458
fix(cli): hide /memory add subcommand when memoryV2 is enabled (#26605)
SandyTao520 May 7, 2026
c52aceb
fix: prevent false command conflicts when launching from home directo…
Br1an67 May 7, 2026
ebeea75
fix(core): cache model routing decision in LocalAgentExecutor (#26548)
akh64bit May 8, 2026
38a9dd1
Changelog for v0.42.0-preview.2 (#26597)
gemini-cli-robot May 8, 2026
2d10691
skip broken test (#26705)
scidomino May 8, 2026
3805640
feat: export session to file and import via flag (#26514)
cocosheng-g May 8, 2026
2cad5db
Feat: Add Machine Hostname to CLI interface (#25637)
M-DEV-1 May 8, 2026
838f6f8
docs(extensions): refactor releasing guide and add update mechanisms …
ruomengz May 8, 2026
f42d4e3
fix(ci): fix maintainer identification in lifecycle manager (#26706)
gundermanc May 8, 2026
dfec948
fix(ui): added quotes around session id in resume tip (#26669)
devr0306 May 8, 2026
43dda31
Changelog for v0.41.0 (#26670)
gemini-cli-robot May 8, 2026
12c8469
refactor(core): agent session protocol changes (#26661)
adamfweidman May 8, 2026
01635dd
fix(context): implement loose boundary policy for gc backstop. (#26594)
joshualitt May 8, 2026
f86e0ee
fix(core): throw explicit error on dropped tool responses (#26668)
aishaneeshah May 8, 2026
6b9b778
fix: resolve "function response turn must come immediately after func…
danielweis May 8, 2026
5890f50
fix(core): resolve parallel tool call streaming ID collision (#26646)
aishaneeshah May 8, 2026
014bfeb
feat(core): add LocalSubagentProtocol behind AgentProtocol (#25302)
adamfweidman May 8, 2026
9d0860b
fix(cli): remove noisy theme registration logs from terminal (#25858)
JayadityaGit May 8, 2026
90e7155
ci: implement codebase-aware effort level triage (#26666)
cocosheng-g May 8, 2026
1238dcf
feat(acp/core): prefix tool call IDs with tool names to support tool …
sripasg May 8, 2026
f51391a
fix(mcp): treat GET 404 as 405 in StreamableHTTPClientTransport (#24847)
krishdef7 May 8, 2026
54f1e8c
feat(core): add RemoteSubagentProtocol behind AgentProtocol (#25303)
adamfweidman May 8, 2026
1a894c1
feat(context): Improvements to the snapshotter. (#26655)
joshualitt May 8, 2026
78b8c21
Merge remote-tracking branch 'upstream/main'
May 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
17 changes: 17 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Git history - not needed in build context
.git

# Root node_modules - reinstalled inside container via npm ci
node_modules

# Package-level node_modules - reinstalled inside container
packages/*/node_modules

# Development and IDE files
.github
.vscode
npm-debug.log*

# Misc
.DS_Store
*.tmp
89 changes: 89 additions & 0 deletions .gcp/Dockerfile.development
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# --- STAGE 1: Base Runtime ---
FROM docker.io/library/node:20-slim AS base

RUN apt-get update && apt-get install -y --no-install-recommends \
python3 \
python3-pip \
python3-venv \
curl \
dnsutils \
less \
jq \
ca-certificates \
git \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

# --- STAGE 2: Builder (Compile Main) ---
FROM base AS builder
WORKDIR /build
COPY . .
RUN npm ci --ignore-scripts
RUN npm run bundle
# Run the official release preparation script to move the bundle and assets into packages/cli
RUN node scripts/prepare-npm-release.js

# --- STAGE 3: Development Environment ---
FROM base AS development

WORKDIR /home/node/dev/main

# Set up npm global package folder
RUN mkdir -p /usr/local/share/npm-global \
&& chown -R node:node /usr/local/share/npm-global
ENV NPM_CONFIG_PREFIX=/usr/local/share/npm-global
ENV PATH=$PATH:/usr/local/share/npm-global/bin

# Copy package.json to extract versions for global tools
COPY package.json /tmp/package.json

# Install Build Tools, Global Dev Tools (pinned), and Linters
ARG ACTIONLINT_VER=1.7.7
ARG SHELLCHECK_VER=0.11.0
ARG YAMLLINT_VER=1.35.1

RUN apt-get update && apt-get install -y --no-install-recommends \
make \
g++ \
gh \
git \
unzip \
rsync \
ripgrep \
procps \
psmisc \
lsof \
socat \
tmux \
docker.io \
build-essential \
libsecret-1-dev \
libkrb5-dev \
file \
&& curl -sSLo /tmp/actionlint.tar.gz https://github.com/rhysd/actionlint/releases/download/v${ACTIONLINT_VER}/actionlint_${ACTIONLINT_VER}_linux_amd64.tar.gz \
&& tar -xzf /tmp/actionlint.tar.gz -C /usr/local/bin actionlint \
&& curl -sSLo /tmp/shellcheck.tar.xz https://github.com/koalaman/shellcheck/releases/download/v${SHELLCHECK_VER}/shellcheck-v${SHELLCHECK_VER}.linux.x86_64.tar.xz \
&& tar -xf /tmp/shellcheck.tar.xz -C /usr/local/bin --strip-components=1 shellcheck-v${SHELLCHECK_VER}/shellcheck \
&& pip3 install --break-system-packages yamllint==${YAMLLINT_VER} \
&& export TSX_VER=$(node -p "require('/tmp/package.json').devDependencies.tsx") \
&& export VITEST_VER=$(node -p "require('/tmp/package.json').devDependencies.vitest") \
&& export PRETTIER_VER=$(node -p "require('/tmp/package.json').devDependencies.prettier") \
&& export ESLINT_VER=$(node -p "require('/tmp/package.json').devDependencies.eslint") \
&& export CROSS_ENV_VER=$(node -p "require('/tmp/package.json').devDependencies['cross-env']") \
&& npm install -g tsx@$TSX_VER vitest@$VITEST_VER prettier@$PRETTIER_VER eslint@$ESLINT_VER cross-env@$CROSS_ENV_VER typescript@5.3.3 \
&& npm install -g @google/gemini-cli@nightly && mv /usr/local/share/npm-global/bin/gemini /usr/local/share/npm-global/bin/g-nightly \
&& npm install -g @google/gemini-cli@preview && mv /usr/local/share/npm-global/bin/gemini /usr/local/share/npm-global/bin/g-preview \
&& npm install -g @google/gemini-cli@latest && mv /usr/local/share/npm-global/bin/gemini /usr/local/share/npm-global/bin/g-stable \
&& apt-get purge -y build-essential libsecret-1-dev libkrb5-dev \
&& apt-get autoremove -y \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /root/.npm

# Copy the bundled CLI package to a permanent location and install it
# We MUST not delete this source folder as 'npm install -g <folder>'
# often symlinks to it for local folder installs.
COPY --from=builder /build/packages/cli /usr/local/lib/gemini-cli
RUN npm install -g /usr/local/lib/gemini-cli

USER node
CMD ["/bin/bash"]
10 changes: 10 additions & 0 deletions .gcp/Dockerfile.development.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
node_modules
.git
.gemini/workspaces
dist
!packages/*/dist/*.tgz
bundle
out
*.log
.env
.DS_Store
58 changes: 58 additions & 0 deletions .gcp/development-worker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
substitutions:
_IMAGE_NAME: 'development'
_ARTIFACT_REGISTRY_REPO: 'us-docker.pkg.dev/gemini-code-dev/gemini-cli'

steps:
# Step 1: Install root dependencies
- name: 'us-west1-docker.pkg.dev/gemini-code-dev/gemini-code-containers/gemini-code-builder'
id: 'Install Dependencies'
entrypoint: 'npm'
args: ['install']

# Step 2: Authenticate for Docker
- name: 'us-west1-docker.pkg.dev/gemini-code-dev/gemini-code-containers/gemini-code-builder'
id: 'Authenticate docker'
entrypoint: 'npm'
args: ['run', 'auth']

# Step 3: Build workspace packages
- name: 'us-west1-docker.pkg.dev/gemini-code-dev/gemini-code-containers/gemini-code-builder'
id: 'Build packages'
entrypoint: 'npm'
args: ['run', 'build:packages']

# Step 4: Build Development Image
- name: 'us-west1-docker.pkg.dev/gemini-code-dev/gemini-code-containers/gemini-code-builder'
id: 'Build Development Image'
entrypoint: 'bash'
env:
- 'RAW_BRANCH_VALUE=${BRANCH_NAME}'
args:
- '-c'
- |-
IMAGE_BASE="${_ARTIFACT_REGISTRY_REPO}/${_IMAGE_NAME}"
# Determine the primary tag (branch name or 'latest' for main)
# Use $$ for shell variables to avoid Cloud Build attempting premature substitution
RAW_BRANCH="$$RAW_BRANCH_VALUE"
if [ "$${RAW_BRANCH}" == "main" ]; then
TAG_PRIMARY="latest"
else
TAG_PRIMARY=$$(echo "$${RAW_BRANCH}" | sed 's/[^a-zA-Z0-9]/-/g' | tr '[:upper:]' '[:lower:]')
fi
# Use SHORT_SHA if available (Cloud Build) or fallback to latest-dev
TAG_SHA="$${SHORT_SHA:-latest-dev}"
echo "📦 Building Development Image for: $${RAW_BRANCH} -> $${TAG_PRIMARY} ($${TAG_SHA})"
docker build -f .gcp/Dockerfile.development \
-t "$${IMAGE_BASE}:$${TAG_SHA}" \
-t "$${IMAGE_BASE}:$${TAG_PRIMARY}" .
docker push "$${IMAGE_BASE}:$${TAG_SHA}"
docker push "$${IMAGE_BASE}:$${TAG_PRIMARY}"
options:
defaultLogsBucketBehavior: 'REGIONAL_USER_OWNED_BUCKET'
dynamicSubstitutions: true
60 changes: 0 additions & 60 deletions .gemini/commands/fix-behavioral-eval.toml

This file was deleted.

29 changes: 0 additions & 29 deletions .gemini/commands/promote-behavioral-eval.toml

This file was deleted.

26 changes: 21 additions & 5 deletions .gemini/commands/strict-development-rules.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,27 @@ Gemini CLI project.
overriding values. Refer to `text-buffer.ts` for a canonical example.
- **Logging**: Do not leave `console.log`, `console.warn`, or `console.error` in
the code.
- **State & Effects**: Ensure state initialization is explicit (e.g., use
`undefined` rather than `true` as a default if the state is truly unknown).
Carefully manage `useEffect` dependencies. Prefer a reducer whenever
practical. NEVER disable `react-hooks/exhaustive-deps`; fix the code to
correctly declare dependencies instead.
- **State**: Ensure state initialization is explicit (e.g., use `undefined`
rather than `true` as a default if the state is truly unknown). Prefer a
reducer whenever practical. NEVER disable `react-hooks/exhaustive-deps`; fix
the code to correctly declare dependencies instead. Evaluate all the React
states in a component and ensure that the `useState` calls are necessary and
not cases where values could be derived on render. Ensure there are no stale
closures that are relying on a value from a previous render. React Components
that modify Settings should effectively use the `useSettingsStore` pattern.
Components that configure application Settings (e.g settings.json) are the
only reasonable case for unsaved changes to drive UX; in these cases, the
Settings store should only be written to on save. If the user experience does
not utilize unsaved changes because there is no option to exit without saving
or reverting the unsaved changes, then the component should directly read from
and write to the Settings store without holding pending changes in component
level UI state.
- **Effect**: `useEffect` should not be used to synchronize React states, it
should only be used for genuine side effects that occur outside of React.
Contributors should be able to strongly justify the need for an effect.
Consider whether the effect should instead be inside an event handler, or
whether it is better off being computed on render. Carefully manage
`useEffect` dependencies.
- **Context & Props**: Avoid excessive property drilling. Leverage existing
providers, extend them, or propose a new one if necessary. Only use providers
for properties that are consistent across the entire application.
Expand Down
7 changes: 5 additions & 2 deletions .gemini/settings.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
{
"experimental": {
"plan": true,
"extensionReloading": true,
"modelSteering": true
"modelSteering": true,
"autoMemory": true,
"memoryManager": true,
"topicUpdateNarration": true,
"voiceMode": true
},
"general": {
"devtools": true
Expand Down
45 changes: 45 additions & 0 deletions .gemini/skills/async-pr-review/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
---
name: async-pr-review
description: Trigger this skill when the user wants to start an asynchronous PR review, run background checks on a PR, or check the status of a previously started async PR review.
---

# Async PR Review

This skill provides a set of tools to asynchronously review a Pull Request. It will create a background job to run the project's preflight checks, execute Gemini-powered test plans, and perform a comprehensive code review using custom prompts.

This skill is designed to showcase an advanced "Agentic Asynchronous Pattern":
1. **Native Background Shells vs Headless Inference**: While Gemini CLI can natively spawn and detach background shell commands (using the `run_shell_command` tool with `is_background: true`), a standard bash background job cannot perform LLM inference. To conduct AI-driven code reviews and test generation in the background, the shell script *must* invoke the `gemini` executable headlessly using `-p`. This offloads the AI tasks to independent worker agents.
2. **Dynamic Git Scoping**: The review scripts avoid hardcoded paths. They use `git rev-parse --show-toplevel` to automatically resolve the root of the user's current project.
3. **Ephemeral Worktrees**: Instead of checking out branches in the user's main workspace, the skill provisions temporary git worktrees in `.gemini/tmp/async-reviews/pr-<number>`. This prevents git lock conflicts and namespace pollution.
4. **Agentic Evaluation (`check-async-review.sh`)**: The check script outputs clean JSON/text statuses for the main agent to parse. The interactive agent itself synthesizes the final assessment dynamically from the generated log files.

## Workflow

1. **Determine Action**: Establish whether the user wants to start a new async review or check the status of an existing one.
* If the user says "start an async review for PR #123" or similar, proceed to **Start Review**.
* If the user says "check the status of my async review for PR #123" or similar, proceed to **Check Status**.

### Start Review

If the user wants to start a new async PR review:

1. Ask the user for the PR number if they haven't provided it.
2. Execute the `async-review.sh` script, passing the PR number as the first argument. Be sure to run it with the `is_background` flag set to true to ensure it immediately detaches.
```bash
.gemini/skills/async-pr-review/scripts/async-review.sh <PR_NUMBER>
```
3. Inform the user that the tasks have started successfully and they can check the status later.

### Check Status

If the user wants to check the status or view the final assessment of a previously started async review:

1. Ask the user for the PR number if they haven't provided it.
2. Execute the `check-async-review.sh` script, passing the PR number as the first argument:
```bash
.gemini/skills/async-pr-review/scripts/check-async-review.sh <PR_NUMBER>
```
3. **Evaluate Output**: Read the output from the script.
* If the output contains `STATUS: IN_PROGRESS`, tell the user which tasks are still running.
* If the output contains `STATUS: COMPLETE`, use your file reading tools (`read_file`) to retrieve the contents of `final-assessment.md`, `review.md`, `pr-diff.diff`, `npm-test.log`, and `test-execution.log` files from the `LOG_DIR` specified in the output.
* **Final Assessment**: Read those files, synthesize their results, and give the user a concise recommendation on whether the PR builds successfully, passes tests, and if you recommend they approve it based on the review.
Loading
Loading