Claude Code now records why a bundled plugin failed to load and stops treating that plugin as available afterward
What
Loading a bundled (builtin) plugin now goes through new helper logic that requires the plugin, checks its shape, and registers it, recording a structured failure entry (keyed by plugin name and the phase it failed at: require, shape, register, or is_available) when something goes wrong, along with a telemetry event.
The check for whether a builtin plugin is enabled now also looks at this failure record: a plugin is treated as unavailable if it previously failed to load, in addition to the existing isAvailable() check.
Why
This prevents Claude Code from repeatedly trying to use a builtin plugin that already failed to load, and gives clearer, phase-specific information about why a given plugin isn't working.