What
A program that drives Claude Code can start a spare process ahead of time with --await-claim and hand it to a user later by sending claim_session. Settings for that spare are sent with apply_flag_settings. The claim can now be refused if those settings did not take effect.
- The
claim_sessionhandler gets a newparkedSettingsRefusalcallback. It returnsclaimRefusal()from the object that tracks parked settings. - The claim is refused while an earlier
apply_flag_settingsis still unanswered: "an earlier apply_flag_settings is still unanswered; claim again once it is answered". - It is also refused when the latest
apply_flag_settingswas refused, or when a flag-settings key would not be in force. - The error reads
settings_not_applied: ... - nothing was claimed; start the session with query(). - This applies only to the spare process started with
--await-claim. - The
claim_sessiondescription now says to send anapply_flag_settingscarrying the MCP and plugin keys ahead of the claim, and that refusing those settings also refuses the claim. Before, it said to sendset_model,set_max_thinking_tokensandapply_flag_settingsright behind the claim. apply_flag_settingsnow waits for a settle step tied to each request instead of a fixed sequence. Plugin-forwarding patches still use theplugin_forwarding_patch_refusedpath.- The builder for the initialize payload takes one more argument.
Why
A host can no longer claim a pre-warmed session whose settings never took effect, so a session does not start with the wrong MCP servers or plugins. Hosts should send the MCP and plugin settings before the claim, and be ready to start with query() when the claim is refused.
Names in the bundleclaim_session