Follow Discord
Sweep 27 Oct 2026 · 19:04Z Build v2.1.312 531 read Stable v2.1.308 Latest v2.1.312 Next v2.1.312 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.311 ·

Plugin hooks modules can load sealed from organization-provided texts, with a reworked load check

Plugin hooks modules can now load from organization-provided texts instead of disk, and the check deciding whether a hooks module may load moved into one helper

Group of 2 Under the hood Internal Changes
JSON All of v2.1.311
Under the hoodTier: how much it should matter to you
3Useful: my rating, 1 to 5
4Signal: worth watching, 1 to 5
PluginsArea: what it touches
Internal ChangesKind: in v2.1.311,
What probably matters to youSection of the release

Unclear How an organization supplies the code, and so when the sealed loading is used, is not established.

What

A plugin is an add-on package for Claude Code. A hooks module is the code a plugin runs at set points in a session. How Claude Code decides whether a hooks module may load has changed:

  • Sealed loading: plugin loading can now take a set of module texts and read from it instead of from disk. Modules loaded this way are marked sealed: !0.
  • Surface modules: a sealed module may not name surface modules. If it does, loading fails with the error it names surface modules.
  • Restriction message: a new message ties this to CLAUDE_CODE_RESTRICT_PERSONAL_CONFIG, using the wording 'not the organization's plugin'.
  • One load check: the decision whether a hooks module may load now lives in one helper that considers where the plugin came from and whether it is held or managed. Before, the check was written inline with the message 'it carries your claude.ai uploads, and this session doesn't let them run in-process hooks (CLAUDE_CODE_RESTRICT_PERSONAL_CONFIG)', which is no longer built there.
  • Settings changes: when settings change, Claude Code now counts the updates still in progress, in settingsChangesUnfinished, while the parts that react to them run.

Why

This prepares for hook plugins managed by an organization, which can be loaded from texts the organization supplies rather than from files on your machine. With CLAUDE_CODE_RESTRICT_PERSONAL_CONFIG set, the message you see when a hooks module is refused may read differently.

How sure we are
Something disagreesSomething we can check disagrees with this entry, or the writer said they could not settle it.
The writer flagged doubtHow an organization supplies the code, and so when the sealed loading is used, is not established.

See this entry in the whole of v2.1.311 →

Feedback