Browser rendering upgraded to Chromium 149, automation fingerprints removed #
Every read that needs a real browser now runs on Chromium 149 (up from 143) through a patched automation layer. That covers /v2/perceive, the pages it renders for /v2/distill, /v2/ingest and /v2/watch, and the V1 URL-to-PDF, URL-to-image and URL-to-Markdown converters. The browser no longer exposes the signals bot-detection scripts most often use to spot automation: the DevTools Runtime.enable side effects and the --enable-automation switch are gone, so the old JavaScript-level stealth patches are no longer needed.
Nothing changes in the API. Requests, responses and options are the same, and render_quality counts JavaScript errors exactly as before, so scores stay comparable with earlier reads. js_code still runs in the page's own context and can read its globals, and a wait_for that times out still degrades to a warning. PDFs and screenshots now come from the newer Chromium, so layout can differ slightly from earlier captures of the same page.
- Private addresses blocked throughout a render. Iframes and redirects that point to private or internal network addresses are now blocked during rendering, just as the requested URL itself always was. Every redirect hop is checked, and a chain longer than 8 redirects now fails the read instead of being followed.
- Faster recovery after a browser crash. If the process that drives the browser dies, the next request relaunches it, where requests used to fail until the browser's scheduled restart.