Skip to content

fix: [ENG-2469] update Google default model to gemini-3-flash-preview#553

Merged
bao-byterover merged 1 commit intomainfrom
fix/ENG-2469
Apr 27, 2026
Merged

fix: [ENG-2469] update Google default model to gemini-3-flash-preview#553
bao-byterover merged 1 commit intomainfrom
fix/ENG-2469

Conversation

@cuongdo-byterover
Copy link
Copy Markdown
Collaborator

The previous default gemini-2.5-flash returns thinking-only responses when tools are present, which the agent loop cannot consume — every curate fails validation immediately.

Switch the default surfaced by both the provider registry and the Google provider config to gemini-3-flash-preview, matching the docs recommendation list.

Summary

  • Problem:
  • Why it matters:
  • What changed:
  • What did NOT change (scope boundary):

Type of change

  • Bug fix
  • New feature
  • Refactor (no behavior change)
  • Documentation
  • Test
  • Chore (build, dependencies, CI)

Scope (select all touched areas)

  • TUI / REPL
  • Agent / Tools
  • LLM Providers
  • Server / Daemon
  • Shared (constants, types, transport events)
  • CLI Commands (oclif)
  • Hub / Connectors
  • Cloud Sync
  • CI/CD / Infra

Linked issues

  • Closes #
  • Related #

Root cause (bug fixes only, otherwise write N/A)

  • Root cause:
  • Why this was not caught earlier:

Test plan

  • Coverage added:
    • Unit test
    • Integration test
    • Manual verification only
  • Test file(s):
  • Key scenario(s) covered:

User-visible changes

List user-visible changes (including defaults, config, or CLI output).
If none, write None.

Evidence

Attach at least one:

  • Failing test/log before + passing after
  • Trace/log snippets
  • Screenshot/recording

Checklist

  • Tests added or updated and passing (npm test)
  • Lint passes (npm run lint)
  • Type check passes (npm run typecheck)
  • Build succeeds (npm run build)
  • Commits follow Conventional Commits format
  • Documentation updated (if applicable)
  • No breaking changes (or clearly documented above)
  • Branch is up to date with main

Risks and mitigations

List real risks for this PR. If none, write None.

  • Risk:
    • Mitigation:

The previous default `gemini-2.5-flash` returns thinking-only responses
when tools are present, which the agent loop cannot consume — every
curate fails validation immediately.

Switch the default surfaced by both the provider registry and the
Google provider config to `gemini-3-flash-preview`, matching the docs
recommendation list.
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 27, 2026

Claude finished @cuongdo-byterover's task in 1m 19s —— View job


Code Review

  • Gather context and read changed files
  • Analyze changes for correctness, security, and code quality
  • Post review feedback

Summary

Overall score: 4/5

The change is minimal, targeted, and correct. gemini-3-flash-preview is already used as the default in several other parts of the codebase (src/server/constants.ts, src/agent/infra/llm/providers/byterover.ts, src/agent/infra/agent/interactive-loop.ts, etc.), making this update consistent. Two locations are correctly brought into alignment.


Observations

praise(correctness): Both default model fields updated consistently

src/agent/infra/llm/providers/google.ts:24 and src/server/core/domain/entities/provider-registry.ts:164 both changed in lockstep. No stale reference was left behind in these two files, and the new model is already validated in the model registry at src/agent/core/domain/llm/registry.ts:160.


issue(testing): No tests added — violates mandatory TDD policy

CLAUDE.md requires TDD: write failing tests first, confirm they fail, then implement. This PR skips that step entirely. There is no test asserting that googleProvider.defaultModel === 'gemini-3-flash-preview' or that PROVIDER_REGISTRY.google.defaultModel === 'gemini-3-flash-preview'. If someone reverts this value in a future refactor, nothing will catch it.

Suggested additions:

  • A unit test in test/unit/agent/llm/providers/ asserting googleProvider.defaultModel
  • A unit test in test/unit/ asserting PROVIDER_REGISTRY.google.defaultModel

Fix this →


nitpick(docs): PR description template is largely unfilled

The Summary bullet points, Root cause fields, Test plan, Evidence, and Checklist are all left as template placeholders. For a fix that has a concrete root cause and a clear user-visible change (Google provider now defaults to a working model), these sections are easy to fill in and help reviewers and future bisect readers understand the change.


note(scope): gemini-2.5-flash references in tests are fine

Tests under test/unit/agent/llm/tokenizers/, test/unit/agent/llm/retry/, etc. still use 'gemini-2.5-flash' as a concrete model name to test other logic (tokenizer behavior, retry policy). These do not need to change — gemini-2.5-flash remains a valid registered model; it just is no longer the default.


note(no security concerns)

No security implications. This is a pure string constant change affecting model selection defaults.

Copy link
Copy Markdown
Collaborator

@bao-byterover bao-byterover left a comment

Choose a reason for hiding this comment

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

LGTM

@bao-byterover bao-byterover merged commit 4e70643 into main Apr 27, 2026
6 checks passed
@bao-byterover bao-byterover deleted the fix/ENG-2469 branch April 27, 2026 03:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants