fix: bind Cua pixel actions to current screenshot geometry

Correct native scroll scaling, reject stale or out-of-bounds pixel targets, and scope DPI awareness to geometry reads. Package adapter 0.36.0+artemis.3 and document the high-effort cross-device verification.

Validation: Go tests and vet, packaged MCP schema and handshake, Python checks, and user-run high-effort task completed with a passed verdict and explicit coverage limits.
This commit is contained in:
chenmingxuan committed 2026-10-17 19:43:22 +08:00
1 parent 9c98b6bf8a
commit 889a951c9b
13 files changed
+363 -19

No files matched your search

+2 -1
View File
@@ -54,7 +54,7 @@ async def model_task(base, pid, url, output, events, traces, model):
{
"id": "cua-driver",
"profile": "benchmark",
"version": "0.36.0+artemis.2",
"version": "0.36.0+artemis.3",
}
],
"model": model,
@@ -353,6 +353,7 @@ async def run(
"by": "page",
"x": source["width"] // 2,
"y": source["height"] // 2,
"capture_id": state["capture_id"],
"delivery_mode": "foreground",
},
)
+3
View File
@@ -79,12 +79,14 @@ async def main(executable):
"by": "page",
"x": 400,
"y": 470,
"capture_id": pixel.structuredContent["observation"]["capture_id"],
},
)
if scrolled.isError:
assert (
scrolled.structuredContent["artemis"]["execution"] == "not_started"
), scrolled
state = await session.call("get_window_state", target)
scrolled = await session.call(
"scroll",
{
@@ -94,6 +96,7 @@ async def main(executable):
"by": "page",
"x": 400,
"y": 470,
"capture_id": state.structuredContent["capture_id"],
"delivery_mode": "foreground",
},
)