What probably matters to youSection of the release
What
A plugin's hooks.json configuration file can now include an optional surface field, naming a module (a code file separate from the main hooks module) whose job is to render the hooks module's Client UI elements onto a display surface. This field requires the modules field to also be present, and its format is checked by a new validation rule: it must be a path relative to the hooks.json file and cannot start with $.
Why
This gives plugin authors a way to separate the code that renders UI elements from the main hooks logic, which is useful for plugins that need to show their own interface elements.
The entry above is what we published on the day. These lines were added later, as Anthropic's own pages caught up, and they sit beside the original rather than replacing it.
Added sinceA small documentation edit on TypeScript SDK V2 session API (removed) touched a line naming surface after this was published.V2 was an experimental session API that removed the need for async generators and yield coordination. Instead of managing generator state across turns, each turn was a separate `send()`/`stream()` cycle. The API surface reduced to creating…agent-sdk/typescript-v2-previewsee the edit
Confirmed sinceAnthropic's documentation has since written up surface, on List Events.When set, this event was cross-posted from a subagent's thread to surface its custom tool use on the primary thread's stream. Empty on the thread's own events. Echo this on a `user.custom_tool_result` event to route the result back.api/beta/sessions/events/listsee the edit
How sure we are
One source agreesOne thing we can check says the same as this entry.
Anthropic's documentation agreesAnthropic's documentation has since written up surface, on List Events.