Repository navigation
feat(computer-use): computer_action takes the shared step verbs - #40
Merged
Merged
Conversation
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: unavailable · PR result: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
maschwenk
marked this pull request as ready for review
November 9, 2026 01:12
Steps are flat, with preview_act's verbs and field names: click, hover, type, press (a key), scroll and drag, plus the app-only perform, menu and wait. A click on an element listing press still lands through that accessibility action and a click at x, y lands on that exact point. planStep maps each verb onto the native worker's existing actions, so the worker does not change.
…anged Revealing a hover button shifts every row below it by 3 px, and the action diff listed each one as a ~ line (~4.2k chars per hover or scroll on the bake-off page). Elements whose only change is position or size under the same parent now go on one 'moved:' line. A change of parent still gets a ~ line.
maschwenk
force-pushed
the
feat/computer-action-shared-verbs
branch
from
November 9, 2026 01:12
855cd3f to
03d9651
Compare
This was referenced Nov 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
step 1 of the design note. computer_action steps and the browser tools spoke two languages: apps used
{ref, action: {kind: "press"}},key,click_at,move_at,move,dx/dy,replace, tabs useclick,hover,type(clear),press(key),scroll(deltaX/deltaY),drag. andpressmeant opposite things, activate a control on apps vs press a key on tabs. an agent using both had to keep two vocabularies in its headwhat changed
{action: "click", ref: 17},{action: "click", x: 101, y: 60},{action: "hover", ref: 30},{action: "type", name: "Name", text: "hi", clear: true},{action: "press", key: "Return"},{action: "scroll", ref: 4, deltaY: 100},{action: "drag", ref: 4, target: {ref: 9}}. apps also keepperform(perform: "expand"),menu(path) andwait(ms)pressis always a key now, and takes upstream'smodifierstoo ({key: "=", modifiers: ["Shift"]}). activating a control isclick: a single click on an element listing press already went through the ax press in the worker, and a right click on one listing show_menu opens its menu. click/hover at x, y are the old click_at/move_at, exact pointsmokeand the bake-off all use the new verbsbackgroundActionto show a click on a pressable element ends up as the ax press+187/−122 outside tests, +313/−194 with them. the note guessed +180/−150
bake-off from the pr below, each side right after a fresh dev server start (ref numbers grow with uptime and change response length a bit, so this keeps sizes comparable)
11/11 both sides, identical down to the char, my pointer and front app (helium) never moved. 2 more runs on this branch with a warm server were also 11/11
calculator 7 + 8 = through the new verbs, 15 every way, pointer and front app unchanged:
smoke(clicks by ref): 5 steps via accessibility{action: "click", name: "Add"}etc: 5 steps via accessibility{action: "press", key: "=", modifiers: ["Shift"]}for +: 5 steps via keyboard_event, last expression went 9+6 → 7+8also in here: elements that only reflowed go on one
moved:line. revealing the hover button makes its row 3 px taller, so every element below it came back as a~line just for its new position, ~4.1k chars per hover/scroll. now an element whose only change is position or size under the same parent is listed inmoved: 3-4, 9-40. a change of parent is still a~line (calculator's "7+8" moving into Last Expression), and the tool text says to take an includeImage snapshot before using coordinates near moved refs. codex's ax text has no coordinates at all, so it never had thissame bake-off, 11/11, same page events, pointer and front app unchanged
tradeoffs
{action: {kind: "press"}}steps now fail schema decode. agents read the schema every session, and the note wants no second name per tool. old threads only render, and computer calls still go through the generic rendererpressthat failed with unsupported_action. now it's a posted pointer click. more forgiving, but it is real pointer input. chrome right after launch is exactly this case, see the button rowtarget(upstream's field name) but takes{ref},{name, role}or{x, y}, not a locator stringclickCountis 1-2 andbuttonleft/right, upstream allows 3 and middle. those get a decode error instead of a silent downgradenot in here
{action: "press", key: "+"}presses the = key, keys.ts maps by us key code (already like that). playwright's press("+") types a plus. usemodifiers: ["Shift"]or typeno presentation rows for computer_* yet, still the generic renderer (later step)
docs(computer-use): one vocabulary for apps and browser tabs #38
test(computer-use): bake-off subcommand for background Chrome #39
written by claude opus 5.5 in claude code