What
The launch model is the model a session starts with. In print and SDK sessions, which run Claude Code without the interactive screen, a set-model call can fail because the server refuses that model (serverRefusedModel). A new step, dropUnconfirmedLaunchModel, now discards the refused launch model if no turn has been sent yet. A turn is one exchange with the model.
dropUnconfirmedLaunchModeldiscards the refused launch model when no turn has been sent.- When that happens, Claude Code records a usage event that notes the surface the request came from and the error code.
refreshesClientDataOnSwitchis removed.- A
clientDataFetches.clear()reset call is added.
Why
This affects which model a print or SDK session ends up using after the server turns down the model it was launched with. A refused launch model is no longer kept around once the server has said no, as long as no work has been sent yet.
It is not clear which model the session uses instead once the refused one is dropped.