{"version":"2.1.304","anchor":"queue-and-plugin-input-hold-refactor-with-a-plugin-settings","canonical_anchor":"queue-and-plugin-input-hold-refactor-with-a-plugin-settings","heading":"Plugins can intercept queued messages, and session.send checks the input hold","tier":"internal","area":"Plugins","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.304\/e\/queue-and-plugin-input-hold-refactor-with-a-plugin-settings","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.304","markdown":"### Plugins can intercept queued messages, and session.send checks the input hold\n\nHook plugins can now intercept a queued message, and a plugin's session.send is refused if Claude Code cannot read whether plugin input is held\n\n**What**\n\nMessages waiting in Claude Code's queue now go through three steps: they are accepted, a plugin may intercept them, and then they are sent. Plugins are add-ons, and hooks are code that runs at set moments. Several things changed:\n\n- A plugin can now intercept a queued message through a hook.\n\n- Plugins' input can be held, for example after a Stop or by the host's limits. If Claude Code cannot read whether that hold is in place, a plugin's `session.send` is refused.\n\n- `settings.read` answers now carry a stamp.\n\n**Why**\n\nThis changes what hook plugins can do while their input is held after a Stop. A plugin that sends messages may now be refused where before it went through.\n\n- Area: Plugins\n- Names: `session.send`\n- Tier: Under the hood\n- Useful: 3\/5\n- Signal: 4\/5\n- Scope: individual\n- Heads-up: no"}