# Delayed named target: development comparison

Date: 2026-09-24. `tab_act` now supports a guarded `click_named` action **after** a completed activating action in the same batch. It waits up to a bounded time for one visible button or menu item whose accessible name matches exactly. If there is no match, more than one match, a replaced target, or a changed document before input, the batch stops and reports completed earlier steps; it never replays them. Existing controls still use observed refs. This closes a practical gap where a menu option appears only after clicking an observed opener.

The independent local fixture required exactly one `Express` delivery write. The final mechanism test also opens a delayed button in real Chrome, clicks it once, checks the result, and rejects two matching buttons without a click. The comparison below used real Codex inference for both agents and retained Browser Use's default post-task judge. **Every arm passed business acceptance, Agent completion, and the 180-second return deadline with one correct write and zero duplicates.**

| Recorded source phase / report | Task, agent | Whole run | Model calls | Input / output tokens | Observed use |
| --- | --- | ---: | ---: | ---: | --- |
| [Committed post-check source](evidence/click-named/shadow-menu-postchecks-final-v1.json), seed 35 | Shadow DOM, Tablaze / Browser Use | 39.171 / 60.785 s | 2 / 3 | 30,497 / 360; 50,738 / 613 | Tablaze used action post-checks, no `click_named` yet |
| Same source, seed 35 | Delayed menu, Tablaze / Browser Use | 98.777 / 82.415 s | 5 / 4 | 80,803 / 957; 70,735 / 792 | Tablaze observed the delayed option in a later round |
| [Initial `click_named` with required role](evidence/click-named/dynamic-menu-click-named-v1.json), seed 36 | Delayed menu, Tablaze / Browser Use | 91.474 / 67.186 s | 5 / 4 | 81,736 / 1,078; 70,728 / 755 | Model guessed `menuitem`; page exposed `button`. Wait failed, then a fresh observed ref recovered without a duplicate write |
| [Role-free exact-name action](evidence/click-named/dynamic-menu-click-named-v2.json), seed 37 | Delayed menu, Tablaze / Browser Use | 80.715 / 77.720 s | 4 / 4 | 63,723 / 812; 70,709 / 819 | Tablaze used one batch to open the menu and click the delayed option, then separately observed and verified the receipt |

The first role-bearing attempt exposed a real usability defect in the new API: a model cannot reliably know the ARIA role of a control that does not yet exist. The final API searches buttons and menu items together by exact name and rejects ambiguity. Its successful trace shows `tab_open` → one `tab_act` with `click` and `click_named` → `tab_snapshot` → `tab_verify` → finish. The model did not know the receipt text in advance, so the extra observation and check were appropriate; the action call alone is not completion evidence. A post-check that merely sees the menu option would not prove the delivery write.

Conditions: `gpt-6-astra` through the same Codex CLI inference bridge at `ultra`, Browser Use Python `0.13.10` pinned to `d8110c5ff87ccba887aaa726cdb780f2f84bef8d`, isolated local Chrome at 1280×800, 120,000 reported-token ceiling, 40 planning steps, 180-second whole-run deadline, trusted Tablaze start URL, and Browser Use's default judge. The bridge does not verify per-call temperature/output controls, and the agents have different tool-call ceilings. Seeds, source-tree/patch/build hashes, transport usage, judge records and traces are in the original JSON reports. These tasks and iterations were visible during development; source and prompts changed across phases. **They are not a controlled causal speed estimate, reliability rate, or proof of product-wide superiority.**

The original reports and eight traces are copied without rewriting into the [evidence index](evidence/click-named/README.md). Report SHA-256 values in table order: `1800b6db471dbe3731aee3f8b5e42689d9acbe1ab7a3fec9257c7ca9456e8650`, `92d764f3117b2a6b65464af04fa999f8745adc239e8f98f71bdbead64251ef5b`, `888fc2a60ca2453c13aa50a927bd9ea9a6aafa1c69a9c0dde91fcbcd697ee320`. The final full Chrome regression passed **471/471**; its [log](evidence/development-tests-click-named.txt) has SHA-256 `341975163a376f9ef0dd6143d02ac3a10750704b8b1224fa4cdf813e5be10ca2`.

中文结论：新动作可在同一批次里等待并点击延迟出现的唯一按钮或菜单项；目标不存在、重名或变化时停止，保留已完成步骤并要求重新观察。最终这轮同题实测双方均成功，Tablaze 为 80.715 秒、4 次模型调用，Browser Use 为 77.720 秒、4 次模型调用。不能据此认定 Tablaze 已超过 Browser Use。
