Skip to content

Steering message in preToolUse "ask" denial is silently dropped #4237

Description

@sfuqua

Describe the bug

When preToolUse returns permissionDecision: 'ask'. the CLI shows a specialized permission prompt for the tool that includes any rationale the hook returned, along with a confirm/deny prompt.

The deny prompt allows custom text, similar to the standard permissionRequest prompt.

However, this custom text does not make it back to the session, so no steering is possible.

Image Image

Affected version

1.0.74-4

Steps to reproduce the behavior

  1. Scaffold a basic project with .github\hooks and one file:

.github\hooks\pre-tool-use-demo.json

{
  "version": 1,
  "hooks": {
    "preToolUse": [
      {
        "type": "command",
        "powershell": "'{\"permissionDecision\":\"ask\",\"permissionDecisionReason\":\"preToolUse Demo: Allow the agent to use a tool?\"}'",
        "cwd": ".",
        "timeoutSec": 10
      }
    ]
  }
}
  1. Invoke copilot inside of the scaffolded "project".
  2. Ask the session to use any tool, e.g.
Please use your `view` tool to read `.github/hooks/pre-tool-use-demo.json`
  1. Deny the prompt with a steering message, such as "Please confirm you see this response"
  2. Observe that the custom steering message is not passed to the agent

Expected behavior

The steering message should be passed to the agent, allowing correcting behavior via HITL.

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:permissionsTool approval, security boundaries, sandbox mode, and directory restrictions

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions