Skip to content

feat(browser): the owner's cursor gets there before the click - #93

Merged
httpsphl merged 1 commit into
mainfrom
feat/cursor-before-click
Oct 1, 2026
Merged

httpsphl merged 1 commit into
mainfrom
feat/cursor-before-click

Conversation

@httpsphl

@httpsphl httpsphl commented Oct 1, 2026

Copy link
Copy Markdown
Owner

In the browser panel, the page changed before the bot's cursor moved and clicked. The daemon clicked first, waited for the page to settle, and only then sent browser.action.

  • Session::aim / aim_field find the element and scroll it into view. click, type_text and choose now take that Aim.
  • The tools send browser.action with the point first. While someone watches the browser (Browsers::watched), they wait 560 ms for the cursor's 520 ms glide, then act. With nobody watching there is no wait, so bots working unseen are not slowed.
  • Open, press, scroll and back still report after acting.
  • The panel's click ripple starts at 520 ms (it was 420 ms), when the cursor arrives, which is now also when the real click happens.
  • Spec 21.7 updated.

New real-Edge test the_owner_sees_the_cursor_get_there_before_the_click: the click event arrives while the tool call is still running, and the tool answers at least 500 ms later. On main this fails because the event comes after the click. fmt, clippy and cargo test --workspace pass; the daemon suite ran twice more with no failure. pnpm check passes (261).

Still to see with the real Claude Code: open a bot's browser panel, ask it to fill a form, and watch the cursor reach each field before the field changes.

Click, type and select used to act first and tell the app afterwards, so
the panel showed the page change before the bot's cursor moved. They now
aim first: the element is found and scrolled into view, browser.action
goes out with its point and, while someone watches, the click waits the
cursor's glide (560 ms) before it happens. Nobody watching, no wait.
The ripple in the panel starts as the cursor arrives.
@httpsphl
httpsphl merged commit 204dd6a into main Oct 1, 2026
5 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant