Skip to content

image: the browser is invisible-playwright-mcp 0.72.2 (invisible-playwright 0.35.7, invisible-core 45.39.0, firefox-45) - #1450

Merged
feder-cr merged 1 commit into
mainfrom
libs-0722
Oct 13, 2026
Merged

feder-cr merged 1 commit into
mainfrom
libs-0722

Conversation

@feder-cr

Copy link
Copy Markdown
Owner

The image's browser moves to invisible-playwright-mcp 0.72.2, with invisible-playwright 0.35.7 and invisible-core 45.39.0 on the firefox-45 engine.

What changes for a Dot

  • Reads after a self-replacing page. browser_snapshot and browser_read_html read again on the page that replaced the one they went to (page.evaluate_read).
  • The model's code runs once. browser_evaluate runs the model's code once when its page navigates under it, and answers with Playwright's navigation error instead of running it again (B285).
  • firefox-42 to firefox-45 fixes:
    • A page that replaces itself keeps its main world. Before, a read in it could wait 30 s and fail (B286).
    • The real mouse no longer turns a click into a drag.
    • A session keeps focus when another starts beside it.
    • Iframes stay in the frame tree after a few navigations.
    • go_back/go_forward to a same-document entry answer.
    • A browser that dies ends every wait at once.
  • Behaviour a page can measure:
    • Every input event is born a few ms before the page sees it, as with real hardware.
    • The first enumerateDevices of a session takes a time the seed declares, 240 to 640 ms.

The tools' schemas and descriptions are unchanged. The recaptured invisible_playwright_mcp.json differs only in its version.

Verification

Check Result
Image tests (golden, runtime) 28/28
Browser smoke (real MCP and firefox-45) 74 passed, 0 failed or skipped
Engine smoke 257 passed, 0 failed
MCP probe in a real Dot, 7 pages that replace themselves, normal and with 16 cores saturated 0 read errors over 126 reads
reload-body probe in a real Dot 0 errors over 60 rounds
Real-VM e2e not run locally (see below)
  • In the MCP probe, read_text, snapshot and read_html took turns as the first read after browser_navigate.
  • Every "interrupted" answer was genuine: after it, href and the document's age showed the page that replaced ours.
  • The real-VM e2e did not run locally because snapshot.ubuntu.com answered 503 to the image build's apt downloads. CI's golden-image job builds it from this lock on merge.

Known

  • One browser_navigate to a page that rewrites itself with document.write waited 45 s instead of answering. That was 1 round in 12 of the full probe, and 0 in 60 when the page was run alone.
  • It is a rare race in the library, not specific to this lock, and is being looked at there.

…wright 0.35.7, invisible-core 45.39.0, firefox-45)

The server's snapshot and read_html read again on the page that replaced the one they went to (page.evaluate_read),
and browser_evaluate, the model's code, runs once when its page navigates under it (B285). Under them, through
firefox-45: a page that replaces itself keeps its main world (B286), the real mouse no longer turns a click into a
drag, a session keeps focus when another starts beside it, iframes stay in the frame tree after a few navigations,
go_back/go_forward to a same-document entry answer, a browser that dies ends every wait at once, every input event
is born a few ms before the page sees it, and the first enumerateDevices of a session takes a time the seed
declares. The tools' schemas and descriptions are unchanged: the recaptured interface differs only in its version.
@feder-cr
feder-cr merged commit 4d20e94 into main Oct 13, 2026
13 checks passed
@feder-cr
feder-cr deleted the libs-0722 branch October 13, 2026 21:33
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