Repository navigation
Browser: three new tools (#65, #66, #67)
browser_upload_fileattaches local files to a file input by its snapshot index (#67), as if the user had picked them. Chrome sets the input's files and the page gets its usualinputandchangeevents. No file picker opens, the tab is not selected and no OS input is sent. It only stages the files: the form is never submitted, and the reply names the files the input now holds. Each path is checked first on the computer running Chrome and this server, and a missing file, a folder or a relative path is refused. Several files need an input that takes several (multiple). Snapshots now list file inputs asinput[file], including ones a page hides behind a styled upload button, and the index of a<label>for one works too. Any other element is refused, including a button that would open the native picker.browser_handle_dialoganswers JavaScriptalert,confirm,promptand leave-page dialogs in an agent tab (#66), without activating it. While one is open,browser_snapshotshows its type, message and id instead of the page. Other commands fail at once withnot started: tab N is showing a JavaScript … dialoginstead of timing out behind it. Passdialog_idso a dialog that replaced the one you read is refused, not answered;prompt_textfills a prompt. Navigating is refused while a dialog is open, because Chrome would dismiss it without anyone choosing to. Chrome does not dismiss a background tab's dialog on its own: the page waits until someone answers.browser_page_errorsreports what went wrong on a page (#65): uncaught exceptions and console errors the page has logged since it loaded (Chrome keeps a limited number), and failed requests (network errors, HTTP 400 and above) since the agent attached. It is read-only and keeps at most 50 entries, with repeats counted. URLs lose their query string, fragment and credentials, and headers, cookies and bodies are never read. Chrome's Runtime domain, which pages can detect, is on only for about 100 ms during the call, never while the agent otherwise works in the tab.
Browser: snapshots name role-less dialogs and in-place editors (#71, #72)
- A dialog built as a custom element with no dialog role (Fathom's
<ui-dialog>) now scopes the snapshot to its controls, likerole=dialog, when it is painted on top of the page. A scoped snapshot names the dialog:dialog: "Share Recording" — only its controls are listed. - Text a page lets you edit in place shows as
[editable], such asspan[editable] "Weekly sync", in everycontenteditablespelling ("",true,plaintext-only). Before, an inline title editor read as a plain span. browser_select_tabno longer says the page is visible (#68, thanks @ElliotDrel). It reports the tab active according to Chrome, and that page rendering is not verified.
Windows: type_text reports text an autocomplete added (#69)
Typing a URL into Chrome's address bar read back as typed, even though the omnibox had completed it to a longer address it had visited, which Return would then open. The field still contained the typed text, so the check passed. type_text now says when the field holds text around the typed text that was not there before and was not typed, giving lengths only, never the field's content. It also reads the field once more to catch a completion that lands late.
37 tools on every platform. Update the Chrome extension too: reload the unpacked extension or install the new munim-computer-use-chrome-extension.zip. All the browser changes live in the extension.
Tested live on this release's binaries:
- Desktop: Calculator on Windows 11, macOS 27.2 (universal, Developer ID signed) and Linux (X11, plus the fractional-scale click check).
- Browser: the end-to-end suite passed 58/58 in real Chrome on the Linux build.