mirror of
https://github.com/openswarm-ai/openswarm.git
synced 2026-10-19 06:23:25 +02:00
Read browser-use's own DOM code (dom/service.py, is_element_visible_according_to_all_parents) and it decides visibility on CSS alone: display, visibility, opacity, plus bounds existence and a viewport intersection with 1000px of slack. There is NO minimum size gate anywhere. Ours had `r.width >= 80 && r.height >= 16`, and that floor was the entire reason ACE / CodeMirror-5 / Monaco composers were unreachable: their real input is a ~1x1 offscreen textarea that paints into a sibling div, so it fails a size test by construction while being the correct fill target. Measured: w3schools and onlinegdb scored 0/3 while every contenteditable editor (CodeMirror 6, Quill, TinyMCE, CKEditor) passed -- the input MECHANISM split the suite, not the site. This replaces the proxyHost patch from the previous commit, which reached the same sites by walking up to a composer-sized ancestor. Their rule is simpler, more general, and needs no ancestor heuristic, so proxyHost is deleted rather than kept alongside. The floor was also doing less work than it looked: junk is excluded by requiring a rich role or a nearby submit AND score >= 2, and a honeypot is display:none / opacity:0, which still fails. Measured on the merged tree, same lane (OSW_MODEL=opus-4-8-cc): - anon w3schools 3/3, i.e. ACE still reached with proxyHost gone - holdout 18/20 = 90%, byte-identical to before: no regression - other_ms unchanged at 1211ms deepl regressed to not_measurable in the same sweep and it is NOT this change: A/B'd by restoring the old floor and re-running, it fails identically. deepl now redirects to /en/translator/l/en/pt-BR and serves one textbox; the redirect predates the change in the logs. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>