From 7e626ee7a1b0e72ab2c9b98315c36302148df1ce Mon Sep 17 00:00:00 2001 From: CloakHQ Date: Thu, 21 May 2026 05:08:32 +0200 Subject: [PATCH] =?UTF-8?q?release:=20v0.3.30=20=E2=80=94=20binary=20146.0?= =?UTF-8?q?.7680.177.5,=20rendering=20consistency=20fixes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 9 +++++++++ README.md | 38 ++++++++++++++++++++------------------ cloakbrowser/_version.py | 2 +- cloakbrowser/config.py | 6 +++--- flake.nix | 4 ++-- js/package-lock.json | 4 ++-- js/package.json | 2 +- js/src/config.ts | 6 +++--- 8 files changed, 41 insertions(+), 30 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 42f6094..6bd73ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,15 @@ Changes are tagged: **[wrapper]** for Python/JS wrapper, **[binary]** for Chromi ## [Unreleased] +## [0.3.30] — 2026-05-21 + +- **[binary]** New build 146.0.7680.177.5 for Linux x64 + Windows x64 — 58 source-level fingerprint patches (up from 57) +- **[binary]** Rendering consistency improvements across Linux and Windows — corrected GPU, display, and graphics parameters to match stock Chrome 146 profiles +- **[binary]** Windows: native GPU/rendering values now pass through directly instead of being spoofed, matching real hardware behavior +- **[binary]** Storage normalization fix for Windows +- **[binary]** HTTP proxy inline credential support at the network layer +- **[wrapper]** Update `PLATFORM_CHROMIUM_VERSIONS` for linux-x64 and windows-x64 to 146.0.7680.177.5 + ## [0.3.29] — 2026-05-20 - **[wrapper]** **Security**: `cloakserve` — guard WebSocket origins to prevent browser-origin CSRF via CDP proxy (thanks [@0xlally](https://github.com/0xlally) for the report, [@honor2030](https://github.com/honor2030) for the fix, #239, #240) diff --git a/README.md b/README.md index 9d66bf6..34e6512 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Drop-in Playwright/Puppeteer replacement for Python and JavaScript.
Same API, same code — just swap the import. 3 lines of code, 30 seconds to unblock.

