{"version":"2.1.251","anchor":"model-switches-from-the-sdk-now-go-through-hooks","canonical_anchor":"model-switches-from-the-sdk-now-go-through-hooks","heading":"Model switches from the SDK now go through hooks","tier":"notice","area":"SDK","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.251\/e\/model-switches-from-the-sdk-now-go-through-hooks","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.251","markdown":"### Model switches from the SDK now go through hooks\n\nModel switches over the SDK now ask your hooks first and can be blocked.\n\n**What**\n\nA model switch requested over the SDK bridge while tool calls are still pending is no longer applied straight away. It asks the hook pipeline first and applies only if the decision is \"proceed\"; otherwise the switch is blocked, recorded in telemetry, and any messages the hook produced are shown in the transcript.\n\n**Details**\n\n- With no pending tool calls, the switch still applies immediately without consulting hooks.\n- Blocked switches are reported as a `model_switch` event with the outcome `blocked_by_hook`.\n\n**Evidence**\n\n`g(\"model_switch\", \"blocked_by_hook\")`\n\n- Area: SDK\n- Tier: You'll notice\n- Useful: 3\/5\n- Signal: 3\/5"}