Group of 2 Under the hood
A new admission-control pipeline lets already-loaded plugins refuse to admit or hot-reload another plugin
What
Claude Code now runs plugin loading and reloading through an admission-control pipeline before a plugin takes effect:
- Reloading a hooks module now computes where the reloaded plugin would be inserted among already-loaded plugins, and runs it past judges (checking its before/after neighbors, whether it's native, and its tier) that can refuse the reload. If refused, the currently running version stays loaded instead of being silently swapped out.
- A new pipeline runs a
plugin.registerhook event past other already-admitted plugins (acting as 'judges') before each plugin is admitted into a build. A plugin can be refused with a reason, which is logged as eitherrefused at plugin.register: ...orrefused by <plugin>: ....
Why
This gives already-loaded plugins a say in whether a new or reloaded plugin is allowed to take effect, and it surfaces a clear log message when a plugin is refused instead of failing silently or swapping in an incompatible version.