claude-code - 💡(How to fix) Fix [FEATURE] Add PermissionResolved hook event

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
RAW_BUFFERClick to expand / collapse

Preflight Checklist

  • I have searched existing requests and this feature hasn't been requested yet
  • This is a single feature request (not multiple features)

Problem Statement

When a tool requires user permission, the hook system currently fires:

  1. PreToolUse — before permission check
  2. PermissionRequest — when the dialog opens
  3. (nothing) — user clicks Allow/Deny ← gap
  4. PostToolUse / PostToolUseFailure — after tool completes/fails

Between step 2 and 4, NO hook event fires. This means tools like claude-eyes (https://github.com/wzp0514/claude-eyes) cannot detect when the user resolves a permission dialog. The status indicator stays "waiting" (yellow) for the entire tool execution duration, even though the user already approved.

Data evidence

From real hook logs (session 20dc3716, timestamps UTC):

03:51:39 | PreToolUse | Read ← green 03:51:44 | PermissionRequest| Read ← yellow (dialog opens) ← user clicks Allow, NO event fires 03:54:25 | PostToolUse | Read ← green (2 min 41 sec later!)

When the tool takes 2+ minutes to execute, the indicator shows "waiting for user" the entire time — misleading.

Proposed Solution

Add a new hook event PermissionResolved that fires immediately when the user clicks Allow or Deny, with an action field:

{ "hook_event_name": "PermissionResolved", "session_id": "...", "tool_name": "Bash", "tool_input": { "command": "git push", ... }, "action": "granted" }

action values: "granted" | "denied" | "always_allow"

This would fire between the current PermissionRequest and PostToolUse/PostToolUseFailure, closing the gap.

Alternative Solutions

No response

Priority

Medium - Would be very helpful

Feature Category

CLI commands and flags

Use Case Example

Real-time status indicators (claude-eyes, custom panels, CI dashboards) could accurately reflect permission state:

  • Yellow → permission requested
  • Green → permission granted (immediately)
  • Red → permission denied

Additional Context

No response

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix [FEATURE] Add PermissionResolved hook event