Follow Discord
Sweep 10 Nov 2026 · 02:18Z Build v2.1.322 539 read Stable v2.1.311 Latest v2.1.322 Next v2.1.322 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.269 ·

Plugin admission state now enforced for cross-plugin calls and hook loading

Claude Code now checks whether a plugin has actually been admitted (not just loaded) before letting it make cross-plugin calls or keeping its hooks registered

Group of 3 Under the hood Bug Fixes
JSON All of v2.1.269
Under the hoodTier: how much it should matter to you
1Useful: my rating, 1 to 5
2Signal: worth watching, 1 to 5
PluginsArea: what it touches
Bug FixesKind: in v2.1.269,
Bug FixesSection of the release

What

  • Cross-plugin calls (using the $.<name>.<method> syntax one plugin uses to call into another) now check whether the target plugin's environment has actually been admitted, and reject with a clear error if it hasn't — previously this only checked whether the plugin was loaded at all.
  • The code that loads a plugin's hook modules was reworked from a single pass into a loop that admits or refuses each module. If a module that already ran its engine.create hook later turns out to be refused, the whole set of already-admitted modules is discarded and reloading is retried without it, with a log message noting this happened. The loop repeats until no plugin still needs to be recreated.

Why

These changes make sure a plugin can't act (call other plugins, or keep hooks registered) unless it has genuinely passed admission, closing a gap where a loaded-but-not-admitted plugin could previously be treated as usable.

See this entry in the whole of v2.1.269 →

Feedback