Plugin manifests are now checked to confirm their UI hooks actually match surfaces where the component appears
Claude Code now validates a plugin's manifest-declared hooks (for example, a ToolProgress hook) against a fixed table of which surfaces, such as the terminal or the desktop app, each UI component actually renders on. If a plugin registers a hook for a surface that component never appears on, or misspells a component or surface name, validation now reports a specific message, such as "no component is named X" or that a component "is raised on the terminal surface only" when the hook names desktop instead.
This catches plugin manifest mistakes early, so a plugin author finds out a hook is misconfigured or targeting the wrong surface at validation time rather than discovering it silently does nothing at runtime.