{"name":"session.surfaces","slug":"session-surfaces","family":"setting","title":"Settings keys","noun":"settings key","description":"A new plugin hook event, session.surfaces (plural), joins the existing session.surface","description_source":"entry","described_by":{"version":"2.1.269","anchor":"new-plugin-hook-event-sessionsurfaces-plural"},"presence":{"first_seen":null,"removed_in":null,"in_current_build":false,"newest_mined":"2.1.319","builds":0,"mined_builds":159,"first_cited":{"version":"2.1.269","released_at":"2026-09-11 18:12:49","spans":2}},"aliases":[],"entries":[{"version":"2.1.269","anchor":"new-plugin-hook-event-sessionsurfaces-plural","heading":"New plugin hook event: session.surfaces (plural)","line":"A new plugin hook event, session.surfaces (plural), joins the existing session.surface","released_at":"2026-09-11 18:12:49","reason":"found in this entry's text, named in this entry"},{"version":"2.1.269","anchor":"sessionsurfaces-added-alongside-sessionsurface","heading":"session.surfaces added alongside session.surface","line":"New session.surfaces control endpoint lists all attached drawing surfaces, alongside the existing single-surface one","released_at":"2026-09-11 18:12:49","reason":"found in this entry's text, named in this entry"},{"version":"2.1.269","anchor":"new-telemetryevent-identifiers-added","heading":"New telemetry\/event identifiers added","line":"Several new internal event and telemetry names have been registered","released_at":"2026-09-11 18:12:49","reason":"found in this entry's text"},{"version":"2.1.269","anchor":"pluginhook-control-protocol-gains-sessionsurfaces-and-conf","heading":"Plugin\/hook control-protocol gains session.surfaces and config.list capabilities","line":"Plugin and hook SDK gains session.surfaces and config.list capabilities","released_at":"2026-09-11 18:12:49","reason":"found in this entry's text, named in this entry"}],"entries_total":4,"docs":[],"docs_total":0,"gates":[],"related":[{"name":"session","slug":"session","description":"A per-session workshop document gets snapshotted with your session files and is only writable in plan mode."},{"name":"session.attach","slug":"session-attach","description":"Plugin hooks can now react to tool-call dry-runs, config changes, and session attach\/detach events."},{"name":"session.authorize","slug":"session-authorize","description":"Plugins gain $.session.authorize(), which mints an auth handle for the session."},{"name":"session.compact","slug":"session-compact","description":"A new `session.compact` plugin hook can intercept and rewrite conversation compaction"},{"name":"session.detach","slug":"session-detach","description":"Plugin hooks can now react to tool-call dry-runs, config changes, and session attach\/detach events."},{"name":"session.end","slug":"session-end","description":"Two new lifecycle events, `session.end` and `session.measure`, added for plugins and hooks"},{"name":"session.measure","slug":"session-measure","description":"Two new lifecycle events, `session.end` and `session.measure`, added for plugins and hooks"},{"name":"session.receive","slug":"session-receive","description":"A new `session.compact` plugin hook can intercept and rewrite conversation compaction"},{"name":"session.root","slug":"session-root","description":"Plugin API policy list adds session.root, prompt.read, and ui.panes as permitted actions"},{"name":"session.send","slug":"session-send","description":"Plugin hooks can now listen for a new session.send event, alongside session.receive\/detach\/end"}],"url":"https:\/\/changelogs.core-directive.com\/reference\/setting\/session-surfaces","family_url":"https:\/\/changelogs.core-directive.com\/reference\/setting.json"}