{"version":"2.1.268","anchor":"askapproval-state-now-tracks-who-approved-it","canonical_anchor":"permission-decisions-now-record-how-they-were-decided-deci","heading":"Permission approvals now record who decided","tier":"internal","area":"Permissions","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.268\/e\/askapproval-state-now-tracks-who-approved-it","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.268","markdown":"### Permission approvals now record who decided\n\nClaude Code now tracks and stores whether a tool-call approval came from a hook, the host app, or a normal user prompt\n\n**What**\n\nWhen Claude Code approves a tool call, it now records how that approval happened. A new `decidedBy` value marks the decision as `hook` (an automated hook approved it), `host_prompt` (the surrounding application's permission prompt approved it), or `prompt` (the normal in-session approval prompt was used). This is captured through a new `recordApprovedBy` call, and the internal approval-tracking state gained a matching `approvedBy` field alongside its existing tracking of who the approval request was addressed to and whether it was settled.\n\n**Why**\n\nThis gives Claude Code (and its telemetry) visibility into which mechanism actually granted permission for an action, which is useful for auditing and debugging approval flows, especially in setups that mix hooks, host-app prompts, and manual approval.\n\n- Area: Permissions\n- Names: `recordApprovedBy`\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 2\/5"}