Follow Discord
Sweep 22 Sep 2026 · 17:19Z Build v2.1.280 501 read Stable v2.1.267 Latest v2.1.280 Next v2.1.280 Feeds RSS JSON llms.txt Unofficial
Claude Code v2.1.277 ·

Plugin hook dispatch deep-copies input for a fixed set of UI/registration events

Plugin hooks now receive a deep copy of the event payload for UI and registration events, not the original

TierUnder the hoodhow much it should matter to you
Useful2my rating, 1 to 5
Signal2worth watching, 1 to 5
AreaPlugin Hookswhat it touches
KindInternal Changesin v2.1.277,
Under the hood

Plugin hooks now receive a deep copy of the event payload for UI and registration events, not the original

What

For a fixed list of plugin events, ui.open, ui.toast, ui.status, ui.log, ui.notice, ui.ask, tool.register, command.register, agent.register, prompt.fill, and prompt.suggest, Claude Code now passes hooks a deep copy of the event's data instead of the original object, before any hook has a chance to see or change it.

Why

This stops a plugin hook from being able to mutate the original event data that Claude Code itself still relies on, isolating hook side effects to their own copy for these UI and registration events.

See this entry in the whole of v2.1.277 →

Feedback