Plugin dialogs can now show buttons and appear as modals, pinned at the bottom, or inline.
What's wrong with this entry?
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.
- The validator that checks a plugin's dialog description has a dedicated
Buttonbranch 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 animmediatepayload 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.
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.