What
When a tool fails and you are not in verbose mode, Claude Code normally shows a short generic error. A tool is an action Claude can take, such as writing a file. Now, when the failure is because a permission rule (one of your allow or deny settings) refused it, the real message is shown instead. The tool result now passes toolDenialKind to the display, and the short form is skipped when it is permission-rule.
- LSP tool: no longer collapses to "LSP operation failed".
- Write: no longer collapses to "Error writing file".
- Read: skips the short "File not found" and "Error reading file" text.
- Notebook edit: no longer collapses to "Error editing notebook".
Why
If a deny rule blocks one of these tools, you now see why instead of a generic error, which makes it easier to tell a blocked action from a real failure.