{"name":"ui.selection","slug":"ui-selection","family":"setting","title":"Settings keys","noun":"settings key","description":"Plugins gain a `ui.selection` operation, web requests now carry a plugin storage id, and signed-in requests get an extra check before sending","description_source":"entry","described_by":{"version":"2.1.288","anchor":"plugin-runtime-uiselection-op-httpfetch-refactor-plugin"},"presence":{"first_seen":null,"removed_in":null,"in_current_build":false,"newest_mined":"2.1.288","builds":0,"mined_builds":131,"first_cited":null},"aliases":[],"entries":[{"version":"2.1.288","anchor":"plugin-runtime-uiselection-op-httpfetch-refactor-plugin","heading":"Plugins get a ui.selection operation and stricter checks on signed-in web requests","line":"Plugins gain a `ui.selection` operation, web requests now carry a plugin storage id, and signed-in requests get an extra check before sending","released_at":"2026-10-02 18:30:40","reason":"found in this entry's text"},{"version":"2.1.288","anchor":"plugin-audioplay-from-a-url-requires-a-plugin-id","heading":"Plugins must have an id to play audio from a web address","line":"A plugin playing audio from a URL now gets an error if it has no plugin id, and the plugin API lists a new `ui.selection` capability","released_at":"2026-10-02 18:30:40","reason":"found in this entry's text, named in this entry"}],"entries_total":2,"docs":[{"source":"claude-code","path":"changelog","title":"Claude Code changelog","documented":false}],"docs_total":1,"gates":[],"related":[{"name":"ui.blit","slug":"ui-blit","description":"Plugins can now request keyboard focus and control scrolling in UI regions they drew"},{"name":"ui.close","slug":"ui-close","description":"Plugins can now list, register, and run slash commands, and open or close a UI surface"},{"name":"ui.copy","slug":"ui-copy","description":"New ui.copy capability added to the permission list plugins and hooks can request"},{"name":"ui.focus","slug":"ui-focus","description":"Plugins can now request keyboard focus and control scrolling in UI regions they drew"},{"name":"ui.input","slug":"ui-input","description":"Plugins gain validated Input, Select, and Link UI components."},{"name":"ui.invalidate","slug":"ui-invalidate","description":"Plugins can now invalidate prompt.context specifically through ui.invalidate, alongside ui.render and prompt.section."},{"name":"ui.log","slug":"ui-log","description":"Plugins can install code that intercepts tool calls and repaints parts of the terminal interface."},{"name":"ui.message","slug":"ui-message","description":"Plugins can now draw their own interactive UI elements ('Clients') directly in the terminal"},{"name":"ui.mount","slug":"ui-mount","description":"Plugin test engine used by `claude plugin test` gains a UI-render test harness with mount\/act\/release methods"},{"name":"ui.open","slug":"ui-open","description":"Plugins can now list, register, and run slash commands, and open or close a UI surface"}],"url":"https:\/\/changelogs.core-directive.com\/reference\/setting\/ui-selection","family_url":"https:\/\/changelogs.core-directive.com\/reference\/setting.json"}