Skip to content

Remove previewFeatures and default to Gemini 3#18414

Merged
sehoon38 merged 5 commits intomainfrom
sehoon/previewFeatures
Feb 6, 2026
Merged

Remove previewFeatures and default to Gemini 3#18414
sehoon38 merged 5 commits intomainfrom
sehoon/previewFeatures

Conversation

@sehoon38
Copy link
Copy Markdown
Contributor

@sehoon38 sehoon38 commented Feb 6, 2026

Summary

Removes the previewFeatures configuration flag and logic. Updates the default
model to use "Gemini 3".

Details

  • Removed previewFeatures from settings schema and configuration.
  • Removed preview-related logic in model resolution and availability checks.
  • Updated UI components (AppHeader, ModelDialog, SettingsDialog) to remove
    preview toggles and banners.
  • Updated default models to point to Gemini 3 versions.
  • Cleaned up tests to reflect the removal of the preview flag.

Related Issues

Fixes https://github.com/google-gemini/maintainers-gemini-cli/issues/1253
Fixes https://github.com/google-gemini/maintainers-gemini-cli/issues/1254

How to Validate

  1. Run npm start.
  2. Verify that the "Preview features" setting is no longer available in
    /settings.
  3. Check the model selection dialog (/model) and verify Gemini 3 is the
    default or available without preview toggles.
  4. Run tests to ensure no regressions: npm run test.

Pre-Merge Checklist

  • Updated relevant documentation and README (if needed)
  • Added/updated tests (if needed)
  • Noted breaking changes (if any)
  • Validated on required platforms/methods:
    • MacOS
      • npm run
      • npx
      • Docker
      • Podman
      • Seatbelt
    • Windows
      • npm run
      • npx
      • Docker
    • Linux
      • npm run
      • npx
      • Docker

@sehoon38 sehoon38 requested a review from a team as a code owner February 6, 2026 02:26
@gemini-cli
Copy link
Copy Markdown
Contributor

gemini-cli bot commented Feb 6, 2026

Hi @sehoon38, thank you so much for your contribution to Gemini CLI! We really appreciate the time and effort you've put into this.

We're making some updates to our contribution process to improve how we track and review changes. Please take a moment to review our recent discussion post: Improving Our Contribution Process & Introducing New Guidelines.

Key Update: Starting January 26, 2026, the Gemini CLI project will require all pull requests to be associated with an existing issue. Any pull requests not linked to an issue by that date will be automatically closed.

Thank you for your understanding and for being a part of our community!

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @sehoon38, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly refactors the application's model management by eliminating the concept of 'preview features'. By removing the previewFeatures flag and directly integrating Gemini 3 as the default model, the change simplifies the configuration, model resolution, and user interface. This streamlines the development and user experience by removing conditional logic and UI elements previously required for preview model access.

Highlights

  • Removal of Preview Features Flag: The previewFeatures configuration flag and all associated logic have been entirely removed from the codebase. This includes its definition in settings schemas, configuration loading, and conditional checks across various modules.
  • Defaulting to Gemini 3: The system now directly defaults to using 'Gemini 3' (specifically PREVIEW_GEMINI_MODEL and PREVIEW_GEMINI_MODEL_AUTO) as the primary model, effectively graduating it from its previous preview status. This simplifies model resolution logic by removing the need for a separate preview toggle.
  • Simplified Model Resolution: Functions responsible for resolving model names, such as resolveModel and resolveClassifierModel, no longer require a previewFeaturesEnabled boolean argument, streamlining their implementation and reducing complexity.
  • User Interface Updates: UI components like AppHeader, ModelDialog, and SettingsDialog have been updated to remove any preview-related toggles, banners, and informational messages, reflecting Gemini 3's general availability.
  • Extensive Test Cleanup: Numerous unit tests across the a2a-server, cli, and core packages that were specifically designed to test previewFeatures logic have been removed or updated to align with the new, simplified model configuration.
Changelog
  • packages/a2a-server/src/config/config.ts
    • Removed DEFAULT_GEMINI_MODEL import and usage.
    • Hardcoded the model parameter to PREVIEW_GEMINI_MODEL.
    • Removed previewFeatures from ConfigParameters.
  • packages/a2a-server/src/config/settings.test.ts
    • Removed all tests related to loading and prioritizing previewFeatures.
  • packages/a2a-server/src/config/settings.ts
    • Removed the general.previewFeatures property from the Settings interface.
  • packages/cli/src/config/config.ts
    • Removed DEFAULT_GEMINI_MODEL_AUTO import.
    • Hardcoded defaultModel to PREVIEW_GEMINI_MODEL_AUTO.
    • Removed previewFeatures from loadCliConfig parameters.
  • packages/cli/src/config/settingsSchema.test.ts
    • Removed tests for the previewFeatures setting in the schema.
  • packages/cli/src/config/settingsSchema.ts
    • Removed the previewFeatures property from the general section of the SETTINGS_SCHEMA.
  • packages/cli/src/config/settings_repro.test.ts
    • Removed previewFeatures: false from mock settings in tests.
  • packages/cli/src/test-utils/mockConfig.ts
    • Removed the getPreviewFeatures method from createMockConfig.
  • packages/cli/src/ui/AppContainer.tsx
    • Removed the conditional banner logic that prompted users to enable 'Preview features' for Gemini 3.
  • packages/cli/src/ui/components/AppHeader.test.tsx
    • Removed tests that checked banner rendering based on previewFeatures status.
  • packages/cli/src/ui/components/Footer.tsx
    • Removed the config.getPreviewFeatures() argument from the getDisplayString utility function call.
  • packages/cli/src/ui/components/ModelDialog.test.tsx
    • Removed imports for PREVIEW_GEMINI_MODEL and PREVIEW_GEMINI_MODEL_AUTO.
    • Removed mockGetPreviewFeatures and all associated tests for preview logic within the dialog.
  • packages/cli/src/ui/components/ModelDialog.tsx
    • Removed ThemedGradient import and usage.
    • Simplified shouldShowPreviewModels to only check config?.getHasAccessToPreviewModel().
    • Removed conditional header/subheader logic related to preview features and their availability.
  • packages/cli/src/ui/components/SettingsDialog.test.tsx
    • Updated test assertions to reflect the removal of 'Preview Features' as the first setting in the dialog.
  • packages/cli/src/ui/components/SettingsDialog.tsx
    • Removed logic that handled changes to general.previewFeatures and calls to config?.setPreviewFeatures.
  • packages/cli/src/ui/components/snapshots/AppHeader.test.tsx.snap
    • Updated snapshots to remove banner content that was previously displayed based on preview features.
  • packages/cli/src/ui/components/snapshots/SettingsDialog.test.tsx.snap
    • Updated snapshots to remove the 'Preview Features' setting from the dialog display.
  • packages/cli/src/ui/components/messages/ToolGroupMessage.test.tsx
    • Removed previewFeatures: false from mock configuration.
  • packages/cli/src/ui/hooks/useBanner.test.ts
    • Removed getPreviewFeatures from MockConfigShape and tests verifying its behavior.
  • packages/cli/src/ui/hooks/useBanner.ts
    • Removed previewEnabled state and its useEffect hook.
    • Simplified the showDefaultBanner logic by removing the !previewEnabled condition.
  • packages/cli/src/ui/hooks/useQuotaAndFallback.test.ts
    • Updated expected error messages to remove references to disabling 'Preview features'.
  • packages/cli/src/ui/hooks/useQuotaAndFallback.ts
    • Modified the error message for model access issues to remove the suggestion to disable 'Preview features'.
  • packages/cli/src/zed-integration/zedIntegration.test.ts
    • Removed getPreviewFeatures from mock configuration.
  • packages/cli/src/zed-integration/zedIntegration.ts
    • Removed the config.getPreviewFeatures() argument from the resolveModel function call.
  • packages/core/src/availability/fallbackIntegration.test.ts
    • Removed getPreviewFeatures from mock configuration.
  • packages/core/src/availability/policyHelpers.test.ts
    • Removed getPreviewFeatures from mock configuration.
  • packages/core/src/config/config.test.ts
    • Removed imports of DEFAULT_GEMINI_MODEL_AUTO and PREVIEW_GEMINI_MODEL_AUTO.
    • Removed the entire 'Preview Features Logic in refreshAuth' and 'setPreviewFeatures' test blocks.
  • packages/core/src/config/config.ts
    • Removed PREVIEW_GEMINI_MODEL_AUTO import.
    • Removed previewFeatures from ConfigParameters interface and Config class properties.
    • Removed getPreviewFeatures and setPreviewFeatures methods.
    • Removed logic in refreshAuth related to the remote ENABLE_PREVIEW flag.
  • packages/core/src/config/models.test.ts
    • Removed GEMINI_MODEL_ALIAS_FLASH_LITE import.
    • Removed the previewFeaturesEnabled argument from getDisplayString and resolveModel calls in tests.
    • Removed the 'with preview features' test block from resolveModel tests.
    • Removed the 'should handle preview features being enabled' test from resolveClassifierModel.
  • packages/core/src/config/models.ts
    • Removed the previewFeaturesEnabled parameter from resolveModel, resolveClassifierModel, and getDisplayString functions.
    • Updated the internal logic of these functions to directly use PREVIEW_GEMINI_MODEL and PREVIEW_GEMINI_FLASH_MODEL for aliases, as they are no longer conditional on preview features.
  • packages/core/src/core/baseLlmClient.test.ts
    • Removed getPreviewFeatures from mock configuration.
  • packages/core/src/core/client.test.ts
    • Removed getPreviewFeatures from mock configuration.
  • packages/core/src/core/contentGenerator.test.ts
    • Removed getPreviewFeatures from mock configuration in multiple test cases.
  • packages/core/src/core/contentGenerator.ts
    • Removed the gcConfig.getPreviewFeatures() argument from the resolveModel function call.
  • packages/core/src/core/geminiChat.test.ts
    • Removed getPreviewFeatures from mock configuration.
  • packages/core/src/core/geminiChat.ts
    • Removed the this.config.getPreviewFeatures() argument from resolveModel calls.
  • packages/core/src/core/geminiChat_network_retry.test.ts
    • Removed getPreviewFeatures from mock configuration.
  • packages/core/src/core/prompts-substitution.test.ts
    • Removed getPreviewFeatures from mock configuration.
  • packages/core/src/core/prompts.test.ts
    • Removed getPreviewFeatures from mock configuration in multiple test cases.
  • packages/core/src/fallback/handler.test.ts
    • Removed getPreviewFeatures from mock configuration and related test assertions.
  • packages/core/src/prompts/promptProvider.ts
    • Removed the config.getPreviewFeatures() argument from the resolveModel function call.
  • packages/core/src/routing/strategies/classifierStrategy.test.ts
    • Removed getPreviewFeatures from mock configuration.
  • packages/core/src/routing/strategies/classifierStrategy.ts
    • Removed the config.getPreviewFeatures() argument from the resolveClassifierModel function call.
  • packages/core/src/routing/strategies/defaultStrategy.test.ts
    • Removed getPreviewFeatures from mock configuration and related test assertions.
  • packages/core/src/routing/strategies/defaultStrategy.ts
    • Removed the config.getPreviewFeatures() argument from the resolveModel function call.
  • packages/core/src/routing/strategies/fallbackStrategy.test.ts
    • Removed getPreviewFeatures from mock configuration.
  • packages/core/src/routing/strategies/fallbackStrategy.ts
    • Removed the config.getPreviewFeatures() argument from the resolveModel function call.
  • packages/core/src/routing/strategies/numericalClassifierStrategy.test.ts
    • Removed getPreviewFeatures from mock configuration.
  • packages/core/src/routing/strategies/numericalClassifierStrategy.ts
    • Removed the config.getPreviewFeatures() argument from the resolveClassifierModel function call.
  • packages/core/src/routing/strategies/overrideStrategy.test.ts
    • Removed getPreviewFeatures from mock configuration.
  • packages/core/src/routing/strategies/overrideStrategy.ts
    • Removed the config.getPreviewFeatures() argument from the resolveModel function call.
  • packages/test-utils/src/test-rig.ts
    • Removed previewFeatures: false from default settings in the test rig.
  • schemas/settings.schema.json
    • Removed the previewFeatures definition from the general properties in the settings schema.
Activity
  • The author has indicated that relevant tests have been added/updated, ensuring coverage for the changes.
  • The author has also noted that breaking changes have been considered, which is crucial for maintaining stability.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@sehoon38 sehoon38 changed the title feat(core): remove previewFeatures and default to Gemini 3 Remove previewFeatures and default to Gemini 3 Feb 6, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Feb 6, 2026

Size Change: -4.35 kB (-0.02%)

Total Size: 23.8 MB

Filename Size Change
./bundle/gemini.js 23.8 MB -4.35 kB (-0.02%)
ℹ️ View Unchanged
Filename Size
./bundle/sandbox-macos-permissive-closed.sb 1.03 kB
./bundle/sandbox-macos-permissive-open.sb 890 B
./bundle/sandbox-macos-permissive-proxied.sb 1.31 kB
./bundle/sandbox-macos-restrictive-closed.sb 3.29 kB
./bundle/sandbox-macos-restrictive-open.sb 3.36 kB
./bundle/sandbox-macos-restrictive-proxied.sb 3.56 kB

compressed-size-action

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request removes the previewFeatures flag and defaults to using Gemini 3 models. The changes are extensive, touching configuration, tests, and UI components across multiple packages to remove the preview-related logic. My review found two issues: one critical failing test due to an outdated error message, and one high-severity bug where the UI would display an incorrect model name to the user. I've provided suggestions to fix both.

@sehoon38 sehoon38 force-pushed the sehoon/previewFeatures branch from 8be42b6 to e490cf9 Compare February 6, 2026 02:57
@sehoon38 sehoon38 requested a review from a team as a code owner February 6, 2026 03:03
@gemini-cli gemini-cli bot added the priority/p1 Important and should be addressed in the near term. label Feb 6, 2026
@scidomino scidomino self-requested a review February 6, 2026 17:04
@sehoon38 sehoon38 force-pushed the sehoon/previewFeatures branch from 2c676b0 to c3d2f61 Compare February 6, 2026 17:48
@sehoon38 sehoon38 force-pushed the sehoon/previewFeatures branch from c3d2f61 to 8aa92d5 Compare February 6, 2026 17:53
@sehoon38 sehoon38 enabled auto-merge February 6, 2026 17:53
@sehoon38 sehoon38 added this pull request to the merge queue Feb 6, 2026
Merged via the queue into main with commit 61d92c4 Feb 6, 2026
25 of 26 checks passed
@sehoon38 sehoon38 deleted the sehoon/previewFeatures branch February 6, 2026 18:12
aswinashok44 pushed a commit to aswinashok44/gemini-cli that referenced this pull request Feb 9, 2026
kuishou68 pushed a commit to iOfficeAI/aioncli that referenced this pull request Feb 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority/p1 Important and should be addressed in the near term.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants