mirror of
https://github.com/storytold/figcraft.git
synced 2026-10-30 13:26:54 -06:00
`ui.input` over `window.figcraft` (the page's control channel, `?control`) never did anything in the browser: the batch was queued for the next frame as on the desktop, but the browser shell has no `raw_input_hook`, the eframe callback that hands a queued batch to the frame about to draw (`windows::take_input`). The events stayed in their queue and the request's promise never settled, so an agent driving the page could run commands and take screenshots but not point, click or type. The browser shell now has the hook the desktop app has: the batch goes into the frame's raw input, is applied by it and is acknowledged once the frame is presented, as on the desktop. Checked in Chrome on the release web build: `ui.input` with a key (O, R, F: the ellipse, rectangle and frame tools) and with a pointer gesture (a drag with the rectangle tool: a rectangle drawn) resolves and takes effect, where on `main` the same requests time out and change nothing. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>