Unclear What the personal and checkout labels change about how those hooks run is not shown.
What
Hooks are commands Claude Code runs at set points, and they can come from your own settings or from the project you have checked out. Claude Code now keeps these apart:
- When hooks are registered, they are labelled
personalfor one source andcheckoutfor another. Before, only one case was distinguished. - Session hooks gain a
checkoutflag, and removing duplicate hooks now tracks which came from settings and which from the checkout. - A command hook result that blocks no longer lets a settings hook be silently replaced by a checkout hook.
- If a hook's matcher (the rule deciding which events it applies to) throws an error, the error is caught and the hook is recorded as not tested instead of the error spreading.
- A hook that could not be tested is not run. The result records that it did not run and reports a blocking error or the message.
Why
Hooks shipped with a repository can no longer quietly take the place of hooks from your own settings, and a broken matcher now fails visibly instead of silently.
Something disagreesSomething we can check disagrees with this entry, or the writer said they could not settle it.
The writer flagged doubt
What the personal and checkout labels change about how those hooks run is not shown.