New warnings catch malformed plugin hook matchers and hook re-entry
Claude Code now detects when a plugin's hook matcher (the on() condition that decides when a hook runs) is structurally wrong, such as using an object matcher against a value that can only be a scalar, and logs a one-time warning per file path explaining the mismatch, capped at 32 warnings per module and event to avoid log spam.
It also now logs when a hooks module's own hook is skipped, or has some of its registrations left out, because that module is already being dispatched (re-entry protection), naming the chain of nested hook calls that led there.
These diagnostics help plugin authors notice when a hook matcher is written incorrectly and will never fire, and understand why a hook was skipped due to re-entry, instead of the failure passing silently.