{"version":"2.1.299","anchor":"remote-hook-refusals-and-vs-code-ran-ahead-frame","canonical_anchor":"remote-hook-refusals-and-vs-code-ran-ahead-frame","heading":"Remote hook refusals and early-run commands are reported more precisely","tier":"notice","area":"Hooks","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/remote-hook-refusals-and-vs-code-ran-ahead-frame","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299","markdown":"### Remote hook refusals and early-run commands are reported more precisely\n\nHook errors that block an action on a remote runner now say the runner refused, and the VS Code panel can learn when a command's hooks already ran\n\n**What**\n\nHooks are scripts or plugin code that run at set moments and can block an action. When a hook on a remote runner (a machine running Claude Code on your behalf) blocks an action, the error now says the remote runner refused it.\n\nThe messages sent to the VS Code panel can also carry a new internal marker on a repeated \"queued\" notice. It means that the plugin hooks for an `immediate` command you typed during a turn have already run.\n\n**Why**\n\nRemote and VS Code clients get a more precise account of what hooks did, instead of a generic error or a plain queued notice.\n\n- Area: Hooks\n- Tier: You'll notice\n- Useful: 1\/5\n- Signal: 2\/5\n- Scope: individual\n- Heads-up: no"}