release: v0.5.5 — info --proxy geoip resolution + Python 3.14 humanize fix

This commit is contained in:
CloakHQ
2026-08-05 17:35:33 +02:00
parent 9021e0c07f
commit c1dd58902a
7 changed files with 12 additions and 7 deletions
+5
View File
@@ -8,7 +8,12 @@ Changes are tagged: **[wrapper]** for Python/JS wrapper, **[binary]** for Chromi
## [Unreleased]
---
## [0.5.5] — 2026-08-05
- **[wrapper]** **`cloakbrowser info --proxy <url>` now resolves the exit IP, timezone, and locale a launch would apply through that proxy.** Previously `info` only reported whether the GeoIP database file was present; it never resolved anything, so there was no way to confirm a proxy hands you a timezone and locale that match its exit IP before launching. Passing `--proxy` runs the same resolution `geoip=True` uses at launch (downloading the GeoIP database if it is not cached) and prints the exit IP, timezone, and locale, in text and `--json` output. Plain `info` is unchanged and still makes no network call; it now points at the new flag. Python, JavaScript, and .NET.
- **[wrapper]** **`humanize=True` no longer raises `TypeError` on Python 3.14 with a license key set.** Python 3.14 made `functools.partial` a method descriptor. The license guard stored each wrapped page method as a `partial`, relying on it *not* being a descriptor so that humanize could copy the methods onto a holder object and read them back unchanged. Under 3.14 the `partial` re-bound on access and injected a spurious first argument, so the first humanized page call raised `TypeError` (#488). The guard now wraps methods in a non-descriptor callable, inert wherever it is stored, on every Python version. Python only; JavaScript and .NET were unaffected.
- **[wrapper]** **`humanize=True` no longer misses clicks on pages that are still loading.** When a page kept reflowing after the element was scrolled into view, the wrapper waited for the position to settle but never scrolled again — by then the element could have been pushed off screen, so the click was dispatched at coordinates outside the viewport and landed on nothing. The action reported success and the click had simply not happened. The element is now re-scrolled into view after the settle wait, and the pointer-events check no longer downgrades an already-confirmed miss to "undetermined" when a later probe times out, so a click that cannot land raises instead of passing silently. Measured on a page reflowing for 1025 seconds: previously a silent miss after ~32s, now a successful click. Pages that reflow longer than the call's timeout still raise, as before. Python, JavaScript, and .NET.
---
+1 -1
View File
@@ -150,7 +150,7 @@ page.goto("https://example.com")
---
## Latest: v0.5.4 — 71 source-level stealth patches (Chromium 150.0.7871.114.3 — all platforms)
## Latest: v0.5.5 — 71 source-level stealth patches (Chromium 150.0.7871.114.3 — all platforms)
- **CloakBrowser Pro** — the latest binary (Chromium 150.0.7871.114.3, 71 source-level patches) is available to Pro subscribers on **Linux, Windows, and macOS**. Set a `license_key` (`licenseKey` in JS) or the `CLOAKBROWSER_LICENSE_KEY` env var and the wrapper fetches the latest build automatically. See [CloakBrowser Pro](#cloakbrowser-pro)
- **.NET 8 / C# client** — CloakBrowser now ships as a NuGet package (`CloakBrowser`), mirroring the Python and JS wrappers.
+1 -1
View File
@@ -1 +1 @@
__version__ = "0.5.4"
__version__ = "0.5.5"
+1 -1
View File
@@ -10,7 +10,7 @@
<!-- NuGet packaging metadata -->
<PackageId>CloakBrowser</PackageId>
<Version>0.5.4</Version>
<Version>0.5.5</Version>
<Authors>CloakHQ</Authors>
<Description>Stealth Chromium that passes every bot detection test. Drop-in Playwright (.NET) replacement with source-level fingerprint patches.</Description>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
+1 -1
View File
@@ -4,5 +4,5 @@ namespace CloakBrowser;
public static class CloakVersion
{
/// <summary>The CloakBrowser .NET wrapper version.</summary>
public const string Version = "0.5.4";
public const string Version = "0.5.5";
}
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "cloakbrowser",
"version": "0.5.4",
"version": "0.5.5",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "cloakbrowser",
"version": "0.5.4",
"version": "0.5.5",
"license": "MIT",
"dependencies": {
"tar": "^7.0.0"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "cloakbrowser",
"version": "0.5.4",
"version": "0.5.5",
"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",