Follow Discord
Sweep 06 Nov 2026 · 01:32Z Build v2.1.319 537 read Stable v2.1.311 Latest v2.1.318 Next v2.1.319 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.269 ·

New session.surfaces plugin/hook endpoint added alongside session.surface

Plugins and hooks gain a session.surfaces (plural) endpoint listing all attached drawing surfaces, plus a matching lifecycle hook event

Group of 3 Nothing to try yet Notable No documentation found New Features
JSON All of v2.1.269
Nothing to try yetTier: how much it should matter to you
3Useful: my rating, 1 to 5
3Signal: worth watching, 1 to 5
Plugin HooksArea: what it touches
New FeaturesKind: in v2.1.269,
What probably matters to youSection of the release

Unclear What session.surfaces does differently from the existing session.surface event is not specified.

What

  • A new plugin lifecycle hook event, session.surfaces (plural), was added alongside the existing session.surface, running a different handler against the plugin.
  • 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.
  • 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).

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.

Read from
Names in the bundlesession.surfaces
How sure we are
Something disagreesSomething we can check disagrees with this entry, or the writer said they could not settle it.
The writer flagged doubtWhat session.surfaces does differently from the existing session.surface event is not specified.

See this entry in the whole of v2.1.269 →

Feedback