Unclear The events whose plugin hooks are skipped are not named.
What
Hooks are small pieces of code a plugin runs at set points while Claude Code works. The engine that runs them changed in several ways.
turn.startnow counts, together withturn.stepandturn.complete, when Claude Code decides whether any hooks are active. A try/catch that called an error handler was removed in the same area.- A new status explains that, where an organization manages Claude Code, a plugin's hooks on certain events do not run: "these events pass over the plugins you install". Only the organization's own plugins run hooks on those events.
- A new
tool.registerhook event is added. - A plugin with a module path (
modulePath) now counts as having hooks in the reports sent when a plugin loads or is enabled. Before, onlyhooksConfigcounted. - The engine gains
restoreArgumentforprompt.submitandskill.prompt. - A check on frontmatter data, the settings block at the top of a skill file, rejects prototype keys, proxies, cycles and accessors.
skill.promptnow also receives the skill's frontmatter as written in the file, afrontmatterProblemfield, and the skill's source, plugin name and path. Before, it received only{ skill, text }. If the frontmatter cannot be copied, it gets{}and a warning is logged.- Separately, several functions that write session files return early in what looks like a diskless session mode. One throws "A diskless session writes no side file to disk".
Why
Plugin authors can react to the start of a turn and read or rewrite a skill's frontmatter. People on managed installs get a reason when their own plugins' hooks do not run.
Something disagreesSomething we can check disagrees with this entry, or the writer said they could not settle it.
The writer flagged doubt
The events whose plugin hooks are skipped are not named.