{"version":"2.1.290","anchor":"partial-stream-retraction-handles-tool-use-blocks-and-sends","canonical_anchor":"partial-stream-retraction-handles-tool-use-blocks-and-sends","heading":"Streams now end cleanly when a partly sent message is taken back","tier":"notice","area":"SDK","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.290\/e\/partial-stream-retraction-handles-tool-use-blocks-and-sends","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.290","markdown":"### Streams now end cleanly when a partly sent message is taken back\n\nWhen Claude Code withdraws a partly streamed message, it now tracks tool-use parts and sends a final stop event at the end of the turn\n\n**Unclear.** Whether a server-controlled switch decides when this applies is not clear.\n\n**What**\n\nClaude Code sends its replies as a stream of small events. Sometimes it takes back a message it has partly sent. Previously it always closed the open part of the message. Now it keeps track of any tool-use parts (requests to perform an action) and whether a stop reason was already sent, and it sends a final message stop event at the end of the turn.\n\n**Why**\n\nPrograms that read this stream through the SDK get a more consistent order of events.\n\n- Area: SDK\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 1\/5\n- Scope: individual\n- Heads-up: no"}