Follow Discord
Sweep 25 Sep 2026 · 19:33Z Build v2.1.283 504 read Stable v2.1.274 Latest v2.1.283 Next v2.1.283 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.281 ·

Assistant messages with plain-string content are converted to text blocks, with telemetry

Claude's replies stored as plain text are now converted into standard text blocks before messages are assembled

Entry
JSON All of v2.1.281
EntryKind: in v2.1.281,
ChangesSection of the release
What

A message's content, message.content, can be either a single piece of text or a list of typed blocks, such as text blocks and tool blocks. Before building the conversation to send, Claude Code now runs an extra step over it. Any reply from Claude whose message.content is a single piece of text is rewritten as a list holding one text block with that same text.

If the text is empty, a fixed placeholder takes its place. Each time a message is converted, Claude Code records a telemetry event, tengu_assistant_string_content_promoted, only once for each message's unique ID. Telemetry is the usage data Claude Code sends back to Anthropic.

Why

Every reply now reaches the later steps in the same block-based shape, so code that expects blocks no longer has to cope with plain text. The event records how often the old shape still turns up.

What the documentation says
message.content Agent SDK reference - TypeScript modified, high confidence Set `inline_pastes` to tell Claude Code which parts of `message.content` the user pasted rather than typed, one string per paste. The prompt text stays where the user put it. Claude Code may wrap each listed paste in `<pasted_content>` tag… see the edit
How sure we are
One source agreesOne thing we can check says the same as this entry.
Anthropic's documentation agreesmessage.content on Agent SDK reference - TypeScript

See this entry in the whole of v2.1.281 →

Feedback