{"version":"2.1.265","anchor":"denial-before-call-check-wraps-tool-permission-evaluation-fo","canonical_anchor":"denial-before-call-check-wraps-tool-permission-evaluation-fo","heading":"Denial-before-call check wraps tool permission evaluation for headless\/classifier flows","tier":"internal","area":"Permissions","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.265\/e\/denial-before-call-check-wraps-tool-permission-evaluation-fo","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.265","markdown":"### Denial-before-call check wraps tool permission evaluation for headless\/classifier flows\n\nNew check catches tools denied right before they would have been called, for headless and classifier flows\n\n**What**\n\nA new wrapper runs the normal permission check and then, for flows like headless mode or the auto mode classifier, checks whether a tool looks like it was \"denied before call\" against a decision that hasn't already been settled. When that's triggered, Claude Code logs \"`<tool name>` denied before call:\" as a warning, discards the previously recorded decision for that tool, and converts it into the correct denial.\n\n**Why**\n\nThis closes a gap where a tool could otherwise be called despite having effectively already been denied, making denial handling more consistent in headless and classifier-driven runs.\n\n- Area: Permissions\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 1\/5"}