What's Changed
- feat: update .gitignore in /setup-github by @jerop in #6591
- Refac: Centralize storage file management by @y-okt in #4078
- Update README.md by @mattKorwel in #6603
- feat: add dependabot configuration by @cornmander in #6604
- Ignore workspace settings for untrusted folders by @shrutip90 in #6606
- Add permissions specs to token generation. by @cornmander in #6595
- docs: Update keyboard shortcuts for input clearing functionality by @lifefloating in #6627
- chore(deps)(deps): bump google-github-actions/run-gemini-cli from 0.1.10 to 0.1.11 by @dependabot[bot] in #6614
- Changes to add MCP tool count, and MCP tool name as dimension by @agarwalravikant in #6631
- test(logging): Add tests for default log fields by @leehagoodjames in #6583
- Fix formatting in README.md by @aaabramov in #6621
- feat(release): update release process for nightly and preview builds by @mattKorwel in #6643
- Add enterprise settings docs by @chrstnb in #6076
- fix: typo in readme by @bravetux in #6669
- fix: copy command gets stuck by @hritan in #6482
- Revert "Ignore workspace settings for untrusted folders" by @jacob314 in #6672
- Fixing at command race condition by @mrcabbage972 in #6663
- return the JSON stringified parameters from getDescription for MCP tools and Discovered tools by @jakemac53 in #6655
- fix: typos/grammar in roadmap by @bravetux in #6675
- feat(core): Handle special characters in file search paths by @SandyTao520 in #6680
- feat(ide ext): Write workspace path to port file by @skeshive in #6659
- feat(ide): improve IDE installation UX and feedback by @skeshive in #6677
- Limit dependabot PRs to security updates by @cornmander in #6657
- Remove unnecessary FileErrorType. by @scidomino in #6697
- Remove unused attribute by @scidomino in #6661
- test(integration): add failing test for stdin context with prompt by @allenhutchison in #6158
- Add integration test to confirm environment variable propagation. by @cornmander in #6696
- (fix): Change broken emojis by @bonggwan in #6725
- feat(mcp-client): Handle 401 error for httpUrl by @yoichiro in #6640
- fix(core): avoid error handling on cancelled requests to prevent crash by @pwrwpw in #6039
- fix(metrics): Do not convert numerical metrics to strings by @kiranani in #6701
- Force restart on trust level change to reload settings by @shrutip90 in #6713
- feat(cli): prompt completion by @3ks in #4691
- Quick fix for enterprise docs by @chrstnb in #6753
- Fix stats display layout by @chrstnb in #6758
- chore(lint config): add test-utils to eslint config by @adamfweidman in #6768
- perf(core): parallelize memory discovery file operations performance gain by @mag123c in #5751
- At Command Race Condition Bugfix For Non-Interactive Mode by @mrcabbage972 in #6676
- fix: handle extra text in gemini output for dedup workflow by @gsquared94 in #6771
- feat(core): Annotate remaining error paths in tools with type. by @joshualitt in #6699
- Support IDE connections via stdio MCP by @bbiggs in #6417
- fix(docs): path of chat checkpoints in manual by @rfabbri in #6303
- Introduce initial screen reader mode handling and flag by @chrstnb in #6653
- feat(settings) support editing string settings. by @jacob314 in #6732
- Reuse CoreToolScheduler for nonInteractiveToolExecutor by @scidomino in #6714
- test(integration-tests): isolate user memory from test runs by @galz10 in #6790
- fix(ide): preserve focus when showing diff view by @skeshive in #6795
- fix(console): fix debug icon rendering in "Debug Console" Box by @HunDun0Ben in #6737
- fix: Ctrl+E should move to current line end, not buffer end by @mkusaka in #6729
- Fix(grep): memory overflow in grep search and enhance test coverage by @lifefloating in #5911
- feat(search): Add option to disable fuzzy search by @brychanrobot in #6510
- feat: Add programming language to CLI events by @nandakishorereddy-chundi in #6071
- fix(tools): Add an end of file list marker to ReadManyFilesTool by @vmiura in #5967
- fix(checkpointing): improve error handling and messaging for Git issues by @bulkypanda in #6801
- fix(cli): improve stdin handling and add initial state check by @lifefloating in #6747
- fix(core): citation markers misplaced in search results containing multibyte characters by @pokutuna in #5956
- fix invalid json in workflow settings by @jerop in #6831
- fix(copyCommand): provide friendlier error messages for
/copy
command by @HunDun0Ben in #6723 - fix(core): correctly consolidate multi-part text content by @thisisrick25 in #6235
- feat(mcp): Improve MCP prompt argument parsing by @jakemac53 in #6779
- bug(core): Fix for "no changes" edits. by @joshualitt in #6836
- fix(editors): fix neovim closing when using
modify with editor
by @redoxahmii in #5337 - feat(mcp): log include MCP request with error by @leehagoodjames in #6778
- fix(release): fallback to github.sha when ref is not provided by @mattKorwel in #6862
- feat: add explicit license selection and status visibility by @JeongJaeSoon in #6751
- Retry Message Stream on Empty Chunks by @mrcabbage972 in #6777
- feat(cli): Allow themes to be specified as file paths by @santhoshkumarCodes in #6828
- feat(ci): add self-assign workflow for issues by @davideast in #6840
- Log all parts of a streaming response by @silviojr in #6855
- Support all content types in prompts from Zed by @agu-z in #6756
- Fix crash when encountering an included directory which doesn't exist by @gbbosak in #6497
- Change the type of ToolResult.responseParts by @scidomino in #6875
- fix(cli): Support special characters in sandbox profile path by @georgesmith46 in #2038
- Metrics for Retries on Content Errors by @mrcabbage972 in #6870
- Filter thought parts before passing them to CountToken by @bdmorgan in #6859
- Add support for debug logging of keystrokes to investigate #6227 by @deepankarsharma in #6844
- fix: slash command completion menu column width and spacing issues by @naaa760 in #5797
- fix(core): Skip loop check for dividers by @SandyTao520 in #6893
- fix(cli): gemini command stuck in git bash by @dumbbellcode in #6397
- Update instructions for patching a release by @skeshive in #6871
- feat(core): share file list patterns between glob and grep tools by @Han5991 in #6359
- fix(cli): Improve proxy test isolation and sandbox path resolution by @kookyleo in #6555
- Support JSON schema formats using ajv-formats by @bbiggs in #6949
- Add
.prettierignore
file by @swissspidy in #6914 - add(OTel): Add OTel logging for MalformedJsonEvent by @kiranani in #6912
- Introduce system defaults (vs system overrides) by @bbiggs in #6724
- chore(test): install and configure vitest eslint plugin by @swissspidy in #3228
- [extensions] Add extension management install command by @chrstnb in #6703
- [extensions] Add extensions uninstall command by @chrstnb in #6877
- Show error instead of aborting if model fails to call tool by @as-cii in #7005
- fix: misaligned right border on tool calls ui and spacing in multiple tool calls ui by @bulkypanda in #6941
- [extensions] Add extensions list command by @chrstnb in #6879
- refactor(ide): Improve IDE detection discovery by @skeshive in #6765
- fix(keyboard): Implement Tab and Backspace handling for Kitty Protocol by @abhipatel12 in #7006
- [extensions] Add extensions update command by @chrstnb in #6878
- Log yolo mode + number of turns by @shishu314 in #6055
- feat(telemetry): Add email to telemetry prompt by @steventohme in #6339
- chore: consistently import node modules with prefix by @swissspidy in #3013
- feat: Update GitHub workflow configurations by @jerop in #7004
- feat(ide): Enable Firebase Studio install now that FS has updated VsCode by @richieforeman in #7027
- refactor(cli): Improve Kitty keycode handling and tests by @abhipatel12 in #7046
- fix(telemetry): Update logger tests to handle user email field by @bulkypanda in #7050
- feat: add golden snapshot test for ToolGroupMessage and improve success symbol by @bulkypanda in #7037
- Explict imports & exports with
type
modifier by @swissspidy in #3774 - unused deps by @yoshi-taka in #4732
- Added session id logging for non-interactive sessions in debug mode by @owenofbrien in #7032
- fix(core): enable thinking explicitly in flash-lite models by @ei-grad in #3033
- Revert "feat: add explicit license selection and status visibility (#6751)" by @scidomino in #7057
- fix(ci): allow release branches to run by @NTaylorMullen in #7060
- chore: remove CLI flags
all_files
andshow_memory_usage
by @jackwotherspoon in #7059 - fix: resolve three flaky tests by @bulkypanda in #7058
- feat: Disable YOLO and AUTO_EDIT modes for untrusted folders by @shrutip90 in #7041
- fix(ide): remove noisy error log by @skeshive in #7066
- [extensions] Add an initial set of extension variables by @chrstnb in #7035
- Treat undefined same as true for isTrustedFolder by @shrutip90 in #7073
- Fix(command): line/block Comments Incorrectly Parsed as Slash Commands by @lifefloating in #6957
- Do not call nextSpeakerCheck if there was an error processing the stream. by @silviojr in #7048
- Standardize exit codes by @scidomino in #7055
- Downgrade branch_protection to
log
by @markmcd in #2934 - [extensions] Add disable command by @chrstnb in #7001
- chore: format & imports by @adamfweidman in #7030
- chore: unused deps by @yoshi-taka in #7109
- Add extensions enable command by @chrstnb in #7042
- feat(mcp): Add ODIC fallback to OAuth metadata look up by @xiaoheh in #6863
- feat(cli): Add --allowed-tools flag to bypass tool confirmation (#2417) by @werdnum in #6453
- Make config non optional in ToolConfirmationMessage by @shrutip90 in #7083
- Ensure a Strictly Alternating Message History by @mrcabbage972 in #6995
- fix(#6392): latest prompt being reloaded when ending a persistent process by @hugomurillomtz in #6857
- Added usage details to /tools command. by @psimakov in #6849
- feat(subagent): Enable incremental output streaming by @allenhutchison in #5819
- Fix cloudbuild step. by @cornmander in #7131
- Downgrade version of ripgrep to the version from 7 months ago without a node 22 dependency by @jacob314 in #7132
- fix(cli) - Add logging for shell errors by @shishu314 in #7007
- Clearcut Logging of Content Error Metrics by @mrcabbage972 in #7099
- Add a2a-server package to gemini-cli by @adamfweidman in #6597
- feat(cli) - Define shared interface for storage by @shishu314 in #7049
- Print error when failing to build sandbox by @cornmander in #7149
- Update colors tokens for inputer/footer by @miguelsolorio in #6523
- feat(errors): Make errors more informative by @leehagoodjames in #7133
- Update build command to set GEMINI_SANDBOX var. by @cornmander in #7159
- fix(cli): make Ctrl+C UI test less flaky by @davideast in #7166
- fix(ci): Fix self assign action permissions by @davideast in #7130
- Add prompt to migrate workspace extensions by @chrstnb in #7065
- chore(release): v0.2.1 by @NTaylorMullen in #7200
- Log Gemini CLI OS / Process platform in the clearcut by @uttamkanodia14 in #7086
- feat(actions): create initial eval workflow by @agmsb in #7127
- fix: unset GEMINI_API_KEY env var if empty by @gsquared94 in #7214
- refactor: centralize tool status symbols in constants by @bulkypanda in #7054
- fix: Enable disableFuzzySearch config option propagation by @brychanrobot in #7002
- fix: make test more reliable by @gsquared94 in #7233
- refactor: improve intermediate result parsing in issue dedup workflow by @gsquared94 in #7218
- fix(tests): Fix Firebase Studio IDE detection tests by @davideast in #7163
- feat(cli) - Define base class for token storage by @shishu314 in #7221
- chore(cleanup): Consolidate MockTool definitions by @adamfweidman in #7228
- fix(bug): correct /about command in bug report template by @allenhutchison in #7235
- Fix shell argument parsing in windows by @scidomino in #7160
- Move mockTool into test-utils by @adamfweidman in #7245
- fix(compression): Discard compression result if it results in more token usage by @richieforeman in #7047
- Fix diff rendering in windows. by @scidomino in #7254
- fix(e2e): add missing deps to fix sandbox module not found errors in cli/core by @agmsb in #7256
- fix(e2e): skip flaky stdin context test by @agmsb in #7264
- refactor: refactor settings to a nested structure by @galz10 in #7244
- add(telemetry): Add missing telemetry for UserPromptEvent by @kiranani in #6885
- Revert "Move mockTool into test-utils (#7245)" by @galz10 in #7277
- feat(commands): Enable @file processing in TOML commands by @abhipatel12 in #6716
- Revert "chore(cleanup): Consolidate MockTool definitions (#7228)" by @galz10 in #7283
- Fix setting migration nosiness and merging by @galz10 in #7571
New Contributors
- @aaabramov made their first contribution in #6621
- @bravetux made their first contribution in #6669
- @bonggwan made their first contribution in #6725
- @pwrwpw made their first contribution in #6039
- @3ks made their first contribution in #4691
- @mag123c made their first contribution in #5751
- @rfabbri made their first contribution in #6303
- @mkusaka made their first contribution in #6729
- @nandakishorereddy-chundi made their first contribution in #6071
- @pokutuna made their first contribution in #5956
- @thisisrick25 made their first contribution in #6235
- @redoxahmii made their first contribution in #5337
- @JeongJaeSoon made their first contribution in #6751
- @gbbosak made their first contribution in #6497
- @georgesmith46 made their first contribution in #2038
- @dumbbellcode made their first contribution in #6397
- @kookyleo made their first contribution in #6555
- @as-cii made their first contribution in #7005
- @steventohme made their first contribution in #6339
- @yoshi-taka made their first contribution in #4732
- @ei-grad made their first contribution in #3033
- @xiaoheh made their first contribution in #6863
- @psimakov made their first contribution in #6849
Full Changelog: v0.2.2...v0.3.0-preview.2