Follow Discord
Sweep 22 Oct 2026 · 21:04Z Build v2.1.309 528 read Stable v2.1.308 Latest v2.1.308 Next v2.1.309 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.247 ·

Plugin-rendered dialogs gain buttons and choose their own placement

Plugin dialogs can now show buttons and appear as modals, pinned at the bottom, or inline.

You'll notice New Features
JSON All of v2.1.247
You'll noticeTier: how much it should matter to you
3Useful: my rating, 1 to 5
3Signal: worth watching, 1 to 5
PluginsArea: what it touches
New FeaturesKind: in v2.1.247,
New FeaturesSection of the release
What

Dialogs that a plugin asks Claude Code to draw can now include Button elements, and each request kind decides where it appears: as a modal, pinned to the bottom, or inline in the transcript.

Details
  • The validator that checks a plugin's dialog description has a dedicated Button branch with its own prop check, and button text counts against the same total-text ceiling as the rest of the tree.
  • Placement comes from a lookup per request kind returning "modal", "bottom" or "inline"; requests carrying an immediate payload flag are pushed to the bottom.
  • A separate map decides whether a given request hides the normal input prompt while it is up.
  • These dialogs only render inside the new registry provider; outside it, rendering fails with an explicit error rather than drawing nothing.
Evidence

A local_jsx dialog cannot render outside of a LocalJsxRegistryContext provider

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

See this entry in the whole of v2.1.247 →

Feedback