## What's Changed * Fix bottom border color by @jacob314 in [#19266](https://github.com/google-gemini/gemini-cli/pull/19266) * Release note generator fix by @g-samroberts in [#19363](https://github.com/google-gemini/gemini-cli/pull/19363) * test(evals): add behavioral tests for tool output masking by @NTaylorMullen in [#19172](https://github.com/google-gemini/gemini-cli/pull/19172) * docs: clarify preflight instructions in GEMINI.md by @NTaylorMullen in [#19377](https://github.com/google-gemini/gemini-cli/pull/19377) * feat(cli): add gemini --resume hint on exit by @Mag1ck in [#16285](https://github.com/google-gemini/gemini-cli/pull/16285) * fix: optimize height calculations for ask_user dialog by @jackwotherspoon in [#19017](https://github.com/google-gemini/gemini-cli/pull/19017) * feat(cli): add Alt+D for forward word deletion by @scidomino in [#19300](https://github.com/google-gemini/gemini-cli/pull/19300) * Disable failing eval test by @chrstnb in [#19455](https://github.com/google-gemini/gemini-cli/pull/19455) * fix(cli): support legacy onConfirm callback in ToolActionsContext by @SandyTao520 in [#19369](https://github.com/google-gemini/gemini-cli/pull/19369) * chore(deps): bump tar from 7.5.7 to 7.5.8 by @.github/dependabot.yml[bot] in [#19367](https://github.com/google-gemini/gemini-cli/pull/19367) * fix(plan): allow safe fallback when experiment setting for plan is not enabled but approval mode at startup is plan by @Adib234 in [#19439](https://github.com/google-gemini/gemini-cli/pull/19439) * Add explicit color-convert dependency by @chrstnb in [#19460](https://github.com/google-gemini/gemini-cli/pull/19460) * feat(devtools): migrate devtools package into monorepo by @SandyTao520 in [#18936](https://github.com/google-gemini/gemini-cli/pull/18936) * fix(core): clarify plan mode constraints and exit mechanism by @jerop in [#19438](https://github.com/google-gemini/gemini-cli/pull/19438) * feat(cli): add macOS run-event notifications (interactive only) by @LyalinDotCom in [#19056](https://github.com/google-gemini/gemini-cli/pull/19056) * Changelog for v0.29.0 by @gemini-cli-robot in [#19361](https://github.com/google-gemini/gemini-cli/pull/19361) * fix(ui): preventing empty history items from being added by @devr0306 in [#19014](https://github.com/google-gemini/gemini-cli/pull/19014) * Changelog for v0.30.0-preview.0 by @gemini-cli-robot in [#19364](https://github.com/google-gemini/gemini-cli/pull/19364) * feat(core): add support for MCP progress updates by @NTaylorMullen in [#19046](https://github.com/google-gemini/gemini-cli/pull/19046) * fix(core): ensure directory exists before writing conversation file by @godwiniheuwa in [#18429](https://github.com/google-gemini/gemini-cli/pull/18429) * fix(ui): move margin from top to bottom in ToolGroupMessage by @imadraude in [#17198](https://github.com/google-gemini/gemini-cli/pull/17198) * fix(cli): treat unknown slash commands as regular input instead of showing error by @skyvanguard in [#17393](https://github.com/google-gemini/gemini-cli/pull/17393) * feat(core): experimental in-progress steering hints (2 of 2) by @joshualitt in [#19307](https://github.com/google-gemini/gemini-cli/pull/19307) * docs(plan): add documentation for plan mode command by @Adib234 in [#19467](https://github.com/google-gemini/gemini-cli/pull/19467) * fix(core): ripgrep fails when pattern looks like ripgrep flag by @syvb in [#18858](https://github.com/google-gemini/gemini-cli/pull/18858) * fix(cli): disable auto-completion on Shift+Tab to preserve mode cycling by @NTaylorMullen in [#19451](https://github.com/google-gemini/gemini-cli/pull/19451) * use issuer instead of authorization_endpoint for oauth discovery by @garrettsparks in [#17332](https://github.com/google-gemini/gemini-cli/pull/17332) * feat(cli): include `/dir add` directories in @ autocomplete suggestions by @jasmeetsb in [#19246](https://github.com/google-gemini/gemini-cli/pull/19246) * feat(admin): Admin settings should only apply if adminControlsApplicable = true and fetch errors should be fatal by @skeshive in [#19453](https://github.com/google-gemini/gemini-cli/pull/19453) * Format strict-development-rules command by @g-samroberts in [#19484](https://github.com/google-gemini/gemini-cli/pull/19484) * feat(core): centralize compatibility checks and add TrueColor detection by @spencer426 in [#19478](https://github.com/google-gemini/gemini-cli/pull/19478) * Remove unused files and update index and sidebar. by @g-samroberts in [#19479](https://github.com/google-gemini/gemini-cli/pull/19479) * Migrate core render util to use xterm.js as part of the rendering loop. by @jacob314 in [#19044](https://github.com/google-gemini/gemini-cli/pull/19044) * Changelog for v0.30.0-preview.1 by @gemini-cli-robot in [#19496](https://github.com/google-gemini/gemini-cli/pull/19496) * build: replace deprecated built-in punycode with userland package by @jacob314 in [#19502](https://github.com/google-gemini/gemini-cli/pull/19502) * Speculative fixes to try to fix react error. by @jacob314 in [#19508](https://github.com/google-gemini/gemini-cli/pull/19508) * fix spacing by @jacob314 in [#19494](https://github.com/google-gemini/gemini-cli/pull/19494) * fix(core): ensure user rejections update tool outcome for telemetry by @abhiasap in [#18982](https://github.com/google-gemini/gemini-cli/pull/18982) * fix(acp): Initialize config (#18897) by @Mervap in [#18898](https://github.com/google-gemini/gemini-cli/pull/18898) * fix(core): add error logging for IDE fetch failures by @yuvrajangadsingh in [#17981](https://github.com/google-gemini/gemini-cli/pull/17981) * feat(acp): support set_mode interface (#18890) by @Mervap in [#18891](https://github.com/google-gemini/gemini-cli/pull/18891) * fix(core): robust workspace-based IDE connection discovery by @ehedlund in [#18443](https://github.com/google-gemini/gemini-cli/pull/18443) * Deflake windows tests. by @jacob314 in [#19511](https://github.com/google-gemini/gemini-cli/pull/19511) * Fix: Avoid tool confirmation timeout when no UI listeners are present by @pdHaku0 in [#17955](https://github.com/google-gemini/gemini-cli/pull/17955) * format md file by @scidomino in [#19474](https://github.com/google-gemini/gemini-cli/pull/19474) * feat(cli): add experimental.useOSC52Copy setting by @scidomino in [#19488](https://github.com/google-gemini/gemini-cli/pull/19488) * feat(cli): replace loading phrases boolean with enum setting by @LyalinDotCom in [#19347](https://github.com/google-gemini/gemini-cli/pull/19347) * Update skill to adjust for generated results. by @g-samroberts in [#19500](https://github.com/google-gemini/gemini-cli/pull/19500) * Fix message too large issue. by @gundermanc in [#19499](https://github.com/google-gemini/gemini-cli/pull/19499) * fix(core): prevent duplicate tool approval entries in auto-saved.toml by @Abhijit-2592 in [#19487](https://github.com/google-gemini/gemini-cli/pull/19487) * fix(core): resolve crash in ClearcutLogger when os.cpus() is empty by @Adib234 in [#19555](https://github.com/google-gemini/gemini-cli/pull/19555) * chore(core): improve encapsulation and remove unused exports by @adamfweidman in [#19556](https://github.com/google-gemini/gemini-cli/pull/19556) * Revert "Add generic searchable list to back settings and extensions (… by @chrstnb in [#19434](https://github.com/google-gemini/gemini-cli/pull/19434) * fix(core): improve error type extraction for telemetry by @yunaseoul in [#19565](https://github.com/google-gemini/gemini-cli/pull/19565) * fix: remove extra padding in Composer by @jackwotherspoon in [#19529](https://github.com/google-gemini/gemini-cli/pull/19529) * feat(plan): support configuring custom plans storage directory by @jerop in [#19577](https://github.com/google-gemini/gemini-cli/pull/19577) * Migrate files to resource or references folder. by @g-samroberts in [#19503](https://github.com/google-gemini/gemini-cli/pull/19503) * feat(policy): implement project-level policy support by @Abhijit-2592 in [#18682](https://github.com/google-gemini/gemini-cli/pull/18682) * feat(core): Implement parallel FC for read only tools. by @joshualitt in [#18791](https://github.com/google-gemini/gemini-cli/pull/18791) * chore(skills): adds pr-address-comments skill to work on PR feedback by @mbleigh in [#19576](https://github.com/google-gemini/gemini-cli/pull/19576) * refactor(sdk): introduce session-based architecture by @mbleigh in [#19180](https://github.com/google-gemini/gemini-cli/pull/19180) * fix(ci): add fallback JSON extraction to issue triage workflow by @bdmorgan in [#19593](https://github.com/google-gemini/gemini-cli/pull/19593) * feat(core): refine Edit and WriteFile tool schemas for Gemini 3 by @SandyTao520 in [#19476](https://github.com/google-gemini/gemini-cli/pull/19476) * Changelog for v0.30.0-preview.3 by @gemini-cli-robot in [#19585](https://github.com/google-gemini/gemini-cli/pull/19585) * fix(plan): exclude EnterPlanMode tool from YOLO mode by @Adib234 in [#19570](https://github.com/google-gemini/gemini-cli/pull/19570) * chore: resolve build warnings and update dependencies by @mattKorwel in [#18880](https://github.com/google-gemini/gemini-cli/pull/18880) * feat(ui): add source indicators to slash commands by @ehedlund in [#18839](https://github.com/google-gemini/gemini-cli/pull/18839) * docs: refine Plan Mode documentation structure and workflow by @jerop in [#19644](https://github.com/google-gemini/gemini-cli/pull/19644) * Docs: Update release information regarding Gemini 3.1 by @jkcinouye in [#19568](https://github.com/google-gemini/gemini-cli/pull/19568) * fix(security): rate limit web_fetch tool to mitigate DDoS via prompt injection by @mattKorwel in [#19567](https://github.com/google-gemini/gemini-cli/pull/19567) * Add initial implementation of /extensions explore command by @chrstnb in [#19029](https://github.com/google-gemini/gemini-cli/pull/19029) * fix: use discoverOAuthFromWWWAuthenticate for reactive OAuth flow (#18760) by @maximus12793 in [#19038](https://github.com/google-gemini/gemini-cli/pull/19038) * Search updates by @alisa-alisa in [#19482](https://github.com/google-gemini/gemini-cli/pull/19482) * feat(cli): add support for numpad SS3 sequences by @scidomino in [#19659](https://github.com/google-gemini/gemini-cli/pull/19659) * feat(cli): enhance folder trust with configuration discovery and security warnings by @galz10 in [#19492](https://github.com/google-gemini/gemini-cli/pull/19492) * feat(ui): improve startup warnings UX with dismissal and show-count limits by @spencer426 in [#19584](https://github.com/google-gemini/gemini-cli/pull/19584) * feat(a2a): Add API key authentication provider by @adamfweidman in [#19548](https://github.com/google-gemini/gemini-cli/pull/19548) * Send accepted/removed lines with ACCEPT_FILE telemetry. by @gundermanc in [#19670](https://github.com/google-gemini/gemini-cli/pull/19670) * feat(models): support Gemini 3.1 Pro Preview and fixes by @sehoon38 in [#19676](https://github.com/google-gemini/gemini-cli/pull/19676) * feat(plan): enforce read-only constraints in Plan Mode by @mattKorwel in [#19433](https://github.com/google-gemini/gemini-cli/pull/19433) * fix(cli): allow perfect match @scripts/test-windows-paths.js completions to submit on Enter by @spencer426 in [#19562](https://github.com/google-gemini/gemini-cli/pull/19562) * fix(core): treat 503 Service Unavailable as retryable quota error by @sehoon38 in [#19642](https://github.com/google-gemini/gemini-cli/pull/19642) * Update sidebar.json for to allow top nav tabs. by @g-samroberts in [#19595](https://github.com/google-gemini/gemini-cli/pull/19595) * security: strip deceptive Unicode characters from terminal output by @ehedlund in [#19026](https://github.com/google-gemini/gemini-cli/pull/19026) * Fixes 'input.on' is not a function error in Gemini CLI by @gundermanc in [#19691](https://github.com/google-gemini/gemini-cli/pull/19691) * Revert "feat(ui): add source indicators to slash commands" by @ehedlund in [#19695](https://github.com/google-gemini/gemini-cli/pull/19695) * security: implement deceptive URL detection and disclosure in tool confirmations by @ehedlund in [#19288](https://github.com/google-gemini/gemini-cli/pull/19288) * fix(core): restore auth consent in headless mode and add unit tests by @ehedlund in [#19689](https://github.com/google-gemini/gemini-cli/pull/19689) * Fix unsafe assertions in code_assist folder. by @gundermanc in [#19706](https://github.com/google-gemini/gemini-cli/pull/19706) * feat(cli): make JetBrains warning more specific by @jacob314 in [#19687](https://github.com/google-gemini/gemini-cli/pull/19687) * fix(cli): extensions dialog UX polish by @jacob314 in [#19685](https://github.com/google-gemini/gemini-cli/pull/19685) * fix(cli): use getDisplayString for manual model selection in dialog by @sehoon38 in [#19726](https://github.com/google-gemini/gemini-cli/pull/19726) * feat(policy): repurpose "Always Allow" persistence to workspace level by @Abhijit-2592 in [#19707](https://github.com/google-gemini/gemini-cli/pull/19707) * fix(cli): re-enable CLI banner by @sehoon38 in [#19741](https://github.com/google-gemini/gemini-cli/pull/19741) * Disallow and suppress unsafe assignment by @gundermanc in [#19736](https://github.com/google-gemini/gemini-cli/pull/19736) * feat(core): migrate read_file to 1-based start_line/end_line parameters by @adamfweidman in [#19526](https://github.com/google-gemini/gemini-cli/pull/19526) * feat(cli): improve CTRL+O experience for both standard and alternate screen buffer (ASB) modes by @jwhelangoog in [#19010](https://github.com/google-gemini/gemini-cli/pull/19010) * Utilize pipelining of grep_search -> read_file to eliminate turns by @gundermanc in [#19574](https://github.com/google-gemini/gemini-cli/pull/19574) * refactor(core): remove unsafe type assertions in error utils (Phase 1.1) by @mattKorwel in [#19750](https://github.com/google-gemini/gemini-cli/pull/19750) * Disallow unsafe returns. by @gundermanc in [#19767](https://github.com/google-gemini/gemini-cli/pull/19767) * fix(cli): filter subagent sessions from resume history by @abhipatel12 in [#19698](https://github.com/google-gemini/gemini-cli/pull/19698) * chore(lint): fix lint errors seen when running npm run lint by @abhipatel12 in [#19844](https://github.com/google-gemini/gemini-cli/pull/19844) * feat(core): remove unnecessary login verbiage from Code Assist auth by @NTaylorMullen in [#19861](https://github.com/google-gemini/gemini-cli/pull/19861) * fix(plan): time share by approval mode dashboard reporting negative time shares by @Adib234 in [#19847](https://github.com/google-gemini/gemini-cli/pull/19847) * fix(core): allow any preview model in quota access check by @bdmorgan in [#19867](https://github.com/google-gemini/gemini-cli/pull/19867) * fix(core): prevent omission placeholder deletions in replace/write_file by @nsalerni in [#19870](https://github.com/google-gemini/gemini-cli/pull/19870) * fix(core): add uniqueness guard to edit tool by @Shivangisharma4 in [#19890](https://github.com/google-gemini/gemini-cli/pull/19890) * refactor(config): remove enablePromptCompletion from settings by @sehoon38 in [#19974](https://github.com/google-gemini/gemini-cli/pull/19974) **Full Changelog**: https://github.com/google-gemini/gemini-cli/compare/v0.30.0-nightly.20260218.ce84b3cb5...v0.30.0-nightly.20260223.c537fd5ae