When a plugin crashes the hooks worker, Claude Code now names the right plugin and restarts cleanly.
What's wrong with this entry?
When the process running plugin hooks crashes, Claude Code now scans every slot of the shared marker array instead of only the first to identify which plugin was responsible, unloads it, and respawns from the declared plugin set rather than whatever was live at the moment of the crash.
- Anything the crashed plugin was holding back is kept in a separate crashed-withholders record until that plugin reloads or is disabled.
- Builds and loads abandoned mid-flight are logged, and each module records a failure stage and reason, such as
engine.createorthe $ build, surfaced in the plugin UI log. - Heartbeat idleness now counts pending flushes, so a worker mid-flush is not treated as idle.
the respawn reloads the declared set
Strings lifted out of the shipped bundle, so the claim above can be checked against them.