## What's Changed
* feat(ux): added text wrapping capabilities to markdown tables by @devr0306 in https://github.com/google-gemini/gemini-cli/pull/18240
* Revert "fix(mcp): ensure MCP transport is closed to prevent memory leaks" by @skeshive in https://github.com/google-gemini/gemini-cli/pull/18771
* chore(release): bump version to 0.30.0-nightly.20260210.a2174751d by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/18772
* chore: cleanup unused and add unlisted dependencies in packages/core by @adamfweidman in https://github.com/google-gemini/gemini-cli/pull/18762
* chore(core): update activate_skill prompt verbiage to be more direct by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18605
* Add autoconfigure memory usage setting to the dialog by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/18510
* fix(core): prevent race condition in policy persistence by @braddux in https://github.com/google-gemini/gemini-cli/pull/18506
* fix(evals): prevent false positive in hierarchical memory test by @Abhijit-2592 in https://github.com/google-gemini/gemini-cli/pull/18777
* test(evals): mark all `save_memory` evals as `USUALLY_PASSES` due to unreliability by @jerop in https://github.com/google-gemini/gemini-cli/pull/18786
* feat(cli): add setting to hide shortcuts hint UI by @LyalinDotCom in https://github.com/google-gemini/gemini-cli/pull/18562
* feat(core): formalize 5-phase sequential planning workflow by @jerop in https://github.com/google-gemini/gemini-cli/pull/18759
* Introduce limits for search results. by @gundermanc in https://github.com/google-gemini/gemini-cli/pull/18767
* fix(cli): allow closing debug console after auto-open via flicker by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/18795
* feat(masking): enable tool output masking by default by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/18564
* perf(ui): optimize table rendering by memoizing styled characters by @devr0306 in https://github.com/google-gemini/gemini-cli/pull/18770
* feat: multi-line text answers in ask-user tool by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/18741
* perf(cli): truncate large debug logs and limit message history by @mattKorwel in https://github.com/google-gemini/gemini-cli/pull/18663
* fix(core): complete MCP discovery when configured servers are skipped by @LyalinDotCom in https://github.com/google-gemini/gemini-cli/pull/18586
* fix(core): cache CLI version to ensure consistency during sessions by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/18793
* fix(cli): resolve double rendering in shpool and address vscode lint warnings by @braddux in https://github.com/google-gemini/gemini-cli/pull/18704
* feat(plan): document and validate Plan Mode policy overrides by @jerop in https://github.com/google-gemini/gemini-cli/pull/18825
* Fix pressing any key to exit select mode. by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/18421
* fix(cli): update F12 behavior to only open drawer if browser fails by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/18829
* feat(plan): allow skills to be enabled in plan mode by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/18817
* docs(plan): add documentation for plan mode tools by @jerop in https://github.com/google-gemini/gemini-cli/pull/18827
* Remove experimental note in extension settings docs by @chrstnb in https://github.com/google-gemini/gemini-cli/pull/18822
* Update prompt and grep tool definition to limit context size by @gundermanc in https://github.com/google-gemini/gemini-cli/pull/18780
* docs(plan): add `ask_user` tool documentation by @jerop in https://github.com/google-gemini/gemini-cli/pull/18830
* Revert unintended credentials exposure by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/18840
* feat(core): update internal utility models to Gemini 3 by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/18773
* feat(a2a): add value-resolver for auth credential resolution by @adamfweidman in https://github.com/google-gemini/gemini-cli/pull/18653
* Removed getPlainTextLength by @devr0306 in https://github.com/google-gemini/gemini-cli/pull/18848
* More grep prompt tweaks by @gundermanc in https://github.com/google-gemini/gemini-cli/pull/18846
* refactor(cli): Reactive useSettingsStore hook by @psinha40898 in https://github.com/google-gemini/gemini-cli/pull/14915
* fix(mcp): Ensure that stdio MCP server execution has the `GEMINI_CLI=1` env variable populated. by @richieforeman in https://github.com/google-gemini/gemini-cli/pull/18832
* fix(core): improve headless mode detection for flags and query args by @galz10 in https://github.com/google-gemini/gemini-cli/pull/18855
* refactor(cli): simplify UI and remove legacy inline tool confirmation logic by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/18566
* feat(cli): deprecate --allowed-tools and excludeTools in favor of policy engine by @Abhijit-2592 in https://github.com/google-gemini/gemini-cli/pull/18508
* fix(workflows): improve maintainer detection for automated PR actions by @bdmorgan in https://github.com/google-gemini/gemini-cli/pull/18869
* refactor(cli): consolidate useToolScheduler and delete legacy implementation by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/18567
* Update changelog for v0.28.0 and v0.29.0-preview0 by @g-samroberts in https://github.com/google-gemini/gemini-cli/pull/18819
* fix(core): ensure sub-agents are registered regardless of tools.allowed by @mattKorwel in https://github.com/google-gemini/gemini-cli/pull/18870
* Show notification when there's a conflict with an extensions command by @chrstnb in https://github.com/google-gemini/gemini-cli/pull/17890
* fix(cli): dismiss '?' shortcuts help on hotkeys and active states by @LyalinDotCom in https://github.com/google-gemini/gemini-cli/pull/18583
* fix(core): prioritize conditional policy rules and harden Plan Mode by @Abhijit-2592 in https://github.com/google-gemini/gemini-cli/pull/18882
* feat(core): refine Plan Mode system prompt for agentic execution by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18799
* feat(plan): create metrics for usage of `AskUser` tool by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/18820
* feat(cli): support Ctrl-Z suspension by @scidomino in https://github.com/google-gemini/gemini-cli/pull/18931
* fix(github-actions): use robot PAT for release creation to trigger release notes by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/18794
* feat: add strict seatbelt profiles and remove unusable closed profiles by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/18876
* chore: cleanup unused and add unlisted dependencies in packages/a2a-server by @adamfweidman in https://github.com/google-gemini/gemini-cli/pull/18916
* fix(plan): isolate plan files per session by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/18757
* fix: character truncation in raw markdown mode by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/18938
* feat(cli): prototype clean UI toggle and minimal-mode bleed-through by @LyalinDotCom in https://github.com/google-gemini/gemini-cli/pull/18683
* ui(polish) blend background color with theme by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/18802
* Add generic searchable list to back settings and extensions by @chrstnb in https://github.com/google-gemini/gemini-cli/pull/18838
* feat(ui): align `AskUser` color scheme with UX spec by @jerop in https://github.com/google-gemini/gemini-cli/pull/18943
* Hide AskUser tool validation errors from UI (agent self-corrects) by @jerop in https://github.com/google-gemini/gemini-cli/pull/18954
* bug(cli) fix flicker due to AppContainer continuous initialization by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/18958
* feat(admin): Add admin controls documentation by @skeshive in https://github.com/google-gemini/gemini-cli/pull/18644
* feat(cli): disable ctrl-s shortcut outside of alternate buffer mode by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/18887
* fix(vim): vim support that feels (more) complete by @ppgranger in https://github.com/google-gemini/gemini-cli/pull/18755
* feat(policy): add --policy flag for user defined policies by @allenhutchison in https://github.com/google-gemini/gemini-cli/pull/18500
* Update installation guide by @g-samroberts in https://github.com/google-gemini/gemini-cli/pull/18823
* refactor(core): centralize tool definitions (Group 1: replace, search, grep) by @aishaneeshah in https://github.com/google-gemini/gemini-cli/pull/18944
* refactor(cli): finalize event-driven transition and remove interaction bridge by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/18569
* Fix drag and drop escaping by @scidomino in https://github.com/google-gemini/gemini-cli/pull/18965
* feat(sdk): initial package bootstrap for SDK by @mbleigh in https://github.com/google-gemini/gemini-cli/pull/18861
* feat(sdk): implements SessionContext for SDK tool calls by @mbleigh in https://github.com/google-gemini/gemini-cli/pull/18862
* fix(plan): make question type required in AskUser tool by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/18959
* fix(core): ensure --yolo does not force headless mode by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18976
* refactor(core): adopt `CoreToolCallStatus` enum for type safety by @jerop in https://github.com/google-gemini/gemini-cli/pull/18998
* Enable in-CLI extension management commands for team by @chrstnb in https://github.com/google-gemini/gemini-cli/pull/18957
* Adjust lint rules to avoid unnecessary warning. by @scidomino in https://github.com/google-gemini/gemini-cli/pull/18970
* fix(vscode): resolve unsafe type assertion lint errors by @ehedlund in https://github.com/google-gemini/gemini-cli/pull/19006
* Remove unnecessary eslint config file by @scidomino in https://github.com/google-gemini/gemini-cli/pull/19015
* fix(core): Prevent loop detection false positives on lists with long shared prefixes by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/18975
* feat(core): fallback to chat-base when using unrecognized models for chat by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/19016
* docs: fix inconsistent commandRegex example in policy engine by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/19027
* fix(plan): persist the approval mode in UI even when agent is thinking by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/18955
* feat(sdk): Implement dynamic system instructions by @mbleigh in https://github.com/google-gemini/gemini-cli/pull/18863
* Docs: Refresh docs to organize and standardize reference materials. by @jkcinouye in https://github.com/google-gemini/gemini-cli/pull/18403
* fix windows escaping (and broken tests) by @scidomino in https://github.com/google-gemini/gemini-cli/pull/19011
* refactor: use `CoreToolCallStatus` in the the history data model by @jerop in https://github.com/google-gemini/gemini-cli/pull/19033
* feat(cleanup): enable 30-day session retention by default by @skeshive in https://github.com/google-gemini/gemini-cli/pull/18854
* feat(plan): hide plan write and edit operations on plans in Plan Mode by @jerop in https://github.com/google-gemini/gemini-cli/pull/19012
* bug(ui) fix flicker refreshing background color by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/19041
* chore: fix dep vulnerabilities by @scidomino in https://github.com/google-gemini/gemini-cli/pull/19036
* Revamp automated changelog skill by @g-samroberts in https://github.com/google-gemini/gemini-cli/pull/18974
* feat(sdk): implement support for custom skills by @mbleigh in https://github.com/google-gemini/gemini-cli/pull/19031
* refactor(core): complete centralization of core tool definitions by @aishaneeshah in https://github.com/google-gemini/gemini-cli/pull/18991
* feat: add /commands reload to refresh custom TOML commands by @korade-krushna in https://github.com/google-gemini/gemini-cli/pull/19078
* fix(cli): wrap terminal capability queries in hidden sequence by @srithreepo in https://github.com/google-gemini/gemini-cli/pull/19080
* fix(workflows): fix GitHub App token permissions for maintainer detection by @bdmorgan in https://github.com/google-gemini/gemini-cli/pull/19139
* test: fix hook integration test flakiness on Windows CI by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18665
* fix(core): Encourage non-interactive flags for scaffolding commands by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18804
* fix(core): propagate User-Agent header to setup-phase CodeAssist API calls by @gsquared94 in https://github.com/google-gemini/gemini-cli/pull/19182
* docs: document .agents/skills alias and discovery precedence by @kevmoo in https://github.com/google-gemini/gemini-cli/pull/19166
* feat(cli): add loading state to new agents notification by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/19190
* Add base branch to workflow. by @g-samroberts in https://github.com/google-gemini/gemini-cli/pull/19189
* feat(cli): handle invalid model names in useQuotaAndFallback by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/19222
* docs: custom themes in extensions by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/19219
* Disable workspace settings when starting GCLI in the home directory. by @kevinjwang1 in https://github.com/google-gemini/gemini-cli/pull/19034
* feat(cli): refactor model command to support set and manage subcommands by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/19221
* Add refresh/reload aliases to slash command subcommands by @korade-krushna in https://github.com/google-gemini/gemini-cli/pull/19218
* refactor: consolidate development rules and add cli guidelines by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/19214
* chore(ui): remove outdated tip about model routing by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/19226
* feat(core): support custom reasoning models by default by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/19227
* Add Solarized Dark and Solarized Light themes by @rmedranollamas in https://github.com/google-gemini/gemini-cli/pull/19064
* fix(telemetry): replace JSON.stringify with safeJsonStringify in file exporters by @gsquared94 in https://github.com/google-gemini/gemini-cli/pull/19244
* feat(telemetry): add keychain availability and token storage metrics by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/18971
* feat(cli): update approval mode cycle order by @jerop in https://github.com/google-gemini/gemini-cli/pull/19254
* refactor(cli): code review cleanup fix for tab+tab by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/18967
* feat(plan): support project exploration without planning when in plan mode by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/18992
* feat: add role-specific statistics to telemetry and UI (cont. #15234) by @yunaseoul in https://github.com/google-gemini/gemini-cli/pull/18824
* feat(cli): remove Plan Mode from rotation when actively working by @jerop in https://github.com/google-gemini/gemini-cli/pull/19262
* Fix side breakage where anchors don't work in slugs. by @g-samroberts in https://github.com/google-gemini/gemini-cli/pull/19261
* feat(config): add setting to make directory tree context configurable by @kevin-ramdass in https://github.com/google-gemini/gemini-cli/pull/19053
* fix(acp): Wait for mcp initialization in acp (#18893) by @Mervap in https://github.com/google-gemini/gemini-cli/pull/18894
* docs: format UTC times in releases doc by @pavan-sh in https://github.com/google-gemini/gemini-cli/pull/18169
* Docs: Clarify extensions documentation. by @jkcinouye in https://github.com/google-gemini/gemini-cli/pull/19277
* refactor(core): modularize tool definitions by model family by @aishaneeshah in https://github.com/google-gemini/gemini-cli/pull/19269
* fix(paths): Add cross-platform path normalization by @spencer426 in https://github.com/google-gemini/gemini-cli/pull/18939
* feat(core): experimental in-progress steering hints (1 of 3) by @joshualitt in https://github.com/google-gemini/gemini-cli/pull/19008
* fix(patch): cherry-pick 261788c to release/v0.30.0-preview.0-pr-19453 to patch version v0.30.0-preview.0 and create version 0.30.0-preview.1 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/19490
* fix(patch): cherry-pick c43500c to release/v0.30.0-preview.1-pr-19502 to patch version v0.30.0-preview.1 and create version 0.30.0-preview.2 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/19521
* fix(patch): cherry-pick aa9163d to release/v0.30.0-preview.3-pr-19991 to patch version v0.30.0-preview.3 and create version 0.30.0-preview.4 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/20040
* fix(patch): cherry-pick 2c1d6f8 to release/v0.30.0-preview.4-pr-19369 to patch version v0.30.0-preview.4 and create version 0.30.0-preview.5 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/20086
* fix(patch): cherry-pick d96bd05 to release/v0.30.0-preview.5-pr-19867 to patch version v0.30.0-preview.5 and create version 0.30.0-preview.6 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/20112
## New Contributors
* @braddux made their first contribution in https://github.com/google-gemini/gemini-cli/pull/18506
* @kevmoo made their first contribution in https://github.com/google-gemini/gemini-cli/pull/19166
**Full Changelog**: https://github.com/google-gemini/gemini-cli/compare/v0.29.7...v0.30.0