{"version":"2.1.311","anchor":"plugin-hooks-registration-carries-ownhookssha256-plugin-ui","canonical_anchor":"plugin-hooks-registration-carries-ownhookssha256-plugin-ui","heading":"Plugins gain a screen-refresh call and a fingerprint for their own hooks","tier":"notice","area":"Plugins","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/plugin-hooks-registration-carries-ownhookssha256-plugin-ui","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311","markdown":"### Plugins gain a screen-refresh call and a fingerprint for their own hooks\n\nThe plugin runtime now accepts ui.invalidate, hook registration can carry a fingerprint of the plugin's hooks, and a form error reads differently\n\n**Unclear.** It is not clear whether plugins can now call ui.invalidate or whether it is only accepted as a name in a list.\n\n**What**\n\nA plugin is an add-on that extends Claude Code. A hook is code that runs when a particular event happens. Three things changed in how plugins work:\n\n- `ui.invalidate`: this is now on the list of calls the plugin runtime allows.\n\n- hook registration: when a plugin registers its hooks, it can now include an optional fingerprint of its own hooks file.\n\n- form errors: when a prompt box is left unanswered, the error now reads \"the box is not answered\".\n\n**Why**\n\nThese changes extend what plugins can do with hooks and with Claude Code's screen.\n\n- Area: Plugins\n- Tier: You'll notice\n- Useful: 4\/5\n- Signal: 3\/5\n- Scope: individual\n- Heads-up: no"}