Unclear It is not clear whether other checks still stop hooks from approving calls meant for a person only.
What
A hook is a script you configure to run at certain points. A PermissionRequest hook runs when a tool call (an action Claude wants to take) needs a permission decision. This release changes two cases:
- Hook allow without a person: Claude Code used to ignore a hook's allow when no prompt could be shown, with the message "only a person can approve this call, and no prompt can be shown here". That check and message are gone. A hook's allow is now honoured in headless runs, meaning runs with no one at a screen.
- Hook-rewritten calls: if a hook changes a call and Claude Code cannot build a permission prompt for the changed call, the call is now denied and marked as invalid input. The message says the call was not run and tells Claude to tell you. Before, Claude Code cancelled and stopped with a "Failed to preview the hook-rewritten file operation" error.
Why
In headless setups, your hook's allow now takes effect, so hooks can approve calls that used to need a person. Check what your PermissionRequest hooks allow. When a rewritten call cannot be shown for approval, Claude gets a clear explanation instead of the run being stopped.
It is not clear whether other checks still stop hooks from approving calls meant for a person only.