{"version":"2.1.238","anchor":"retraction-of-partially-streamed-output-moved-into-its-own-s","canonical_anchor":"retraction-of-partially-streamed-output-moved-into-its-own-s","heading":"Retraction of partially streamed output moved into its own state machine","tier":"internal","area":"Elsewhere","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.238\/e\/retraction-of-partially-streamed-output-moved-into-its-own-s","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.238","markdown":"### Retraction of partially streamed output moved into its own state machine\n\nThe code that withdraws a half-printed reply and shows a refusal banner was reorganized; nothing looks different.\n\n**What**\n\nThe logic that withdraws a partially printed response, handles a stale stream restart and swaps in a refusal banner was pulled out of the print loop into a reusable unit whose handlers swallow and log their own errors. The events emitted and the telemetry reported are unchanged.\n\n**Details**\n\n- Telemetry still reports `tengu_partial_stream_retraction_closed` with sources including a stale stream start and a refusal banner.\n- When streaming events are not requested, the whole thing is a do-nothing object.\n\n**Evidence**\n\n`tengu_partial_stream_retraction_closed`\n\n- Area: Elsewhere\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 0\/5"}