{"version":"2.1.247","anchor":"the-interruptible-tool-in-progress-stream-event-is-gone","canonical_anchor":"the-interruptible-tool-in-progress-stream-event-is-gone","heading":"The interruptible_tool_in_progress stream event is gone","tier":"notice","area":"SDK Streaming","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.247\/e\/the-interruptible-tool-in-progress-stream-event-is-gone","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.247","markdown":"### The `interruptible_tool_in_progress` stream event is gone\n\nClients no longer get the stream event announcing that a long tool is still running and interruptible.\n\n**What**\n\nClaude Code no longer emits the stream message that told clients a long-running tool was still going and could be interrupted. The callback that delivered it has been pulled out of the dispatcher, the SDK message switch and the list of recognised message kinds, so any client subscribed to it simply stops receiving anything. Nothing replaces it as a signal: callers now infer tool state from the abort path instead.\n\n**Details**\n\n- The event name `interruptible_tool_in_progress` does not appear anywhere in this build.\n- Working out why a tool was aborted now rests on whether the tool had actually begun running, and on the shell caller kind reported by `shellCallerOf`, which is one of `inner`, `turn` or `agent`.\n- The per-tool lookup of interrupt behaviour and the state updater that emitted the event were both deleted.\n- Where the tool scheduler used to update interruptible state, it now wakes waiting callers directly.\n\n**Evidence**\n\n`shellCallerOf`, `interruptible_tool_in_progress`\n\n- Area: SDK Streaming\n- Tier: You'll notice\n- Useful: 3\/5\n- Signal: 3\/5"}