{"version":"2.1.239","anchor":"device-hook-forwarding-worker-added-off-behind-two-flags-and","canonical_anchor":"device-hook-forwarding-worker-added-off-behind-two-flags-and","heading":"Device hook forwarding worker added, off behind two flags and a kill switch","tier":"soon","area":"Hooks","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.239\/e\/device-hook-forwarding-worker-added-off-behind-two-flags-and","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.239","markdown":"### Device hook forwarding worker added, off behind two flags and a kill switch\n\nCloud sessions could register hooks that run on your device, blocked by two off flags.\n\n**What**\n\nThe previous build had only the message shape for registering device hooks; this one adds the working half, letting a cloud session register hooks that run on your device. Nothing forwards in practice: it requires two account flags that both default to off, and setting `CLAUDE_CODE_DISABLE_HOOK_FORWARDING` refuses it outright.\n\n**Details**\n\n- The SDK control loop now routes the `register_device_hooks` request to a worker holding a hook registry, lease handling and an admission check.\n- Admission requires an SDK URL, `CLAUDE_CODE_REMOTE_SESSION_ID` set, `CLAUDE_CODE_ENVIRONMENT_KIND` unset, an allowlisted entrypoint, non-hermetic mode, and the kill switch unset; otherwise the request is refused with a reason string.\n- Even when admitted the worker reads `tengu_violin_amati` and `tengu_violin_wood` and clears the registry unless both are on; both fall back to false on error.\n- Managed settings that restrict hooks to plugins, disable customization, allow managed hooks only, or disable all hooks also refuse it.\n\n**Evidence**\n\n`hook_forwarding_disabled: flag_off`\n\n- Flag `tengu_violin_amati`: Off in both readings (read for one account on one subscription tier against v2.1.239; this account: off, anonymous baseline: off, compiled default: off)\n- Flag `tengu_violin_wood`: Off in both readings (read for one account on one subscription tier against v2.1.239; this account: off, anonymous baseline: off, compiled default: off)\n- Area: Hooks\n- Names: `CLAUDE_CODE_DISABLE_HOOK_FORWARDING`\n- Tier: Nothing to try yet\n- Useful: 2\/5\n- Signal: 5\/5\n- Present in the build but not switched on"}