{"version":"2.1.269","anchor":"new-plugin-hook-event-sessionsurfaces-plural","canonical_anchor":"new-plugin-hook-event-sessionsurfaces-plural","heading":"New session.surfaces plugin\/hook endpoint added alongside session.surface","tier":"soon","area":"Plugin Hooks","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.269\/e\/new-plugin-hook-event-sessionsurfaces-plural","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.269","markdown":"### New session.surfaces plugin\/hook endpoint added alongside session.surface\n\nPlugins and hooks gain a session.surfaces (plural) endpoint listing all attached drawing surfaces, plus a matching lifecycle hook event\n\n**Unclear.** What session.surfaces does differently from the existing session.surface event is not specified.\n\n**What**\n\n- A new plugin lifecycle hook event, `session.surfaces` (plural), was added alongside the existing `session.surface`, running a different handler against the plugin.\n\n- A new `$.session.surfaces` control endpoint was added, returning the list of all attached drawing surfaces (terminal first, if bound); the existing `session.surface` endpoint now derives its answer from the same shared helper.\n\n- The allow-listed set of capability names available to the plugin\/hook SDK grew to include `session.surfaces` (alongside the existing `session.surface`) and `config.list` (alongside existing capabilities like `tool.register`\/`command.list`).\n\n**Why** Previously plugins\/hooks could only ask about a single bound surface; `session.surfaces` lets them see everything a session has attached, which matters for plugins that need to target or coordinate across multiple surfaces.\n\n- Area: Plugin Hooks\n- Names: `session.surfaces`\n- Tier: Nothing to try yet\n- Useful: 3\/5\n- Signal: 3\/5"}