Repository navigation
Releases: foxl-ai/browser-extension
Releases · foxl-ai/browser-extension
Release list
v0.9.0
v0.9.0 - October 26, 2026
When this update arrives
- This version adds Chrome's
debuggerpermission, which Chrome does not allow to be optional. Its new warning, "Access the page debugger backend", makes Chrome turn Foxl off when it updates until you accept it. Open Chrome's menu, choose "Foxl is disabled", and accept the new permissions, or switch Foxl back on inchrome://extensions. Until then Foxl Desktop shows "Not connected" under Settings > Web Access > Chrome extension, and the agent's browser actions fail with "Chrome extension not connected. Please install and enable the Foxl extension, then reload the page." - To capture a tab in the background without selecting it, Foxl attaches Chrome's debugger to that tab for about half a second. While it does, Chrome shows a bar at the top of every tab in every window, "Foxl" started debugging this browser, with a Cancel button. The bar makes the page you are viewing shorter (57 CSS pixels on macOS) and closes 5 seconds after the last capture. Scrolling a background tab also draws it once this way.
- The tab you are looking at is captured the way 0.8.1 did, without the debugger and without the bar.
- Where Chrome refuses the debugger (DevTools turned off by an administrator, a page that contains another extension's frame, such as a password manager's) or does not draw a background tab (a PDF), a screenshot selects the tab for a moment and switches back, as in 0.8.1.
- Clicks, typing, keys, and hover still use page events. The
debuggerpermission does not make them trusted input.
Added
- Screenshots of a tab in the background, without selecting it. With a desktop that asks for them, a rectangle within the viewport or the full document. Results report the CSS rectangle and the PNG's pixel size.
- With a compatible desktop, page snapshots can return only changes since an explicitly supplied snapshot ID. Limits on text and lines report truncation; a different tab, document, filter, expired baseline, or missing baseline returns a full snapshot.
- Snapshots include the current value of text fields and the checked, disabled, expanded, and selected states. Password and hidden field values are never included, as a value or as a name.
Fixed
- Scrolling no longer selects the tab and scrolls the full amount. 0.8.1's smooth scroll stopped when it switched back (834 of 1,200 pixels in a test page).
- An unlabelled password field is no longer named by its value in snapshots.
- Back-to-back screenshots of background tabs no longer fail with Chrome's limit of two captures per second.
- Screenshot requests on one tab run in order and detach the debugger when finished. Invalid crops and a page that navigates during capture are refused.
- Snapshot and page-access failures reach the desktop as failures.
Verify the download
shasum -a 256 -c SHA256SUMS.txtOr rebuild it yourself and compare - the zip is byte-reproducible:
git checkout v0.9.0 && node scripts/build.mjs
shasum -a 256 dist/foxl-browser-extension-0.9.0.zipv0.8.1
v0.8.1 - October 5, 2026
Fixed
- Clicking at a point no longer presses Foxl's own Stop button. While the agent works,
the page shows a "Stop Foxl" button at the bottom centre. A click at a point under it
pressed that button and ended the run. Now the click goes to the page element under the
button, and the answer says that Foxl's button was drawn there. A point where there is
nothing but Foxl's own controls is refused. - Hovering at a point skips Foxl's overlay the same way. A key press never goes to the Stop
button, even when the button has focus. - Screenshots no longer show Foxl's border and Stop button. They are hidden while the tab is
captured and come back right after, so the agent is not shown a button to aim at. If the
page is too busy to hide them in time, the screenshot is taken with them showing, and they
are never left hidden: a hide that arrives late is refused, and a hide undoes itself after
1.5 seconds. - A page cannot pass its own elements off as Foxl's. Foxl tells its own border and Stop
button apart from the page by remembering the elements it created, where the page cannot
reach. An id or attribute a page copies from Foxl's overlay does not count. In 0.8.0 a page
could give its own elements an id like Foxl's to keep them out of the page outline.
Verify the download
shasum -a 256 -c SHA256SUMS.txtOr rebuild it yourself and compare - the zip is byte-reproducible:
git checkout v0.8.1 && node scripts/build.mjs
shasum -a 256 dist/foxl-browser-extension-0.8.1.zipv0.8.0
v0.8.0 - October 5, 2026
Added
- New actions for the agent: click at a point of the page, press a key (Enter, Escape,
Tab, arrows, or a combination like Control+a), and hover over an element or a point.
Pressing a key on an element focuses it first; it does not click it.
Fixed
- Typing is checked, and a failure is reported. After typing, the extension reads the
field back and says so when the text is not there. It used to answer "done" for every
type, including into fields that ignored it. A field that formats what you type (a phone
number shown as "(555) 123-4567") counts as holding it. - Typing into rich-text editors works. Text goes in through the browser's own editing
(insertText), which contenteditable editors accept. The old path set.value, which
an editor does not have, so nothing was typed. Plain and React-controlled inputs already
took the old path's text and still do. - Enter submits through the page's own submit handling. It calls
requestSubmit(),
so the page's submit handler and the form's validation run. The oldform.submit()
skipped both and reloaded the page, so a React form'sonSubmitnever ran. The result
now says whether a submit actually happened, or that the form is invalid, or that the
page handled Enter itself. - Clicks, typing, key presses and hovers on a tab run one at a time, the way one
keyboard and mouse would. Foxl Desktop can send several at once, and they shared the
page's focus, so a click could land between typing and its Enter and the Enter went to
the wrong element. Enter after typing, and a key pressed on an element, now go to that
element. A tab whose page stops answering (a button that opens a confirm dialog, a hung
script) holds only its own actions, and for at most 25 seconds: an action that could not
start in time, or that reaches the page after that, is refused with "nothing was done"
instead of running later. Stop Foxl cancels the actions still waiting. - Clicks send the whole mouse sequence (pointer and mouse over, down and up, then
click), for sites that act on mousedown. An element with no box on the page (a hidden
checkbox behind a styled label) is still clicked the way it was before. - Elements inside web components (open shadow roots) appear in the page outline and
can be clicked and typed into. Editors (contenteditable) are listed as text boxes. - Opening a page no longer waits 30 seconds when the page finished loading before the
extension started watching for it, which made fast pages time out in Foxl Desktop. - Foxl's own "Stop Foxl" button no longer appears in the page outline.
- The full page outline of a very large page is fast. Each element's ref was found by
scanning every ref so far, so a page with 18,000 controls took 21 seconds (37 seconds the
second time, past Foxl Desktop's 30-second limit). It takes under 50 ms now. - PRIVACY.md says when the activity border and the Stop Foxl button appear (only when
Foxl Desktop signals a run), and the store listing and README say whatscriptingis
used for (scrolling).
Known limits
- Clicks, key presses and hovers are still page events, not your real mouse and
keyboard. A key the browser itself acts on (Tab moving focus) does not happen, and a
site that checks whether input came from a person ignores them.
Verify the download
shasum -a 256 -c SHA256SUMS.txtOr rebuild it yourself and compare - the zip is byte-reproducible:
git checkout v0.8.0 && node scripts/build.mjs
shasum -a 256 dist/foxl-browser-extension-0.8.0.zip