Hooks for tool calls served to a cloud session can be held instead of run, turning the call into an ask.
What's wrong with this entry?
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.
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