Unclear Exactly when one module pushes out another is not clear.
What
Plugins can supply hooks modules, code that runs when certain events happen in Claude Code, inside a separate background process called the hooks worker. How failures there are handled changed:
- Build retries: when the modules are built, Claude Code now tracks which modules were pushed out by another and which failed. It retries without the pushed-out one and records why each unloaded module failed. Before, the first failed hook unloaded its module and the build was repeated.
- Worker crashes: if the hooks worker dies while a hook is running, the plugin now stays loaded and the worker is replaced, so the hook's
.catchcan still run. Before, the plugin was unloaded with "was unloaded: it crashed the hooks worker". - New errors for plugin authors: user-tier plugins that never call
engine.create, or that withhold or replace another plugin's$.names, now throw errors. __proto__warning: a plugin that copies$by assignment loses__proto__, and a warning now says so.
Why
One misbehaving plugin is less likely to take others down with it, and a crash no longer unloads the plugin outright. Plugin authors may see new errors if their plugin does not call engine.create or interferes with another plugin's names.
Something disagreesSomething we can check disagrees with this entry, or the writer said they could not settle it.
The writer flagged doubt
Exactly when one module pushes out another is not clear.