From 06815c9afb3d4b3072979399dab6f92b84310a6e Mon Sep 17 00:00:00 2001 From: feder-cr <85809106+feder-cr@users.noreply.github.com> Date: Fri, 24 Jul 2026 13:24:47 +0200 Subject: [PATCH] deps: cap Playwright at the latest tested version (<=1.61.0), bump 0.3.3 The upper bound was an open <1.62, which would let an untested future 1.61.x (or anything below 1.62) install and potentially break a fresh setup the way 1.61 first did. Cap it at the exact version validated against this binary, 1.61.0, so only versions we have tested can be pulled in. The cap moves forward on purpose, once a newer Playwright is validated against the binary. --- CHANGELOG.md | 2 +- pyproject.toml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b171f61..f08eb46 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), ## [Unreleased] ### Changed -- Playwright pin moved to `>=1.55,<1.62` (was `>=1.55,<1.56`). The `firefox-18` binary rebases onto Firefox 151, which is what the latest Playwright (1.61) pairs with, so 1.61 now drives the binary natively - no more pinning to an older client. Both ends of the range were tested against the new binary (full browser suite on 1.61; drift-free protocol on 1.55). `scripts/playwright_pin.txt` -> 1.61.0. +- Playwright pin moved to `>=1.55,<=1.61.0` (was `>=1.55,<1.56`). The `firefox-18` binary rebases onto Firefox 151, which is what the latest Playwright (1.61) pairs with, so 1.61 now drives the binary natively - no more pinning to an older client. Both ends of the range were tested against the new binary (full browser suite on 1.61; drift-free protocol on 1.55). The upper bound is capped at the exact latest tested version (1.61.0) rather than an open `<1.62`, so a Playwright release we have not validated against this binary cannot be pulled in and break a fresh install; the cap moves forward deliberately, once a new version is tested. `scripts/playwright_pin.txt` -> 1.61.0. ### Added - `timezone="auto"`: the browser timezone is auto-derived from the egress IP. By default (no explicit timezone) it ALWAYS resolves — from the proxy egress when a proxy is set, otherwise from the host's own public IP — so the zone can never disagree with the IP (the classic `timezone_mismatch` signal). An explicit `"Area/City"` is the only way to force a specific zone. On failure: with a proxy the launch raises (no silent host-TZ fallback behind a foreign proxy); without a proxy it falls back to the host TZ so a transient lookup can't break the launch. diff --git a/pyproject.toml b/pyproject.toml index b45f9b2..c2149cb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "invisible-playwright" -version = "0.3.2" +version = "0.3.3" description = "Playwright wrapper for a patched Firefox with deterministic stealth profile." readme = "README.md" requires-python = ">=3.11" @@ -27,11 +27,11 @@ dependencies = [ # Pinned to the Juggler client we actually test against (scripts/playwright_pin.txt, # 1.55.x). Playwright 1.61 added an isMobile field to Browser.setDefaultViewport that # the FF150 Juggler does not accept, which breaks the session (issue #48). - "playwright>=1.55,<1.62", + "playwright>=1.55,<=1.61.0", ] [project.optional-dependencies] -dev = ["pytest>=7", "pytest-mock>=3", "responses>=0.24", "build>=1", "pytest-rerunfailures>=14", "playwright>=1.55,<1.62"] +dev = ["pytest>=7", "pytest-mock>=3", "responses>=0.24", "build>=1", "pytest-rerunfailures>=14", "playwright>=1.55,<=1.61.0"] [tool.pytest.ini_options] markers = [