forked from 1b-agent/fieldcraft-upstream
ui.select now also drives the viewport's selection: the filter, box mode, items by name and label as model.set.create takes them, a pick at a window point or the visible items in a box, changed by a mode (replace, add, remove, toggle). ui.selection reads it back with its set members and the hover; ui.dialog takes use_selection (the form's Target row). Selection stays in the window: no engine command. Documented in docs/control-protocol.md, with a test that picks the cantilever's free end by a simulated click and a box, makes sets of it and resolves them, and hostile-input tests (bad points and boxes, labels, huge lists). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm