Release v0.28.0
What's Changed
- feat(commands): add /prompt-suggest slash command by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/17264
- feat(cli): align hooks enable/disable with skills and improve completion by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/16822
- docs: add CLI reference documentation by @leochiu-a in https://github.com/google-gemini/gemini-cli/pull/17504
- chore(release): bump version to 0.28.0-nightly.20260128.adc8e11bb by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/17725
- feat(skills): final stable promotion cleanup by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/17726
- test(core): mock fetch in OAuth transport fallback tests by @jw409 in https://github.com/google-gemini/gemini-cli/pull/17059
- feat(cli): include auth method in /bug by @erikus in https://github.com/google-gemini/gemini-cli/pull/17569
- Add a email privacy note to bug_report template by @nemyung in https://github.com/google-gemini/gemini-cli/pull/17474
- Rewind documentation by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/17446
- fix: verify audio/video MIME types with content check by @maru0804 in https://github.com/google-gemini/gemini-cli/pull/16907
- feat(core): add support for positron ide (#15045) by @kapsner in https://github.com/google-gemini/gemini-cli/pull/15047
- /oncall dedup - wrap texts to nextlines by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/17782
- fix(admin): rename advanced features admin setting by @skeshive in https://github.com/google-gemini/gemini-cli/pull/17786
- [extension config] Make breaking optional value non-optional by @chrstnb in https://github.com/google-gemini/gemini-cli/pull/17785
- Fix docs-writer skill issues by @g-samroberts in https://github.com/google-gemini/gemini-cli/pull/17734
- fix(core): suppress duplicate hook failure warnings during streaming by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/17727
- test: add more tests for AskUser by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/17720
- feat(cli): enable activity logging for non-interactive mode and evals by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/17703
- feat(core): add support for custom deny messages in policy rules by @allenhutchison in https://github.com/google-gemini/gemini-cli/pull/17427
- Fix unintended credential exposure to MCP Servers by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/17311
- feat(extensions): add support for custom themes in extensions by @spencer426 in https://github.com/google-gemini/gemini-cli/pull/17327
- fix: persist and restore workspace directories on session resume by @korade-krushna in https://github.com/google-gemini/gemini-cli/pull/17454
- Update release notes pages for 0.26.0 and 0.27.0-preview. by @g-samroberts in https://github.com/google-gemini/gemini-cli/pull/17744
- feat(ux): update cell border color and created test file for table rendering by @devr0306 in https://github.com/google-gemini/gemini-cli/pull/17798
- Change height for the ToolConfirmationQueue. by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/17799
- feat(cli): add user identity info to stats command by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/17612
- fix(ux): fixed off-by-some wrapping caused by fixed-width characters by @devr0306 in https://github.com/google-gemini/gemini-cli/pull/17816
- feat(cli): update undo/redo keybindings to Cmd+Z/Alt+Z and Shift+Cmd+Z/Shift+Alt+Z by @scidomino in https://github.com/google-gemini/gemini-cli/pull/17800
- fix(evals): use absolute path for activity log directory by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/17830
- test: add integration test to verify stdout/stderr routing by @ved015 in https://github.com/google-gemini/gemini-cli/pull/17280
- fix(cli): list installed extensions when update target missing by @tt-a1i in https://github.com/google-gemini/gemini-cli/pull/17082
- fix(cli): handle PAT tokens and credentials in git remote URL parsing by @afarber in https://github.com/google-gemini/gemini-cli/pull/14650
- fix(core): use returnDisplay for error result display by @Nubebuster in https://github.com/google-gemini/gemini-cli/pull/14994
- Fix detection of bun as package manager by @Randomblock1 in https://github.com/google-gemini/gemini-cli/pull/17462
- feat(cli): show hooksConfig.enabled in settings dialog by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/17810
- feat(cli): Display user identity (auth, email, tier) on startup by @yunaseoul in https://github.com/google-gemini/gemini-cli/pull/17591
- fix: prevent ghost border for AskUserDialog by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/17788
- docs: mark A2A subagents as experimental in subagents.md by @adamfweidman in https://github.com/google-gemini/gemini-cli/pull/17863
- Resolve error thrown for sensitive values by @chrstnb in https://github.com/google-gemini/gemini-cli/pull/17826
- fix(admin): Rename secureModeEnabled to strictModeDisabled by @skeshive in https://github.com/google-gemini/gemini-cli/pull/17789
- feat(ux): update truncate dots to be shorter in tables by @devr0306 in https://github.com/google-gemini/gemini-cli/pull/17825
- fix(core): resolve DEP0040 punycode deprecation via patch-package by @ATHARVA262005 in https://github.com/google-gemini/gemini-cli/pull/17692
- feat(plan): create generic Checklist component and refactor Todo by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/17741
- Cleanup post delegate_to_agent removal by @gundermanc in https://github.com/google-gemini/gemini-cli/pull/17875
- fix(core): use GIT_CONFIG_GLOBAL to isolate shadow git repo configuration - Fixes #17877 by @cocosheng-g in https://github.com/google-gemini/gemini-cli/pull/17803
- Disable mouse tracking e2e by @alisa-alisa in https://github.com/google-gemini/gemini-cli/pull/17880
- fix(cli): use correct setting key for Cloud Shell auth by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/17884
- chore: revert IDE specific ASCII logo by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/17887
- Revert "fix(core): resolve DEP0040 punycode deprecation via patch-package" by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/17898
- Refactoring of disabling of mouse tracking in e2e tests by @alisa-alisa in https://github.com/google-gemini/gemini-cli/pull/17902
- feat(core): Add GOOGLE_GENAI_API_VERSION environment variable support by @deyim in https://github.com/google-gemini/gemini-cli/pull/16177
- feat(core): Isolate and cleanup truncated tool outputs by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/17594
- Create skills page, update commands, refine docs by @g-samroberts in https://github.com/google-gemini/gemini-cli/pull/17842
- feat: preserve EOL in files by @Thomas-Shephard in https://github.com/google-gemini/gemini-cli/pull/16087
- Fix HalfLinePaddedBox in screenreader mode. by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/17914
- bug(ux) vim mode fixes. Start in insert mode. Fix bug blocking F12 and ctrl-X in vim mode. by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/17938
- feat(core): implement interactive and non-interactive consent for OAuth by @ehedlund in https://github.com/google-gemini/gemini-cli/pull/17699
- perf(core): optimize token calculation and add support for multimodal tool responses by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/17835
- refactor(hooks): remove legacy tools.enableHooks setting by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/17867
- feat(ci): add npx smoke test to verify installability by @bdmorgan in https://github.com/google-gemini/gemini-cli/pull/17927
- feat(core): implement dynamic policy registration for subagents by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/17838
- feat: Implement background shell commands by @galz10 in https://github.com/google-gemini/gemini-cli/pull/14849
- feat(admin): provide actionable error messages for disabled features by @skeshive in https://github.com/google-gemini/gemini-cli/pull/17815
- Fix bugs where Rewind and Resume showed Ugly and 100X too verbose content. by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/17940
- Fix broken link in docs by @chrstnb in https://github.com/google-gemini/gemini-cli/pull/17959
- feat(plan): reuse standard tool confirmation for
AskUsertool by @jerop in https://github.com/google-gemini/gemini-cli/pull/17864 - feat(core): enable overriding CODE_ASSIST_API_VERSION with env var by @lottielin in https://github.com/google-gemini/gemini-cli/pull/17942
- run npx pointing to the specific commit SHA by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/17970
- Add allowedExtensions setting by @kevinjwang1 in https://github.com/google-gemini/gemini-cli/pull/17695
- feat(plan): refactor
ToolConfirmationPayloadto union type by @jerop in https://github.com/google-gemini/gemini-cli/pull/17980 - lower the default max retries to reduce contention by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/17975
- fix(core): ensure YOLO mode auto-approves complex shell commands when parsing fails by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/17920
- Fix broken link. by @g-samroberts in https://github.com/google-gemini/gemini-cli/pull/17972
- Support ctrl-C and Ctrl-D correctly Refactor so InputPrompt has priority over AppContainer for input handling. by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/17993
- Fix truncation for AskQuestion by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/18001
- fix(workflow): update maintainer check logic to be inclusive and case-insensitive by @bdmorgan in https://github.com/google-gemini/gemini-cli/pull/18009
- Fix Esc cancel during streaming by @LyalinDotCom in https://github.com/google-gemini/gemini-cli/pull/18039
- feat(acp): add session resume support by @bdmorgan in https://github.com/google-gemini/gemini-cli/pull/18043
- fix(ci): prevent stale PR closer from incorrectly closing new PRs by @bdmorgan in https://github.com/google-gemini/gemini-cli/pull/18069
- chore: delete autoAccept setting unused in production by @victorvianna in https://github.com/google-gemini/gemini-cli/pull/17862
- feat(plan): use
placeholderfor choice question "Other" option by @jerop in https://github.com/google-gemini/gemini-cli/pull/18101 - docs: update clearContext to hookSpecificOutput by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/18024
- docs-writer skill: Update docs writer skill by @jkcinouye in https://github.com/google-gemini/gemini-cli/pull/17928
- Sehoon/oncall filter by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/18105
- feat(core): add setting to disable loop detection by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/18008
- Docs: Revise docs/index.md by @jkcinouye in https://github.com/google-gemini/gemini-cli/pull/17879
- Fix up/down arrow regression and add test. by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/18108
- fix(ui): prevent content leak in
MaxSizedBoxbottom overflow by @jerop in https://github.com/google-gemini/gemini-cli/pull/17991 - refactor: migrate checks.ts utility to core and deduplicate by @jerop in https://github.com/google-gemini/gemini-cli/pull/18139
- feat(core): implement tool name aliasing for backward compatibility by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/17974
- docs: fix help-wanted label spelling by @pavan-sh in https://github.com/google-gemini/gemini-cli/pull/18114
- feat(cli): implement automatic theme switching based on terminal background by @Abhijit-2592 in https://github.com/google-gemini/gemini-cli/pull/17976
- fix(ide): no-op refactoring that moves the connection logic to helper functions by @skeshive in https://github.com/google-gemini/gemini-cli/pull/18118
- feat: update review-frontend-and-fix slash command to review-and-fix by @galz10 in https://github.com/google-gemini/gemini-cli/pull/18146
- fix: improve
Ctrl+Rreverse search by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/18075 - feat(plan): handle inconsistency in schedulers by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/17813
- feat(plan): add core logic and
exit_plan_modetool definition by @jerop in https://github.com/google-gemini/gemini-cli/pull/18110 - feat(core): rename search_file_content tool to grep_search and add legacy alias by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/18003
- fix(core): prioritize detailed error messages for code assist setup by @gsquared94 in https://github.com/google-gemini/gemini-cli/pull/17852
- fix(cli): resolve environment loading and auth validation issues in ACP mode by @bdmorgan in https://github.com/google-gemini/gemini-cli/pull/18025
- feat(core): add .agents/skills directory alias for skill discovery by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18151
- chore(core): reassign telemetry keys to avoid server conflict by @mattKorwel in https://github.com/google-gemini/gemini-cli/pull/18161
- Add link to rewind doc in commands.md by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/17961
- feat(core): add draft-2020-12 JSON Schema support with lenient fallback by @afarber in https://github.com/google-gemini/gemini-cli/pull/15060
- refactor(core): robust trimPreservingTrailingNewline and regression test by @adamfweidman in https://github.com/google-gemini/gemini-cli/pull/18196
- Remove MCP servers on extension uninstall by @chrstnb in https://github.com/google-gemini/gemini-cli/pull/18121
- refactor: localize ACP error parsing logic to cli package by @bdmorgan in https://github.com/google-gemini/gemini-cli/pull/18193
- feat(core): Add A2A auth config types by @adamfweidman in https://github.com/google-gemini/gemini-cli/pull/18205
- Set default max attempts to 3 and use the common variable by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/18209
- feat(plan): add
exit_plan_modeui and prompt by @jerop in https://github.com/google-gemini/gemini-cli/pull/18162 - fix(test): improve test isolation and enable subagent evaluations by @cocosheng-g in https://github.com/google-gemini/gemini-cli/pull/18138
- feat(plan): use custom deny messages in plan mode policies by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/18195
- Match on extension ID when stopping extensions by @chrstnb in https://github.com/google-gemini/gemini-cli/pull/18218
- fix(core): Respect user's
.gitignorepreference by @xyrolle in https://github.com/google-gemini/gemini-cli/pull/15482 - docs: document GEMINI_CLI_HOME environment variable by @adamfweidman in https://github.com/google-gemini/gemini-cli/pull/18219
- chore(core): explicitly state plan storage path in prompt by @jerop in https://github.com/google-gemini/gemini-cli/pull/18222
- A2a admin setting by @DavidAPierce in https://github.com/google-gemini/gemini-cli/pull/17868
- feat(a2a): Add pluggable auth provider infrastructure by @adamfweidman in https://github.com/google-gemini/gemini-cli/pull/17934
- Fix handling of empty settings by @chrstnb in https://github.com/google-gemini/gemini-cli/pull/18131
- Reload skills when extensions change by @chrstnb in https://github.com/google-gemini/gemini-cli/pull/18225
- feat: Add markdown rendering to
ask_usertool by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/18211 - Add telemetry to rewind by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/18122
- feat(admin): add support for MCP configuration via admin controls (pt1) by @skeshive in https://github.com/google-gemini/gemini-cli/pull/18223
- feat(core): require user consent before MCP server OAuth by @ehedlund in https://github.com/google-gemini/gemini-cli/pull/18132
- fix(sandbox): propagate GOOGLE_GEMINI_BASE_URL&GOOGLE_VERTEX_BASE_URL env vars by @skeshive in https://github.com/google-gemini/gemini-cli/pull/18231
- feat(ui): move user identity display to header by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/18216
- fix: enforce folder trust for workspace settings, skills, and context by @galz10 in https://github.com/google-gemini/gemini-cli/pull/17596
- fix(patch): cherry-pick aba8c5f to release/v0.28.0-preview.0-pr-17806 to patch version v0.28.0-preview.0 and create version 0.28.0-preview.1 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/18307
- fix(patch): cherry-pick 9ca7300 to release/v0.28.0-preview.1-pr-18395 to patch version v0.28.0-preview.1 and create version 0.28.0-preview.2 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/18400
- fix(patch): cherry-pick d86b1f7 to release/v0.28.0-preview.2-pr-18447 to patch version v0.28.0-preview.2 and create version 0.28.0-preview.3 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/18450
- fix(patch): cherry-pick 1cae5ab to release/v0.28.0-preview.3-pr-18376 to patch version v0.28.0-preview.3 and create version 0.28.0-preview.4 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/18463
- fix(patch): cherry-pick ec5836c to release/v0.28.0-preview.4-pr-18343 to patch version v0.28.0-preview.4 and create version 0.28.0-preview.5 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/18472
- fix(patch): cherry-pick 81ccd80 to release/v0.28.0-preview.5-pr-18406 to patch version v0.28.0-preview.5 and create version 0.28.0-preview.6 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/18651
- fix(patch): cherry-pick bce1cae to release/v0.28.0-preview.6-pr-18407 [CONFLICTS] by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/18739
New Contributors
- @leochiu-a made their first contribution in https://github.com/google-gemini/gemini-cli/pull/17504
- @erikus made their first contribution in https://github.com/google-gemini/gemini-cli/pull/17569
- @nemyung made their first contribution in https://github.com/google-gemini/gemini-cli/pull/17474
- @Randomblock1 made their first contribution in https://github.com/google-gemini/gemini-cli/pull/17462
- @ATHARVA262005 made their first contribution in https://github.com/google-gemini/gemini-cli/pull/17692
- @deyim made their first contribution in https://github.com/google-gemini/gemini-cli/pull/16177
- @lottielin made their first contribution in https://github.com/google-gemini/gemini-cli/pull/17942
- @victorvianna made their first contribution in https://github.com/google-gemini/gemini-cli/pull/17862
- @pavan-sh made their first contribution in https://github.com/google-gemini/gemini-cli/pull/18114
Full Changelog: https://github.com/google-gemini/gemini-cli/compare/v0.27.4...v0.28.0