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 an organization supplies the code, and so when the sealed loading is used, is not established.