Model switches over the SDK now ask your hooks first and can be blocked.
What's wrong with this entry?
A 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.
- With no pending tool calls, the switch still applies immediately without consulting hooks.
- Blocked switches are reported as a
model_switchevent with the outcomeblocked_by_hook.
g("model_switch", "blocked_by_hook")
Strings lifted out of the shipped bundle, so the claim above can be checked against them.