Skip to content

chore(deps): bump google.golang.org/genai from 1.71.0 to 1.72.0 - #1714

Merged
baptmont merged 2 commits into
mainfrom
baptmont/bump-genai-1.72
Oct 2, 2026
Merged

baptmont merged 2 commits into
mainfrom
baptmont/bump-genai-1.72

Conversation

@baptmont

@baptmont baptmont commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Link to Issue or Description of Change

No linked issue; a routine dependency bump.

Problem: the root module is on google.golang.org/genai v1.71.0. v1.72.0 is out.

Cooldown: v1.72.0 was published on 2026-10-01, so this deliberately skips the 7-day cooldown in .github/dependabot.yml. Dependabot will not propose it before 2026-10-08.

Solution: bump genai in the root module. The bump needs one source change. v1.72.0 adds GenerateContentConfig.ContinuationToken, and TestGenerateContentConfigFieldsAreAccountedFor requires the OpenAI model to translate or reject every config field so that none is silently dropped. The token has no OpenAI equivalent, so it joins UnsupportedConfigFields. Both the Responses and Chat Completions paths reject it, and the package doc's rejected list now includes it.

plugin/agentanalytics stays on v1.63.0. It is released separately and needs nothing from v1.72.0, so raising its minimum would only force an upgrade on its users. Note that dependabot only watches /, which is why that module lags.

Behavior change

  • Gemini model, Gemini Developer API backend, Labels set: genai v1.71.0 refused these requests client-side ("labels parameter is only supported in Gemini Enterprise Agent Platform mode"). v1.72.0 sends them. This comes from genai, not from ADK code.
  • OpenAI model: a request setting ContinuationToken fails with ErrUnsupportedConfigField. The field did not exist before, so nothing that worked before breaks.
  • Nothing else changes for existing users. The API change is additive only: no exported genai identifier was removed or retyped.

Testing Plan

  • Module loop green in both modules: go build, go test -race -count=1 -shuffle=on, golangci-lint run (v2.3.1, 0 issues), go mod tidy -diff (no output). Every httprr replay passes against the new client.
  • Only the two genai lines move in go.mod/go.sum. No indirect dependency upgrades.
  • With the source change reverted, TestGenerateContentConfigFieldsAreAccountedFor fails on ContinuationToken. Removing the entry also fails the new rows in TestApplyGenerationConfigRejectsUnsupportedFields and TestApplyGenerationConfig_RejectedFields. Making its predicate never fire fails the Responses row, which the presence guard alone would miss.
  • FinishReasonContinuation is also new. ADK's only exhaustive finish-reason mapping (the GenAI semconv attribute in internal/telemetry) already lowercases unknown values, so it reports continuation.

Not run against a live model. No API key or project is configured in my environment, and this is a client-library bump on the model path. A quick live call against Gemini before merge would be good confirmation.

Follow-up, not in this PR

ADK does not surface Candidate.ContinuationToken: model.LLMResponse has no field for it, so a user can see a CONTINUATION finish but cannot resume from it. A CONTINUATION candidate with no parts also takes the converter's error branch. Supporting continuation is a feature in its own right.

v1.72.0 adds GenerateContentConfig.ContinuationToken, an opaque token for
resuming a Gemini generation that stopped with finish reason CONTINUATION.
The OpenAI model translates every config field or rejects it, so a field a
caller sets is never silently dropped, and the guard test enforcing that
fails on the new field. The token has no OpenAI equivalent, so it joins
UnsupportedConfigFields: setting it now fails the request on both the
Responses and Chat Completions paths with ErrUnsupportedConfigField. The
package doc's list of rejected fields gains it too.

One behavior change comes from genai itself: in Gemini Developer API mode
it used to refuse a request that set GenerateContentConfig.Labels, and it
now sends them. A caller of the Gemini model on that backend who sets
Labels gets a request instead of a client-side error.

FinishReasonContinuation is also new. The only exhaustive mapping over
finish reasons, the GenAI semconv attribute in internal/telemetry, already
lowercases a value it does not know, so it reports "continuation" without
a change.

Only the root module moves. plugin/agentanalytics stays on v1.63.0: it is
released separately and needs nothing from v1.72.0, so raising its minimum
would only force an upgrade on its users.
@baptmont baptmont added the dependencies Pull requests that update a dependency file label Oct 2, 2026
@baptmont
baptmont requested a review from a team as a code owner October 2, 2026 12:30

@wolo-lab wolo-lab left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM, thanks!

@baptmont
baptmont merged commit b531451 into main Oct 2, 2026
14 checks passed
tongxury pushed a commit to tongxury/adk-go that referenced this pull request Oct 3, 2026
…le#1714)

v1.72.0 adds GenerateContentConfig.ContinuationToken, an opaque token for
resuming a Gemini generation that stopped with finish reason CONTINUATION.
The OpenAI model translates every config field or rejects it, so a field a
caller sets is never silently dropped, and the guard test enforcing that
fails on the new field. The token has no OpenAI equivalent, so it joins
UnsupportedConfigFields: setting it now fails the request on both the
Responses and Chat Completions paths with ErrUnsupportedConfigField. The
package doc's list of rejected fields gains it too.

One behavior change comes from genai itself: in Gemini Developer API mode
it used to refuse a request that set GenerateContentConfig.Labels, and it
now sends them. A caller of the Gemini model on that backend who sets
Labels gets a request instead of a client-side error.

FinishReasonContinuation is also new. The only exhaustive mapping over
finish reasons, the GenAI semconv attribute in internal/telemetry, already
lowercases a value it does not know, so it reports "continuation" without
a change.

Only the root module moves. plugin/agentanalytics stays on v1.63.0: it is
released separately and needs nothing from v1.72.0, so raising its minimum
would only force an upgrade on its users.

Co-authored-by: wolo <wolo@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants