Skip to content

test(browser): locate controlled Agent Task targets semantically - #100

Draft
seonghobae wants to merge 3 commits into
test/agent-task-process-set-evidencefrom
test/agent-task-semantic-role-name-locator
Draft

test(browser): locate controlled Agent Task targets semantically#100
seonghobae wants to merge 3 commits into
test/agent-task-process-set-evidencefrom
test/agent-task-semantic-role-name-locator

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Partial implementation of #28, stacked on exact PR #73 head 6ba2d03345fa3153230a7d365fba8284696541a1.

Buyer-visible gap

The controlled pinned-Chromium task verified browser-computed role/name before each action, but it still located the fixture targets by CSS identifiers first. Issue #28 requires the first real workflow to locate the form field by semantic role/name, so the test harness now proves bounded semantic discovery rather than merely validating semantics after selector-based discovery.

Dependency

This Draft targets PR #73 branch test/agent-task-process-set-evidence. Keep Draft while #73/#72/#71/#70/#65 remain active. No prerequisite check, review, status, mergeability, or real-browser result transfers to this branch.

TDD / implementation

  1. Exact test-only head e0e4cef2546c0564ba86b6301a3375656ed988ae required a bounded _find_element_by_accessible_role_name helper, a finite candidate limit, exact browser-computed role/name matching, explicit zero/multiple-match failures, and removal of direct #task-text / #submit-task discovery. CI run 31552226676 reached the intended Python repository-contract RED because the helper and semantic discovery path did not exist.
  2. Production head 0a10234d32603175344dd337f41bbddb5515beca added only the bounded controlled-fixture locator: enumerate at most 128 WebDriver candidates, validate each W3C element identifier, read computed role/name, and require exactly one exact match before clear/type or click. CI 31553300188 and Manifest V3 Compatibility 31553300076 succeeded on that head.
  3. Current exact head 13f49b7fc4f11d0fd851f51d816dc0cc94003b91 adds focused behavior regressions for the helper itself: exact-match success plus zero-match, duplicate-match, oversized candidate-set, and malformed-candidate fail-closed cases.

The helper uses the existing W3C WebDriver HTTP element enumeration only as a bounded fixture transport, then filters by browser-computed role/name. This does not become a product selector API. A later product adapter must use a versioned browser protocol boundary rather than treating this compatibility-runner helper as durable authority.

Exact-head proof

On unchanged exact head 13f49b7fc4f11d0fd851f51d816dc0cc94003b91 against unchanged exact prerequisite #73 head 6ba2d03345fa3153230a7d365fba8284696541a1:

  • CI run 31553583901: success, including repository contracts, canonical formatting, locked workspace/all-target check, full tests, strict Clippy, rustdoc, and exact owned production function/line/region/branch coverage;
  • Manifest V3 Compatibility run 31553583902: success against the pinned real-Chromium lane;
  • GitHub reports the Draft mergeable against its exact prerequisite base; and
  • no inline review threads are currently returned.

No predecessor-head or prerequisite result is transferred.

Truth boundary

This slice is executable pinned-browser evidence only. It does not implement the production WebDriver BiDi adapter, expose CSS/XPath/model-generated selectors as OriginWeave authority, mint node handles, authorize or dispatch typed actions, prove source/network provenance, or complete issue #28.

@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 6b87e1ae-7de6-457e-8aad-49d1d9aee773

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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