Hook entries accept a cloud setting deciding whether a cloud session may run them.
cloud: "device" and cloud: "skip" parse today but belong to the device-hooks subsystem that is off.
What's wrong with this entry?
Hook entries in settings can carry cloud: "device" or cloud: "skip". A hook whose script lives somewhere the cloud session can write, such as the checkout or a synced directory, is withheld unless the entry is explicitly marked cloud: "device"; cloud: "skip" keeps it local. Part of the device-hooks subsystem that is switched off in this build.
- A
cloud: "device"mark is ignored when it comes from.claude/settings.local.jsoninside the checkout. - Forwarded scripts are pinned by SHA-256 and re-checked before every run; a script that changed, moved or has multiple hard links is refused with a stated reason.
- Limits: 128 forwarded hook entries, a 180 second registration lease, and roughly 1 MiB of hook input before a PreToolUse call is denied.
is marked cloud: "skip" (or a value this version does not recognise) and stays on this machine.
Strings lifted out of the shipped bundle, so the claim above can be checked against them.
Related
Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.
-
v2.1.234
SessionEnd hooks lose the
bypass_permissions_disabledreasonBoth mention hook
-
v2.1.236
Hooks and Ctrl-C go quiet once shutdown has started
Both mention hook
-
v2.1.236
Shutdown seals transcript writes and gives SessionEnd hooks more time
Both mention hook