github jo-inc/camofox-browser v1.15.0
v1.15.0 — Fewer surprises when a page fights back

3 hours ago

A browser task can fail in annoying ways: a dropdown that is not a normal HTML control, a search box hidden behind a mobile layout, a page that takes too long, or one stuck tab taking down other work with it.

v1.15.0 makes those cases less disruptive. Camofox is better at finding the control a person can actually see, handling native selects and keyboard shortcuts, and keeping a bad tab from unnecessarily interrupting a whole active session.

v1.15.0 brings a batch of hardening work extracted from Jo, our personal AI agent. Jo runs these browser paths against real sites every day, so the fixes here come from the awkward cases that show up after the happy path: duplicate controls, native dropdowns, stuck pages, search flows that change underneath you, and a single failed tab disrupting unrelated work.

Better at the awkward parts of browser work

  • Native dropdowns and comboboxes are available to agents as real controls.
  • Clicks prefer visible matches when a page has duplicate selectors.
  • Keyboard chords and Enter are normalized more consistently.
  • Mouse fallback errors are handled more usefully when an element is technically present but not ready to use.
  • Navigation now reports destination status, making it easier to tell whether a page actually arrived.

Amazon searches now start from Amazon’s homepage, use the visible search field, and handle continuation prompts before waiting for results. Google result handling keeps structured results where possible and has safer fallbacks when a search page is blocked or empty.

A stuck tab should stay a stuck tab

A navigation timeout without a rotating proxy no longer destroys the whole user session. Other tabs in that session can keep working.

Camofox also protects a live Firefox profile from periodic stale-file cleanup. That avoids a particularly nasty failure mode where a running browser suddenly loses access to local storage or IndexedDB.

Setting either session timeout to 0 now really means “do not expire it.”

Safer defaults

Plugins no longer receive the text typed into a page. They receive its length instead, so a plugin listener cannot accidentally see credentials entered into a login form.

The Docker image now uses the Camoufox version expected by camoufox-js. The bundled yt-dlp download is pinned and checksum-verified, and dependency updates address known transitive dependency issues.

For plugin authors, virtual display providers are now explicitly registered and scoped. If two plugins try to own that capability, startup fails clearly instead of depending on filesystem load order.

Thanks

Thank you to the contributors whose work is included in this release:

  • @shauneccles for the navigation-timeout isolation fix, yt-dlp hardening, CI metadata handling, typed-input privacy work, and the virtual-display collision report.
  • @nayrosk for the cookie session-expiry fix and reporter lifecycle work.
  • @Bortlesboat for improved aborted-navigation classification.
  • @audinue for correcting disabled timeout behavior.
  • @aeonframework for the dependency remediation work.
  • @goncalossilva for reporting the Docker browser-version mismatch.

Follow along

For future Camofox updates, follow @pradeep24 on X.

Don't miss a new camofox-browser release

NewReleases is sending notifications on new releases.