Source Intelligence

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

All of v2.1.247 Home All releases olderv2.1.246 v2.1.248newer
Claude Code v2.1.247

Clickable buttons in plugin UI, built end to end but dark in this build

Not switched on
Useful3 Signal4
Plugins Notable not in their notes

Plugin buttons work end to end in terminal and desktop, but plugin hook modules are switched off.

Button elements and ui.press are complete across terminal and desktop but need tengu_plugin_hooks_modules, compiled false.

ui.presstengu_plugin_hooks_modules
What

Plugins can define a Button element with a key, label and press handler, and pressing it fires a new ui.press event back to the plugin. The terminal renders it as a focusable [ label ] row reporting surface: "terminal", and the desktop app registers the press with surface: "desktop". None of it is reachable: it needs plugin hook modules to be loaded, which is gated by tengu_plugin_hooks_modules, and the value compiled into this build is false.

Details
  • The host stamps each drawn button with a plugin and handle address, keeps the press handlers alive, and releases them when a re-render drops the button.
  • ui.press is registrable like other plugin events, and the rules table rejects a press answer that names another plugin's button, changes the surface, component or request id, or omits the element.
  • When the gate is off the loader logs hooks modules not loaded: rollout flag (...) and skips registration, so absent a server value nothing appears.
  • In 2.1.246 the string ui.press did not occur and the JSX tag list had no Button.
Evidence

'JSX element <' + type + '> is not one of Box, Text, Button, div, '

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

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

See this entry in the whole of v2.1.247 →