{"version":"2.1.311","anchor":"interrupted-turns-also-emit-a-message-stop-with-from-block-i","canonical_anchor":"interrupted-turns-also-emit-a-message-stop-with-from-block-i","heading":"Interrupted turns now also mark unfinished stream content","tier":"notice","area":"SDK","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/interrupted-turns-also-emit-a-message-stop-with-from-block-i","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311","markdown":"### Interrupted turns now also mark unfinished stream content\n\nThe message_stop event Claude Code produces when a turn is interrupted can now say which partial content blocks to discard\n\n**What**\n\nPrograms that read Claude Code's output as a live stream through the SDK (the toolkit for driving Claude Code from your own code) get a `message_stop` event at the end of each reply. When Claude Code produces that event itself, it can name the position, `from_block_index`, from which content blocks were left unfinished.\n\nThat used to cover a stream from the API that failed, stalled or ended early. It now also covers a turn that was interrupted, for example when you stop Claude partway through a reply.\n\n**Why**\n\nA program reading the stream can now remove half-finished pieces of a reply after an interruption, the same way it already can after a stream failure.\n\n- Area: SDK\n- Names: `from_block_index`\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 1\/5\n- Scope: individual\n- Heads-up: no"}