v1.12.0

usestrix/strixv1.12.0Jul 19, 2026by skyfallsin

AI Summary

This is a major update that upstreams reliability improvements from production usage at askjo.ai, significantly enhancing browser process management and lifecycle handling. It also includes compatibility fixes for Linux and Docker environments, such as awaiting VirtualDisplay and updating dependencies.

Key Highlights

  • Scope process cleanup to browsers owned by the current server.
  • Prevent close/relaunch races and clean up orphaned browser processes.
  • Improve idle-shutdown health checks and memory-pressure recovery.
  • Fix Linux display and viewport compatibility issues.
  • Update `qs` and `ua-parser-js` to latest versions.

New Features

  • Scope process cleanup to browsers owned by the current server.
  • Prevent close/relaunch races and clean up orphaned browser processes.
  • Improve idle-shutdown health checks and memory-pressure recovery.
  • Add `CAMOFOX_DISABLE_DEFAULT_ADDONS=1` to skip UBO.
  • Restore the disabled reporter contract.
  • Fix factory tool registration for OpenClaw.

Full Release Notes

This release upstreams reliability work from running Camofox in production at [Jo](https://askjo.ai), alongside community fixes.

## What changed

### Browser reliability
Substantial changes as a result of broad production-usage on residential proxies from askjo.ai
- Scope process cleanup to browsers owned by the current server.
- Prevent close/relaunch races and clean up orphaned browser processes.
- Improve idle-shutdown health checks and memory-pressure recovery.
- Harden popup, stale-tab, and concurrent tab lifecycle handling.
- Improve multi-instance tab routing, proxy rotation, and Google prewarming.
- Bound click fallback lookups and return an actionable 422 instead of a 30-second 500.
- Skip unstable captcha and bot-detection iframes during ref construction.
- Normalize browser failures into stable status codes and recovery hints.

### Linux and Docker

- Await `VirtualDisplay.get()` so launches no longer receive `DISPLAY=[object Promise]`.
- Remove the fixed context viewport that triggered `viewport.isMobile` Juggler errors.
- Default Xvfb to 1280×720×24.
- Pin `camoufox-js` to `0.10.2` for reproducible installs.
- Improve Docker build and dependency installation.

Fixes #6807 and related reports #8043, #8042, #5916, #5812, #5643, #5408, and #5166.

### Persistence and startup

- Await shutdown listeners before closing contexts so storage checkpoints complete. Fixes #7162.
- Add `CAMOFOX_DISABLE_DEFAULT_ADDONS=1` to skip UBO when addon downloads or cache state are unreliable. Fixes #5067.
- Restore the disabled reporter contract. Fixes #5434.

### OpenClaw and dependencies

- Fix factory tool registration so newer OpenClaw versions expose all `camofox_*` tools. Fixes #5437.
- Restore the generated `plugin.js` runtime artifact.
- Fix the E2E test command and test teardown.
- Update `qs` to 6.15.2 and `ua-parser-js` to 2.0.10, including its Client Hints ReDoS fix.

## Community PRs
Thank you!
- #7266 — Linux display and viewport compatibility — @mvanhorn
- #5078 — optional UBO exclusion — @mvanhorn
- #5960 — disabled reporter contract — @mrzlab630
- #7163 — shutdown persistence — @joyjit
- #7879 — process ownership cleanup — @leomercer-dev
- #5663 — bounded click fallback — @leoneparise
- #5591 — unstable iframe handling — @leoneparise
- #7534 — OpenClaw tool registration — @xenek
- #5909 — dependency security updates — @dependabot