diff --git a/CHANGELOG.md b/CHANGELOG.md index ded489f..b16ad2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,13 @@ Changes are tagged: **[wrapper]** for Python/JS wrapper, **[binary]** for Chromi --- +## [0.3.18] — 2026-03-15 + +- **[wrapper]** Fix welcome banner printing to stdout — now writes to stderr so it won't corrupt JSON output in programmatic usage (fixes #59) +- **[wrapper]** Fix `cloakserve` Docker WebGL by adding `--ignore-gpu-blocklist` flag +- **[docs]** Add Crawlee integration example +- **[meta]** Add GitHub issue template for bug reports + ## [0.3.17] — 2026-03-15 - **[binary]** Windows x64 build upgraded to 145.0.7632.159.7 — 33 source-level C++ patches, matching Linux diff --git a/cloakbrowser/_version.py b/cloakbrowser/_version.py index f7e5c1d..50d85c8 100644 --- a/cloakbrowser/_version.py +++ b/cloakbrowser/_version.py @@ -1 +1 @@ -__version__ = "0.3.17" +__version__ = "0.3.18" diff --git a/cloakbrowser/download.py b/cloakbrowser/download.py index 1608f91..daf9819 100644 --- a/cloakbrowser/download.py +++ b/cloakbrowser/download.py @@ -12,6 +12,7 @@ import os import platform import stat import subprocess +import sys import tarfile import tempfile import threading @@ -55,14 +56,14 @@ def _show_welcome() -> None: marker = get_cache_dir() / ".welcome_shown" if marker.exists(): return - print() - print(" CloakBrowser — stealth Chromium for automation") - print(" https://github.com/CloakHQ/CloakBrowser") - print() - print(" Issues? https://github.com/CloakHQ/CloakBrowser/issues") - print(" Donate? https://ko-fi.com/cloakhq") - print(" Star us if CloakBrowser helps your project!") - print() + sys.stderr.write("\n") + sys.stderr.write(" CloakBrowser — stealth Chromium for automation\n") + sys.stderr.write(" https://github.com/CloakHQ/CloakBrowser\n") + sys.stderr.write("\n") + sys.stderr.write(" Issues? https://github.com/CloakHQ/CloakBrowser/issues\n") + sys.stderr.write(" Donate? https://ko-fi.com/cloakhq\n") + sys.stderr.write(" Star us if CloakBrowser helps your project!\n") + sys.stderr.write("\n") try: marker.parent.mkdir(parents=True, exist_ok=True) marker.write_text("") diff --git a/js/package.json b/js/package.json index 9a056d6..f9e507a 100644 --- a/js/package.json +++ b/js/package.json @@ -1,6 +1,6 @@ { "name": "cloakbrowser", - "version": "0.3.17", + "version": "0.3.18", "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/download.ts b/js/src/download.ts index be614fc..c4f5f3a 100644 --- a/js/src/download.ts +++ b/js/src/download.ts @@ -146,14 +146,14 @@ export async function checkForUpdate(): Promise { function showWelcome(): void { const marker = path.join(getCacheDir(), ".welcome_shown"); if (fs.existsSync(marker)) return; - console.log(); - console.log(" CloakBrowser — stealth Chromium for automation"); - console.log(" https://github.com/CloakHQ/CloakBrowser"); - console.log(); - console.log(" Issues? https://github.com/CloakHQ/CloakBrowser/issues"); - console.log(" Donate? https://ko-fi.com/cloakhq"); - console.log(" Star us if CloakBrowser helps your project!"); - console.log(); + console.error(); + console.error(" CloakBrowser — stealth Chromium for automation"); + console.error(" https://github.com/CloakHQ/CloakBrowser"); + console.error(); + console.error(" Issues? https://github.com/CloakHQ/CloakBrowser/issues"); + console.error(" Donate? https://ko-fi.com/cloakhq"); + console.error(" Star us if CloakBrowser helps your project!"); + console.error(); try { fs.mkdirSync(getCacheDir(), { recursive: true }); fs.writeFileSync(marker, "");