Follow Discord
Sweep 09 Oct 2026 · 17:27Z Build v2.1.296 517 read Stable v2.1.287 Latest v2.1.296 Next v2.1.296 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.296 ·

Hooks are now tracked by source, and matcher errors no longer crash matching

Hooks are labelled personal or checkout by source, checkout hooks cannot silently replace settings hooks, and a failing matcher stops its hook running

Group of 2 You'll notice Improvements
JSON All of v2.1.296
You'll noticeTier: how much it should matter to you
2Useful: my rating, 1 to 5
2Signal: worth watching, 1 to 5
HooksArea: what it touches
ImprovementsKind: in v2.1.296,
ImprovementsSection of the release

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 personal for one source and checkout for another. Before, only one case was distinguished.
  • Session hooks gain a checkout flag, 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.

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 doubtWhat the personal and checkout labels change about how those hooks run is not shown.

See this entry in the whole of v2.1.296 →

Feedback