{"version":"2.1.290","anchor":"cloud-handoff-hooks-that-cloud-session-could-change-are-wit","canonical_anchor":"cloud-hook-staging-error-message-reworded","heading":"Cloud sessions withhold hooks they could change, ask consent earlier and reword hook warnings","tier":"notice","area":"Cloud Sessions","scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.290\/e\/cloud-handoff-hooks-that-cloud-session-could-change-are-wit","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.290","markdown":"### Cloud sessions withhold hooks they could change, ask consent earlier and reword hook warnings\n\nWith `claude --cloud`, hooks from files the cloud session can change are withheld with a notice, and hook warnings and errors are reworded\n\n**Unclear.** Whether this applies to cloud sessions started other than with `--cloud` is not clear.\n\n**What**\n\nA hook is a command of yours that Claude Code runs at a set moment, for example before Claude runs a command. When you start a cloud session with `claude --cloud`, Claude Code decides which of your local hooks the session may use.\n\n- Hooks from files that the cloud session itself could change are now withheld. A notice per source says, for example, \"Hooks from ... are not offered to the cloud session\" because \"the cloud session may change that file\". Before, withheld hooks were not listed per source.\n\n- Claude Code now asks for your consent before it records which hooks are in use. If you decline, it stops there and shows no hook notices.\n\n- If hooks change in your local settings file, which the cloud session can write, the warning is shorter: \"Hooks changed in ..., which the cloud session can write.\" It goes on to say \"The change is ignored for this session. Check the file, then restart claude --cloud.\"\n\n- Warnings for other sources no longer include the sentence about the session keeping the hooks it had when you launched.\n\n- When a hook cannot be stored safely, the error now says Claude Code \"couldn't save a private copy of it\" instead of a \"verified copy\". The fix is unchanged: set `CLAUDE_CODE_TMPDIR` to a folder the session cannot write to.\n\nReporting worktree state during a cloud handoff stays behind the `tengu_ccr_handoff_metadata` switch. The flag server returned on for this site's account and for the anonymous baseline, but no reading has been taken under this release.\n\n**Why**\n\nThis changes which local hooks run in a cloud session. A hook stored in a file the cloud session could edit is not used there, so the session cannot rewrite the checks meant to limit it. If a hook you expected is missing, the notices tell you which source was withheld.\n\n- Flag `tengu_ccr_handoff_metadata`: Off by default, switched on for this account (read for one account on one subscription tier against v2.1.290; this account: on, anonymous baseline: on, compiled default: off) These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.\n- Area: Cloud Sessions\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 2\/5\n- Scope: individual\n- Heads-up: yes"}