What's Changed
- fix(ide): polyfill import.meta.url for cjs build by @skeshive in #7279
- feat(cli) - Create base class for handling tokens stored in files by @shishu314 in #7240
- fix(process-utils): replace wmic with powershell for windows process by @dracic in #7087
- chore(release): v0.2.2 by @NTaylorMullen in #7319
- fix(cli): remove settings migration console logs by @galz10 in #7325
- Refine stream validation to prevent unnecessary retries by @mrcabbage972 in #7278
- bug(core): Strip thoughts when loading history. by @joshualitt in #7167
- fix(settings/env): Ensure that
loadEnvironment
is always called with settings. by @richieforeman in #7313 - fix(logging): Log NodeJS Version && Make Config.SessionID readonly by @richieforeman in #7219
- docs(contributing): add section on self-assigning issues by @davideast in #7243
- fix(trust): Refuse to load from untrusted process.cwd() sources; Add tests by @richieforeman in #7323
- Add MCP loading indicator when initializing Gemini CLI by @swissspidy in #6923
- fix: Settings in Folder trust hook by @shrutip90 in #7343
- fix(trust): Refuse to load extensions from untrusted workspaces by @richieforeman in #7342
- Screen reader updates by @chrstnb in #7307
- Fix(trust) - Disable commands from untrusted directories when useFolderTrust is enabled by @shishu314 in #7341
- docs(config): update documentation for settings structure by @galz10 in #7352
- Skip MCP server connections in untrusted folders by @shrutip90 in #7358
- feat: add Pro Quota Dialog by @JayadityaGit in #7094
- feat(cli): deprecate redundant CLI flags by @allenhutchison in #7360
- Show citations at the end of each turn by @scidomino in #7350
- fix(core): treat UTF16/32 BOM files as text and decode correctly by @tayyab3245 in #6081
- fix(trust): Update config.isTrustedFolder by @shrutip90 in #7373
- Fix backwards-compatibility for allowedTools -> tools.allowed by @werdnum in #7384
- fix: add flash lite with respect to api defaults by @psinha40898 in #4652
- fix(a2a): Don't mutate 'replace' tool args in scheduleToolCalls by @vmiura in #7369
- Restore missing
resolved
andintegrity
of some dependencies and add check of lockfile integrity by @ljxfstorm in #5336 - Fix enable command typo by @chrstnb in #7382
- feat: Add a
--session-summary
flag by @leehagoodjames in #7347 - Add flag to update all extensions by @chrstnb in #7321
- fix(core): Fix permissions for oauth_creds.json by @xplo1t-sec in #6662
- refactor(core): reuse computeNewContent in performAddMemoryEntry by @chen893 in #6689
- feat(extension): resolve environment variables in extension configuration by @skal88 in #7213
- fix(trust): Respect folder trust setting when reading GEMINI.md by @richieforeman in #7409
- fix(cli): preserve input history after /clear command by @flowernotfound in #5890
- feat(cli): add fuzzy matching for command suggestions by @dracic in #6633
- fix: show parent name in trust folder confirmation by @hritan in #7331
- refactor: remove redundant 'undefined' type or '?' by @noritaka1166 in #2691
- Smart Edit Tool by @silviojr in #6823
- chore(dedup): Mock tools refix by @adamfweidman in #7418
- Fix(Cli) - Restart gemini cli on folder trust settings changes by @shishu314 in #7413
- fix(workflows): improve issue triage by @srithreepo in #7449
- Update Issue Triage by @srithreepo in #7469
- fix(diffstats): Fix diff stats to correctly capture the edits by @kiranani in #7446
- Update gemini-automated-issue-triage.yml by @srithreepo in #7486
- Fix duplicate LOC counting due to diff_stat being passed in multiple places by @bdmorgan in #7483
- fix(auth): Fix failing auth test by @galz10 in #7502
- fix(release) - make release failures p0 by @abhipatel12 in #7514
- Merge general settings from different configuration sources by @bbiggs in #7528
- fix(int-tests): fix failing integration tests by @galz10 in #7516
- update(deps): genai sdk now handles empty GEMINI_API_KEY correctly by @gsquared94 in #7377
- fix(ide): use port number for server port file instead of vscode pid by @skeshive in #7368
- fix(build): allow builds to continue when sandbox detection fails by @bulkypanda in #7538
- refactor(core): Require model for utility calls by @abhipatel12 in #7566
- Support installing extensions with org/repo by @chrstnb in #7364
- Fix(cli) - Remove Foldertrust Feature Flag by @shishu314 in #7420
- Add highlights for input /commands and @file/paths by @miguelsolorio in #7165
- Enable citations by default for certain users. by @scidomino in #7438
- Add
gemini extensions link
command by @chrstnb in #7241 - Add footer configuration settings by @miguelsolorio in #7419
- feat(quality): Skip the next speaker check by default by @SandyTao520 in #7614
- Fix screen reader config bug by @chrstnb in #7615
- chore(ci): Update GitHub /assign workflow to use advanced search API by @davideast in #7601
- feat(oauth) - Create hybrid storage class by @shishu314 in #7610
- Fix Arrow Keys and make Kitty Protocol more robust by @deepankarsharma in #7118
- chore: improve inclusive-language by @jackwotherspoon in #7558
- fix(a2a-server): Fix flaky test on Windows by awaiting server close by @davideast in #7616
- test(auth): improve test environment variable cleanup by @bulkypanda in #7451
- Rename smart_edit to replace to align with the EditTool by @silviojr in #7621
- feat(cli): Add support for Ctrl+Backspace to delete a word backward by @davideast in #7162
- chore(e2e): Stabilize e2e test by adding a more descriptive prompt by @adamfweidman in #7599
- fix(ide): prevent race condition when diff accepted through CLI by @skeshive in #7633
- feat(sessions): Integrate chat recording into GeminiChat by @bl-ue in #6721
- fix(gitIgnore): prevent crash/error when processing malformed file paths in GitIgnoreParser by @lifefloating in #7553
- Log config.useSmartEdit to Clearcut by @owenofbrien in #7617
- fix: gemini-cli-vscode-ide-companion's package script by @xiaoxiangmoe in #7555
- feat: handle nested gitignore files by @gsquared94 in #7645
- chore(a2a-server): refactor a2a-server src directory by @sammccauley117 in #7593
- chore(a2a-server): Merge A2A types by @adamfweidman in #7650
- feat(cli): custom witty message by @JayadityaGit in #7641
- fix(deps): Add fzf as a direct dependency to CLI by @mattKorwel in #7658
- fix(cli): Correctly pass file filtering settings and add tests by @brychanrobot in #7239
- Simplify MCP server timeout configuration by @jakemac53 in #7661
- Move settings error throwing to loadSettings by @scidomino in #7605
- Fix(core): Log exact model version from API response by @SandyTao520 in #7666
- Override Gemini CLI trust with VScode workspace trust when in IDE by @shrutip90 in #7433
- chore(e2e): Stabilize PNG integration test part2 by @adamfweidman in #7670
- fix(core): Fix more logging issues by @SandyTao520 in #7674
- feat: run e2e tests on pull requests by @mattKorwel in #7659
- fix(tests): make read_many_files test more reliable by @allenhutchison in #7676
- fix(auth): improve Google OAuth error handling and prevent empty error messages by @bulkypanda in #7539
- Fix diff approval race between CLI and IDE by @rahatarmanahmed in #7609
- fix(settings): Add missing v1 settings to migration map by @galz10 in #7678
- feat/e2e workflow improvements by @mattKorwel in #7684
- Add enforcedAuthType setting by @chrstnb in #6564
- feat: Add positional argument for prompt by @allenhutchison in #7668
- feat(telemetry): Add character counts to diff stats by @kiranani in #7619
- Enable smart edit by default on main by @silviojr in #7679
- fix: Update permissions for trustedFolders.json file to make it more … by @shrutip90 in #7685
- Remove command from extension docs by @chrstnb in #7675
- Enhance json configuration docs by @paulirish in #7628
- feat(extension) - Notify users when there is a new version and update it by @shishu314 in #7408
- Handle cleaning up the response text in the UI when a response stream retry occurs by @mrcabbage972 in #7416
- refactor(setting): Improve settings migration and tool loading by @galz10 in #7445
- rename(telemetry): Update ai_(added|removed)lines to model(added|removed)_lines by @kiranani in #7577
- fix(core): tend to history with dangling function calls/responses by @agmsb in #7692
- improve performance of shell commands with lots of output by @jakemac53 in #7680
- Use IdeClient directly instead of config.ideClient by @scidomino in #7627
- add(telemetry): Add OTel logging for
FileOperationEvent
by @kiranani in #7082 - fix(diffstats): Always return diff stats from EditTool by @kiranani in #7489
- Takethree by @mattKorwel in #7740
- chore(release): v0.3.1 by @mattKorwel in #7742
- Feat(security) - Make the OAuthTokenStorage non static by @shishu314 in #7716
- Reduce bundle size & check it in CI by @swissspidy in #7395
- temp disable windows e2e tests by @mattKorwel in #7746
New Contributors
- @dracic made their first contribution in #7087
- @tayyab3245 made their first contribution in #6081
- @xplo1t-sec made their first contribution in #6662
- @chen893 made their first contribution in #6689
- @skal88 made their first contribution in #7213
- @xiaoxiangmoe made their first contribution in #7555
- @sammccauley117 made their first contribution in #7593
- @rahatarmanahmed made their first contribution in #7609
- @paulirish made their first contribution in #7628
Full Changelog: v0.3.1...v0.4.0-preview