chore(deps): bump google.golang.org/genai from 1.71.0 to 1.72.0 - #1714
Merged
Merged
Conversation
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.
8 tasks done
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Link to Issue or Description of Change
No linked issue; a routine dependency bump.
Problem: the root module is on
google.golang.org/genaiv1.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, andTestGenerateContentConfigFieldsAreAccountedForrequires the OpenAI model to translate or reject every config field so that none is silently dropped. The token has no OpenAI equivalent, so it joinsUnsupportedConfigFields. Both the Responses and Chat Completions paths reject it, and the package doc's rejected list now includes it.plugin/agentanalyticsstays 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
Labelsset: 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.ContinuationTokenfails withErrUnsupportedConfigField. The field did not exist before, so nothing that worked before breaks.Testing Plan
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.go.mod/go.sum. No indirect dependency upgrades.TestGenerateContentConfigFieldsAreAccountedForfails onContinuationToken. Removing the entry also fails the new rows inTestApplyGenerationConfigRejectsUnsupportedFieldsandTestApplyGenerationConfig_RejectedFields. Making its predicate never fire fails the Responses row, which the presence guard alone would miss.FinishReasonContinuationis also new. ADK's only exhaustive finish-reason mapping (the GenAI semconv attribute ininternal/telemetry) already lowercases unknown values, so it reportscontinuation.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.LLMResponsehas no field for it, so a user can see aCONTINUATIONfinish 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.