From 4459f66593a568d55ada95a48399f01bd5480e2a Mon Sep 17 00:00:00 2001 From: CloakHQ Date: Thu, 16 Apr 2026 22:19:43 +0200 Subject: [PATCH] =?UTF-8?q?release:=20v0.3.25=20=E2=80=94=20Chromium=20146?= =?UTF-8?q?.0.7680.177.3,=20launch=5Fcontext=5Fasync,=20contextOptions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 5 +++++ README.md | 10 ++++++---- cloakbrowser/_version.py | 2 +- cloakbrowser/config.py | 6 +++--- js/package.json | 2 +- js/src/config.ts | 6 +++--- 6 files changed, 19 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 32fc881..98ce200 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,8 +8,13 @@ Changes are tagged: **[wrapper]** for Python/JS wrapper, **[binary]** for Chromi ## [Unreleased] +## [0.3.25] — 2026-04-16 + - **[wrapper]** Python: add `launch_context_async()` — async counterpart to `launch_context()`. Returns a BrowserContext with all kwargs forwarded to `browser.new_context()`, enabling `storage_state`, `permissions`, `extra_http_headers`, etc. without a persistent profile folder. Closes #141. - **[wrapper]** JS: `launchContext()` and `launchPersistentContext()` silently dropped unknown options (including `storageState`). New `contextOptions` escape hatch forwards arbitrary options to Playwright's `newContext()`. +- **[wrapper]** Fix `humanConfig` TypeScript typing (#151). +- **[binary]** New build 146.0.7680.177.3 for Linux x64 + arm64 — 57 source-level fingerprint patches (up from 49): WebAuthn capabilities, AAC audio encoder, and window position spoofing; WebGL and canvas format consistency fixes; SOCKS5 warm connection pool auth fix for credentialed proxies. +- **[docs]** Add recommended anti-bot config and SOCKS5 tips to troubleshooting. ## [0.3.24] — 2026-04-10 diff --git a/README.md b/README.md index c61709b..1d0a145 100644 --- a/README.md +++ b/README.md @@ -128,11 +128,13 @@ Open [http://localhost:8080](http://localhost:8080). Create a profile. Click **L --- -## Latest: v0.3.24 (Chromium 146.0.7680.177.2) +## Latest: v0.3.25 (Chromium 146.0.7680.177.3) +- **`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 -- **49 fingerprint patches** — Linux arm64 now matches Linux x64 on Chromium 146 +- **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) - **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 @@ -404,7 +406,7 @@ from cloakbrowser import binary_info, clear_cache, ensure_binary # Check binary installation status print(binary_info()) -# {'version': '146.0.7680.177.2', 'platform': 'linux-x64', 'installed': True, ...} +# {'version': '146.0.7680.177.3', 'platform': 'linux-x64', 'installed': True, ...} # Force re-download clear_cache() @@ -1124,7 +1126,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.2 +git verify-tag chromium-v146.0.7680.177.3 # 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 edae530..0af2a4a 100644 --- a/cloakbrowser/_version.py +++ b/cloakbrowser/_version.py @@ -1 +1 @@ -__version__ = "0.3.24" +__version__ = "0.3.25" diff --git a/cloakbrowser/config.py b/cloakbrowser/config.py index 9e32319..527c816 100644 --- a/cloakbrowser/config.py +++ b/cloakbrowser/config.py @@ -15,11 +15,11 @@ 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.2" +CHROMIUM_VERSION = "146.0.7680.177.3" PLATFORM_CHROMIUM_VERSIONS: dict[str, str] = { - "linux-x64": "146.0.7680.177.2", - "linux-arm64": "146.0.7680.177.2", + "linux-x64": "146.0.7680.177.3", + "linux-arm64": "146.0.7680.177.3", "darwin-arm64": "145.0.7632.109.2", "darwin-x64": "145.0.7632.109.2", "windows-x64": "145.0.7632.159.7", diff --git a/js/package.json b/js/package.json index c58b912..801af88 100644 --- a/js/package.json +++ b/js/package.json @@ -1,6 +1,6 @@ { "name": "cloakbrowser", - "version": "0.3.24", + "version": "0.3.25", "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 83f3d29..f50d0ca 100644 --- a/js/src/config.ts +++ b/js/src/config.ts @@ -27,11 +27,11 @@ 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.2"; +export const CHROMIUM_VERSION = "146.0.7680.177.3"; export const PLATFORM_CHROMIUM_VERSIONS: Record = { - "linux-x64": "146.0.7680.177.2", - "linux-arm64": "146.0.7680.177.2", + "linux-x64": "146.0.7680.177.3", + "linux-arm64": "146.0.7680.177.3", "darwin-arm64": "145.0.7632.109.2", "darwin-x64": "145.0.7632.109.2", "windows-x64": "145.0.7632.159.7",