{"version":"2.1.277","anchor":"plugin-component-events-generalized-beyond-terminal-via-a-ne","canonical_anchor":"plugin-component-events-generalized-beyond-terminal-via-a-ne","heading":"Plugin component events generalized beyond terminal via a new 'surface' field","tier":"internal","area":"Plugin UI","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.277\/e\/plugin-component-events-generalized-beyond-terminal-via-a-ne","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.277","markdown":"### Plugin component events generalized beyond terminal via a new 'surface' field\n\nPlugin UI component events can now report a surface other than 'terminal'\n\n**What**\n\nWhen Claude Code builds an event for a plugin's UI component, it used to always mark the event's `surface` as `\"terminal\"`. It now takes the surface value from whoever triggered the event instead, and the request format was updated to accept an optional `surface` field with its own validation.\n\n**Why**\n\nThis allows plugin component events to be correctly labeled when they happen somewhere other than the terminal, which matters as Claude Code runs in more surfaces beyond the terminal.\n\n- Area: Plugin UI\n- Names: `surface`\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 2\/5"}