-- **49 source-level C++ patches** — canvas, WebGL, audio, fonts, GPU, screen, WebRTC, network timing, automation signals, CDP input behavior +- **58 source-level C++ patches** — canvas, WebGL, audio, fonts, GPU, screen, WebRTC, network timing, automation signals, CDP input behavior - **`humanize=True`** — human-like mouse curves, keyboard timing, and scroll patterns. One flag, behavioral detection passes - **0.9 reCAPTCHA v3 score** — human-level, server-verified - **Passes Cloudflare Turnstile**, FingerprintJS, BrowserScan — tested against 30+ detection sites @@ -128,17 +128,19 @@ Open [http://localhost:8080](http://localhost:8080). Create a profile. Click **L --- -## Latest: v0.3.29 (Chromium 146.0.7680.177.4) +## Latest: v0.3.30 (Chromium 146.0.7680.177.5) -- **`launch_context_async()`** — async counterpart to `launch_context()`. Forwards kwargs to `browser.new_context()` for `storage_state`, `permissions`, `extra_http_headers` without a persistent profile folder. -- **JS `contextOptions` escape hatch** — forward arbitrary options (including `storageState`) to Playwright's `newContext()` from `launchContext()` / `launchPersistentContext()`. -- **Native SOCKS5 proxy** — `proxy="socks5://user:pass@host:port"` works directly in all launch functions, Python + JS. QUIC/HTTP3 tunnels through SOCKS5 via UDP ASSOCIATE. -- **Chromium 146 upgrade** — rebased all patches from 145.0.7632.x to 146.0.7680.177 -- **57 fingerprint patches** — additional detection-vector coverage (WebAuthn, AAC audio, window position) and WebGL/canvas consistency fixes -- **WebRTC IP spoofing** — `--fingerprint-webrtc-ip=auto` resolves your proxy's exit IP and spoofs WebRTC ICE candidates. Auto-injected when using `geoip=True` (no extra network call) +- **58 fingerprint patches** — rendering consistency improvements across Linux and Windows, corrected GPU/display/graphics parameters to match stock Chrome 146 profiles +- **Windows native GPU passthrough** — real hardware values pass through directly instead of being spoofed, matching real browser behavior +- **HTTP proxy inline credentials** — new network-layer support for proxies with inline authentication +- **`extension_paths`** — load Chrome extensions in all launch functions +- **Humanize actionability** — auto-wait for visible, enabled, stable elements before humanized actions +- **Per-call `human_config`** — override humanize settings on individual method calls +- **Composable JS helpers** — `buildLaunchOptions()` and `humanizeBrowser()` for custom Playwright integrations +- **Native SOCKS5 proxy** — `proxy="socks5://user:pass@host:port"` works directly in all launch functions, Python + JS. QUIC/HTTP3 tunnels through SOCKS5 via UDP ASSOCIATE - **Proxy signal removal** — DNS/connect/SSL timing zeroed, proxy cache headers stripped, Proxy-Connection header leak removed -- **`cloakserve` CDP multiplexer** — rewritten as a multi-connection CDP proxy with per-connection fingerprint seeds -- **Humanize CDP isolation** — keyboard events now use isolated worlds and trusted dispatch for better behavioral stealth +- **Chromium 146 upgrade** — rebased all patches from 145.0.7632.x to 146.0.7680.177 +- **WebRTC IP spoofing** — `--fingerprint-webrtc-ip=auto` resolves your proxy's exit IP and spoofs WebRTC ICE candidates. Auto-injected when using `geoip=True` (no extra network call) - **`humanize=True`** — one flag makes all mouse, keyboard, and scroll interactions behave like a real user. Bézier curves, per-character typing, realistic scroll patterns - **Stealthy with zero flags** — binary auto-generates a random fingerprint seed at startup. No configuration required - **Timezone & locale from proxy IP** — `launch(proxy="...", geoip=True)` auto-detects timezone and locale @@ -226,7 +228,7 @@ CloakBrowser is a thin wrapper (Python + JavaScript) around a custom-built Chrom 3. **Every launch** → Playwright or Puppeteer starts with our binary + stealth args 4. **You write code** → standard Playwright/Puppeteer API, nothing new to learn -The binary includes 49 source-level patches covering canvas, WebGL, audio, fonts, GPU, screen properties, WebRTC, network timing, hardware reporting, automation signal removal, and CDP input behavior mimicking. +The binary includes 58 source-level patches covering canvas, WebGL, audio, fonts, GPU, screen properties, WebRTC, network timing, hardware reporting, automation signal removal, and CDP input behavior mimicking. These are compiled into the Chromium binary — not injected via JavaScript, not set via flags. @@ -413,7 +415,7 @@ from cloakbrowser import binary_info, clear_cache, ensure_binary # Check binary installation status print(binary_info()) -# {'version': '146.0.7680.177.3', 'platform': 'linux-x64', 'installed': True, ...} +# {'version': '146.0.7680.177.5', 'platform': 'linux-x64', 'installed': True, ...} # Force re-download clear_cache() @@ -747,11 +749,11 @@ browser = await launch_async(args=["--remote-debugging-port=9242"]) | Platform | Chromium | Patches | Status | |---|---|---|---| -| Linux x86_64 | 146 | 57 | ✅ Latest | -| Linux arm64 (RPi, Graviton) | 146 | 57 | ✅ Latest | +| Linux x86_64 | 146 | 58 | ✅ Latest | +| Linux arm64 (RPi, Graviton) | 146 | 58 | ✅ | | macOS arm64 (Apple Silicon) | 145 | 26 | ✅ | | macOS x86_64 (Intel) | 145 | 26 | ✅ | -| Windows x86_64 | 146 | 57 | ✅ Latest | +| Windows x86_64 | 146 | 58 | ✅ Latest | The wrapper auto-downloads the correct binary for your platform. @@ -1150,9 +1152,9 @@ A: Yes. Pass `proxy="http://user:pass@host:port"` or `proxy="socks5://user:pass@ | Feature | Status | |---------|--------| -| Linux x64 — Chromium 146 (57 patches) | ✅ Released | +| Linux x64 — Chromium 146 (58 patches) | ✅ Released | | macOS arm64/x64 — Chromium 145 (26 patches) | ✅ Released | -| Windows x64 — Chromium 146 (57 patches) | ✅ Released | +| Windows x64 — Chromium 146 (58 patches) | ✅ Released | | JavaScript/Puppeteer + Playwright support | ✅ Released | | Fingerprint rotation per session | ✅ Released | | Built-in proxy rotation | 📋 Planned | @@ -1174,7 +1176,7 @@ All releases are signed for supply chain verification. ```bash # Verify GPG signature (binary release tag) gpg --keyserver keyserver.ubuntu.com --recv-keys C60C0DDC9D0DE2DD -git verify-tag chromium-v146.0.7680.177.3 +git verify-tag chromium-v146.0.7680.177.5 # Verify GitHub binary attestation (Sigstore) gh attestation verify cloakbrowser-linux-x64.tar.gz --repo CloakHQ/cloakbrowser diff --git a/cloakbrowser/_version.py b/cloakbrowser/_version.py index d91d094..ab1ae1e 100644 --- a/cloakbrowser/_version.py +++ b/cloakbrowser/_version.py @@ -1 +1 @@ -__version__ = "0.3.29" +__version__ = "0.3.30" diff --git a/cloakbrowser/config.py b/cloakbrowser/config.py index 7158e52..fb1ed6e 100644 --- a/cloakbrowser/config.py +++ b/cloakbrowser/config.py @@ -15,14 +15,14 @@ from ._version import __version__ # CHROMIUM_VERSION is the latest across all platforms (for display/reference). # Use get_chromium_version() for the current platform's actual version. # --------------------------------------------------------------------------- -CHROMIUM_VERSION = "146.0.7680.177.3" +CHROMIUM_VERSION = "146.0.7680.177.5" PLATFORM_CHROMIUM_VERSIONS: dict[str, str] = { - "linux-x64": "146.0.7680.177.3", + "linux-x64": "146.0.7680.177.5", "linux-arm64": "146.0.7680.177.3", "darwin-arm64": "145.0.7632.109.2", "darwin-x64": "145.0.7632.109.2", - "windows-x64": "146.0.7680.177.4", + "windows-x64": "146.0.7680.177.5", } # --------------------------------------------------------------------------- diff --git a/flake.nix b/flake.nix index 1207116..13aaf22 100644 --- a/flake.nix +++ b/flake.nix @@ -19,8 +19,8 @@ packageInfo = { x86_64-linux = { platformTag = "linux-x64"; - version = "146.0.7680.177.3"; - hash = "sha256-WvAn+q+x/vmTPreEwJS3ZHBt4io3KizuhLwRf8SrU38="; + version = "146.0.7680.177.5"; + hash = "sha256-ShK83pX6G7G+7ytBq15cJ8Nr544749DayMZNcFIWZw4="; }; aarch64-linux = { platformTag = "linux-arm64"; diff --git a/js/package-lock.json b/js/package-lock.json index 7e5c6d6..bcf778e 100644 --- a/js/package-lock.json +++ b/js/package-lock.json @@ -1,12 +1,12 @@ { "name": "cloakbrowser", - "version": "0.3.29", + "version": "0.3.30", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "cloakbrowser", - "version": "0.3.29", + "version": "0.3.30", "license": "MIT", "dependencies": { "tar": "^7.0.0" diff --git a/js/package.json b/js/package.json index e794c0e..cfd118c 100644 --- a/js/package.json +++ b/js/package.json @@ -1,6 +1,6 @@ { "name": "cloakbrowser", - "version": "0.3.29", + "version": "0.3.30", "description": "Stealth Chromium that passes every bot detection test. Drop-in Playwright/Puppeteer replacement with source-level fingerprint patches.", "type": "module", "main": "dist/index.js", diff --git a/js/src/config.ts b/js/src/config.ts index beb5151..4b73057 100644 --- a/js/src/config.ts +++ b/js/src/config.ts @@ -27,14 +27,14 @@ export { WRAPPER_VERSION }; // CHROMIUM_VERSION is the latest across all platforms (for display/reference). // Use getChromiumVersion() for the current platform's actual version. // --------------------------------------------------------------------------- -export const CHROMIUM_VERSION = "146.0.7680.177.3"; +export const CHROMIUM_VERSION = "146.0.7680.177.5"; export const PLATFORM_CHROMIUM_VERSIONS: Record = { - "linux-x64": "146.0.7680.177.3", + "linux-x64": "146.0.7680.177.5", "linux-arm64": "146.0.7680.177.3", "darwin-arm64": "145.0.7632.109.2", "darwin-x64": "145.0.7632.109.2", - "windows-x64": "146.0.7680.177.4", + "windows-x64": "146.0.7680.177.5", }; // ---------------------------------------------------------------------------