fix(core): fix setting ChatGeneration.text#35191
Merged
Merged
Conversation
ChatGeneration.text
Member
Mason Daugherty (mdrxy)
left a comment
There was a problem hiding this comment.
the old code accepted dict blocks without a type key
the message.text property requires block.get("type") == "text" explicitly, so blocks missing a type key are now excluded
is this a problem?
This was referenced Feb 12, 2026
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.
We previously had a hack where we'd take the first text block.
This isn't suited to model calls nowadays, where we generally expect multiple text blocks in a single invocation. For example when using Opus 4.6 with adaptive thinking, we can get output of the form:
[ { "text": "\n\n", "type": "text" }, { "signature": "...", "thinking": 'The user said "Hello"...', "type": "thinking" }, { "text": '{"response":"Hello! How can I help you today?"}', "type": "text" } ](Note: I verified that the raw response from Anthropic in the above case genuinely contains
TextBlock(citations=None, text='\n\n', type='text')as the first content element.)This was mentioned in a comment here.
The impact here is that output parsers do not access the full text content, only the first block. So structured output can fail.