diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a496f7..f86b0a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,17 @@ Changes are tagged: **[wrapper]** for Python/JS wrapper, **[binary]** for Chromi --- +## [0.5.9] — 2026-08-25 + +- **[wrapper]** Fix `humanize=True` selecting the wrong element, so humanized actions now resolve the same visible target Playwright would (#512). Text matching ignores non-rendered document content, open Shadow DOM matches are ordered exactly as Playwright orders them for broad `first`/`nth` selectors, and elements with no box of their own (`display: contents`) get actionable geometry derived from their rendered text and visible descendants. Python, JavaScript Playwright/Puppeteer, and .NET. +- **[wrapper]** Restore `get_by_*` locators (test id, placeholder/alt/title, text, label) under `humanize=True`. They had stopped resolving after an earlier internal read path was closed off; the engines are reimplemented in the isolated world so the locators work again without reopening that path. `get_by_role` and `>>` chaining remain unsupported, and the error now names what is supported. Python, JavaScript, and .NET. +- **[wrapper]** Preserve the exact target element across a delayed humanized interaction, and skip the pointer check entirely under `force=True` to match Playwright. Pointer events are no longer dispatched if the original target is detached or replaced while the cursor is moving. Python, JavaScript, and .NET. +- **[wrapper]** `cloakbrowser info` now reports concurrent session seats as used out of the plan limit instead of a bare count, so you can tell whether you are at capacity, and names the real reason when the count is unavailable (server unreachable, timeout, invalid key, inactive license, rate limited, or reported unknown while degraded) (#513). Adds `SessionSeats` / `getSessionSeats`; `get_active_session_count` keeps its signature. Python, JavaScript, and .NET. +- **[wrapper]** Fix the license session guard on `launch_persistent_context_async` not having its denial path available after installation. Python. +- **[wrapper]** Declare the URW base35 fonts explicitly in the published Docker image so the Latin fallback for Verdana, Georgia, Trebuchet MS and Tahoma cannot be silently dropped by a future window-manager change. No runtime change. + +--- + ## [0.5.8] — 2026-08-18 - **[wrapper]** Fix `humanize=True` actions (`fill`, `click`, `type`) failing with an element-not-attached error after a navigation driven by a click or form submission instead of `goto`. The pre-action element checks could stay bound to the previous document and never recover; they now refresh on every navigation. Regression from 0.5.6. Python, JavaScript Playwright/Puppeteer, and .NET. diff --git a/README.md b/README.md index e44759e..8ed68b8 100644 --- a/README.md +++ b/README.md @@ -150,7 +150,7 @@ page.goto("https://example.com") --- -## Latest: v0.5.8 — 73 source-level stealth patches (Chromium 151.0.7922.108.2 — Linux + Windows) +## Latest: v0.5.9 — 73 source-level stealth patches (Chromium 151.0.7922.108.2 — Linux + Windows) - **CloakBrowser Pro Stable** — Chromium `151.0.7922.108.2` on Linux x64, Linux ARM64, and Windows x64; macOS remains on `150.0.7871.114.3`. Set a `license_key` (`licenseKey` in JS) or the `CLOAKBROWSER_LICENSE_KEY` env var and the wrapper fetches the latest Stable build for your platform automatically. See [CloakBrowser Pro](#cloakbrowser-pro) - **CloakBrowser Pro Preview** — Chromium `151.0.7922.108.3` on Linux x64, Linux ARM64, Windows x64, and macOS. Opt in with `release_channel="preview"` or `CLOAKBROWSER_RELEASE_CHANNEL=preview`. diff --git a/cloakbrowser/_version.py b/cloakbrowser/_version.py index fc0a843..40e294f 100644 --- a/cloakbrowser/_version.py +++ b/cloakbrowser/_version.py @@ -1 +1 @@ -__version__ = "0.5.8" +__version__ = "0.5.9" diff --git a/dotnet/src/CloakBrowser/CloakBrowser.csproj b/dotnet/src/CloakBrowser/CloakBrowser.csproj index 417206a..90d4dc4 100644 --- a/dotnet/src/CloakBrowser/CloakBrowser.csproj +++ b/dotnet/src/CloakBrowser/CloakBrowser.csproj @@ -10,7 +10,7 @@ CloakBrowser - 0.5.8 + 0.5.9 CloakHQ Stealth Chromium that passes every bot detection test. Drop-in Playwright (.NET) replacement with source-level fingerprint patches. MIT diff --git a/dotnet/src/CloakBrowser/CloakVersion.cs b/dotnet/src/CloakBrowser/CloakVersion.cs index 9a9304d..5fb76bd 100644 --- a/dotnet/src/CloakBrowser/CloakVersion.cs +++ b/dotnet/src/CloakBrowser/CloakVersion.cs @@ -4,5 +4,5 @@ namespace CloakBrowser; public static class CloakVersion { /// The CloakBrowser .NET wrapper version. - public const string Version = "0.5.8"; + public const string Version = "0.5.9"; } diff --git a/js/package-lock.json b/js/package-lock.json index a958b6f..1a1603d 100644 --- a/js/package-lock.json +++ b/js/package-lock.json @@ -1,12 +1,12 @@ { "name": "cloakbrowser", - "version": "0.5.8", + "version": "0.5.9", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "cloakbrowser", - "version": "0.5.8", + "version": "0.5.9", "license": "MIT", "dependencies": { "tar": "^7.0.0" diff --git a/js/package.json b/js/package.json index 8778fa8..7f81f56 100644 --- a/js/package.json +++ b/js/package.json @@ -1,6 +1,6 @@ { "name": "cloakbrowser", - "version": "0.5.8", + "version": "0.5.9", "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",