v1.12.0

longbridge/gpui-kitv1.12.0Jul 19, 2026by skyfallsin

AI Summary

A major upstream release introducing reliability improvements from production usage at askjo.ai, including process cleanup, Docker/Linux compatibility fixes, and persistence enhancements.

Key Highlights

  • Scope process cleanup to browsers owned by the current server and prevent orphaned processes.
  • Improve idle-shutdown health checks and memory-pressure recovery.
  • Await shutdown listeners before closing contexts so storage checkpoints complete.
  • Await `VirtualDisplay.get()` so launches no longer receive `DISPLAY=[object Promise]`.
  • Fix factory tool registration so newer OpenClaw versions expose all `camofox_*` tools.

New Features

  • `CAMOFOX_DISABLE_DEFAULT_ADDONS=1` environment variable
  • Improved multi-instance tab routing and proxy rotation
  • Skip unstable bot-detection iframes during ref construction
  • Normalized browser failure status codes and recovery hints
  • Bounded click fallback lookups

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