Commit graph

73 commits

Author SHA1 Message Date
feder-cr
dd59c41bb5 docs: title + full subtitle 2026-07-01 04:01:46 +02:00
feder-cr
24ad6e4233 docs: shorten title 2026-06-30 20:27:22 +02:00
feder-cr
7914f3d006 docs: single-line title 2026-06-30 20:25:40 +02:00
feder-cr
050ec1aa61 docs: subtitle uses 'passes' 2026-06-30 20:24:42 +02:00
feder-cr
07a812c1f2 docs: short title + concise subtitle 2026-06-30 20:24:23 +02:00
feder-cr
1c942713aa docs: trim title 2026-06-30 19:45:35 +02:00
feder-cr
acc5c27d5b docs: make the title a one-line description 2026-06-30 19:45:08 +02:00
feder-cr
4cbe475473 docs: short title + concise description subtitle 2026-06-30 19:44:02 +02:00
feder-cr
1b22e1bb4a docs: put badges above the title 2026-06-30 19:36:59 +02:00
feder-cr
9ad2b1eee6 docs: drop Firefox version badge, merge LinkedIn into the badge row 2026-06-30 19:35:54 +02:00
feder-cr
dbffc52570 docs: shorten hero to a single line 2026-06-30 19:33:38 +02:00
feder-cr
81849a32d2 docs: refine hero tagline 2026-06-30 19:32:51 +02:00
feder-cr
e4c31427e3 docs: tighten hero tagline 2026-06-30 19:29:34 +02:00
feder-cr
f26df624c4 docs: trim hero tagline 2026-06-30 19:28:36 +02:00
feder-cr
4f882b550f docs: hero opens with the project name 2026-06-30 19:27:33 +02:00
feder-cr
74ad6d0fce docs: hero tagline reflects both pillars (real browser + human behavior) 2026-06-30 19:11:45 +02:00
feder-cr
cfa33e8756 docs: rewrite How it works around the two-question model (real browser + human behavior) 2026-06-30 19:07:26 +02:00
feder-cr
d85e407bbc docs: remove the How it compares section (clutter) 2026-06-30 04:00:07 +02:00
feder-cr
475cb3f4fc docs: swap order of How it compares and the proxy section 2026-06-30 03:58:53 +02:00
feder-cr
eeddb8fcde docs: promote the proxy section to a top-level heading 2026-06-30 03:56:03 +02:00
feder-cr
7e06d60f04 docs: truthful proxy framing (public/known IPs, not datacenter) 2026-06-30 01:47:09 +02:00
feder-cr
92b374a497 docs: bulleted How it works, bridge to solution, drop the suites claim 2026-06-30 01:38:52 +02:00
feder-cr
fa869c52b8 docs: merge the C++ paragraph into the intro (drop the subheading) 2026-06-30 01:30:10 +02:00
feder-cr
95b1e47e0c docs: align Proxies usage note to 90/10 for consistency 2026-06-29 18:07:13 +02:00
feder-cr
62007c21d8 docs: rewrite How it works (browser undetectable, proxy is the remaining variable) 2026-06-29 18:06:46 +02:00
feder-cr
6cca6b3a69 docs: sharpen the proxy framing (99% already flagged as proxies) 2026-06-29 17:48:35 +02:00
feder-cr
3046ca17d3 docs: phrase sx.org as a recommendation, not a partnership 2026-06-29 17:46:21 +02:00
feder-cr
2aa14d9b5b docs: drop the competitor-naming intro line in How it compares 2026-06-29 17:44:21 +02:00
feder-cr
0b5edf4e35 docs: note proxy partner in the Proxies usage section 2026-06-29 17:37:50 +02:00
feder-cr
0e6b0dddfe docs: add proxy partner note to How it works 2026-06-29 17:32:29 +02:00
feder-cr
2184f6f3c2 docs: restore C++ paragraph content, remove em-dashes 2026-06-25 04:32:32 +02:00
feder-cr
d35ac458a7 docs: remove LLM phrasing throughout README 2026-06-25 04:31:47 +02:00
feder-cr
567d921d5f docs: merge and trim C++ patch paragraphs 2026-06-25 04:30:01 +02:00
feder-cr
0b54484b63 docs: remove auth implementation detail from README 2026-06-25 04:28:44 +02:00
feder-cr
be940b0084 docs: remove preferences line from README 2026-06-25 04:27:32 +02:00
feder-cr
29df4e873c docs: shorten Chromium point in README 2026-06-25 04:26:40 +02:00
feder-cr
9b9e63972c docs: add educational disclaimer to README 2026-06-25 04:25:03 +02:00
feder-cr
168179eb03 docs: remove LLM phrasing from README 2026-06-25 04:23:59 +02:00
feder-cr
584ad97179 docs: README lists all 5 supported platforms + fetch --force
firefox-9 ships linux x86_64/arm64, windows x86_64 and macOS arm64/x86_64
since the CI pipeline; the README still said Windows+Linux only. Also
document the macOS quarantine step (ad-hoc signed, not notarized) and the
fetch --force flag added with firefox-9.
2026-06-10 11:10:49 +02:00
Federico
215b8801d7
Update README.md 2026-06-08 06:16:49 +02:00
Federico
e2bcd0cd4c
Update README.md 2026-06-06 15:24:23 +02:00
Federico
6f44e1af38
Update README.md 2026-06-06 15:19:45 +02:00
Federico
262d388b99
Update README.md 2026-06-06 07:51:46 +02:00
Federico
b7eda606a2
Update README.md 2026-06-06 07:50:00 +02:00
Federico
e3b8a42ded
Update README.md 2026-06-06 07:48:19 +02:00
Federico
26fa962d24
Update README.md 2026-06-06 05:45:37 +02:00
Federico
7b860b7398
Update README.md 2026-06-06 05:43:55 +02:00
feder-cr
f2664f96e1 feat: timezone="auto" resolves from any egress + weekly geoip auto-update
Refine timezone="auto" so it ALWAYS resolves (drop the "host" sentinel):
- ""/"auto" resolve from the proxy egress when a proxy is set, else from the
  host own public IP (direct lookup); an explicit zone is the only opt-out.
- on failure: with a proxy raise; without a proxy fall back to the host TZ.

GeoIP DB now auto-updates against daijro/geoip-all-in-one weekly rebuild:
cache the latest, re-check after GEOIP_REFRESH_DAYS (7), prune old tags,
reuse a stale cache offline; GEOIP_MMDB_VERSION is only the cold fallback.

tests: test_geo.py (37) + test_geoip_update.py; full unit suite 429 green
plus 8 live combinations (proxy / no-proxy / explicit / failing / freshness).
2026-06-06 05:16:20 +02:00
feder-cr
d6c3de7730 feat: timezone="auto" derives the zone from the proxy egress IP
A proxy in a different country paired with the host timezone is the
classic timezone_mismatch signal, so a session with a proxy and no
explicit timezone now resolves the zone automatically.

- discover the egress IP through the proxy (SOCKS via requests[socks]),
  map it to an IANA zone with an offline mmdb (daijro/geoip-all-in-one,
  downloaded + cached like the Firefox binary; GPL so not vendored)
- precedence: explicit zone wins; ""+proxy and "auto"+proxy resolve;
  ""/"auto" without a proxy stay host; "host"/"local" force host TZ
- fail-early when a proxy is set but the zone cannot be resolved, never
  a silent host-TZ fallback
- deps: requests[socks], maxminddb, tzdata (zoneinfo ships no DB on Windows)
- resolve_session_timezone / ensure_geoip_mmdb exported for integrations
2026-06-06 04:16:22 +02:00
Federico
143aff4bd2
docs: warn about true-headless gotcha in public config API (#27)
Live smoke test caught a footgun: passing headless=True directly to
playwright.firefox.launch() with our prefs puts Firefox in true
headless mode (no rendering pipeline) which breaks canvas/audio/WebGL
fingerprint coherence. InvisiblePlaywright translates user-facing
headless=True to Playwright headless=False + virtual display
automatically; the new public helpers do not, so the docstring +
README now flag this explicitly.

Verified: same prefs + headless=False via firefox.launch() reaches
bot.sannysoft.com with 23 passed / 0 failed, matching what
InvisiblePlaywright produces.
2026-05-28 17:19:26 -07:00