From d7cd59b685c8b02c3faf65c7fcd4329f56bd2ec6 Mon Sep 17 00:00:00 2001 From: ARIA Date: Fri, 21 Aug 2026 09:02:52 +0200 Subject: [PATCH] =?UTF-8?q?AGENTS.md:=20document=20the=20uiautomator=20wor?= =?UTF-8?q?kflow=20for=20ADB=20UI=20taps=20=E2=80=94=20never=20guess=20coo?= =?UTF-8?q?rdinates=20from=20a=20screenshot;=20dump=20the=20hierarchy,=20f?= =?UTF-8?q?ind=20the=20node=20by=20text/content-desc/resource-id,=20tap=20?= =?UTF-8?q?the=20center=20of=20its=20bounds,=20re-dump=20after=20navigatio?= =?UTF-8?q?n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AGENTS.md b/AGENTS.md index a01e244..3d695c2 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -36,4 +36,5 @@ - `hermes-agent/tests/gateway/test_android.py` is a thin mirror that imports the **live `gateway-plugin/` package from this repo** (override with `ANDROID_PLUGIN_DIR`); HERMES_HOME is sandboxed per-test by the conftest. Tests must never touch the real `~/.hermes`. - e2e scenarios 3 (reasoning) and 5 (commentary) are model-dependent → SKIP; 11 (push) and 12 (reconnect) are PARTIAL by design. - ADB: launch `adb shell am start -n dev.iris.app/.MainActivity`; reset pairing state `adb shell pm clear dev.iris.app`; screenshot `adb exec-out screencap -p > /tmp/shot.png`. +- ADB UI taps: **never guess tap coordinates from a screenshot** — dump the hierarchy and tap the element's real bounds: `adb shell uiautomator dump` → `adb pull /sdcard/window_dump.xml` → find the node by `text` / `content-desc` / `resource-id` → `adb shell input tap` at the center of its `bounds="[x1,y1][x2,y2]"`. Re-dump after every navigation; if a tap misses, the dump is stale — re-dump, don't nudge coordinates. - Gateway logs: `~/.hermes/logs/gateway.log` or `hermes logs --follow`. \ No newline at end of file