When your machine runs a tool call on behalf of a cloud session, command, HTTP and MCP-tool hooks are no longer executed blindly. Each is checked for reachability first and can be held, with reasons such as model_hook, project_configured, in_reach and unreadable. A held PreToolUse hook turns the call into a permission ask; other events get a system message instead. This only applies to calls served for a cloud session, not to ordinary local hook runs.
- A PreToolUse hook that errors or is cancelled on a served call now blocks the call instead of being skipped.
- A hook returning
permissionDecision=deferon a served call is converted to a deny with an explicit message and a warning, because there is no resume path for served calls. - Every hold is counted through
tengu_remote_tool_serve_hook_held, and non-blocking events are markedheldForServedCall: true.
tengu_remote_tool_serve_hook_held, deferral is not supported for calls served to a cloud session, so nothing ran.
Strings lifted out of the shipped bundle, so the claim above can be checked against them.