WszystkieNoweUlepszoneNaprawione
Naprawione

Auto no longer accepts challenge pages as success

If you passed a negative validate to /api/auto (like {data: {fail: ['"Due to legal reasons"']}}), a Cloudflare 'Just a moment' interstitial could slip through as a cached success because the fail-list didn't happen to match its text. Auto now rejects challenge pages before applying your validate rules, and it swaps the bad exit and re-solves instead of scoring it.

Naprawione

Long foura_auto calls now complete through the hosted MCP

If you set a long timeout on foura_auto through the hosted MCP server, the request could time out at the edge before your call finished. That's fixed. Full-budget auto calls now run their 180-second budget end to end.

Naprawione

Auto spreads concurrent load across multiple exits

If you've been hitting 429s when firing many concurrent Auto calls at one target, those calls used to funnel onto a single cached exit because the warm path picked the score-favourite and replayed once. Auto now opens additional sessions on demand and routes each call to the least-loaded exit, so a burst fans out across multiple proxy IDs instead of hammering one. Measured locally: a 100-call burst on a no-cookie portable host now spreads across the grown pool within seconds.

Naprawione

Clean Cloudflare pages skip the browser solve

Cloudflare injects a passive script even on pages that pass cleanly, and Auto used to treat any reference to it as an active challenge and run a full browser solve anyway. Now only true interstitial markers (the 'just a moment' page and friends) trigger the browser path; a clean 200 comes back from the cheaper proxy rung. Auto also follows up to 5 redirects by default (configurable via followRedirects).

Naprawione

Browser captures the real status after Cloudflare clears

When a Cloudflare-protected target served a real geo-block page (451) after the challenge passed, the Browser product was reporting it as a 200 because the watcher hardcoded the cleared status. The watcher now reads the actual post-clearance Document, so a 200 stays 200, a 451 surfaces as 451, and Auto rejects the wrong content and keeps searching for an exit that genuinely matches your validate rules.

Naprawione

Cmd+K opens on non-Latin keyboards

The Cmd+K (Ctrl+K) shortcut now opens the command palette and search modal regardless of keyboard layout. We were matching the typed character (к on a Cyrillic layout), so anyone on a non-Latin layout got nothing. Now we match the physical key. Fixed across the main site, the blog, and the docs.

Naprawione

Auto requests stop 504-ing on cold solves

A cold Auto solve can run several minutes (proxy grind plus a browser solve). Our HTTP edge was capping requests at 2 minutes and returning a plain HTML 504, so the longest solves looked like a gateway failure even when the orchestrator was still working. We extended the edge timeout past Auto's worst-case run and switched /api/ error pages to JSON, so any error from any layer reads as JSON your client can parse.

Naprawione

Auto amortizes to 2 credits on repeat requests

Cookie-reusable sites (bet365 was the canary) were sticking on the expensive browser solve at 15 credits per request instead of dropping to the cheap 2-credit replay after the first solve. Two bugs: the latch fired on any transient transport error, and a successful browser replay never refreshed the session cookies. Fixed both. Repeat requests on a cookie-reusable site now cost 2 credits after the first solve, exactly as the pricing implies.

Naprawione

Ograniczenie dostępu cross-origin w API

Ograniczyliśmy dostęp cross-origin, tak aby tylko foura.ai mogło wywoływać API z poświadczeniami. Zabezpieczyliśmy również filtr wejściowy na endpoincie metrics i usunęliśmy fallback secret używany wyłącznie w środowisku deweloperskim. Istniejące integracje działają bez zmian.

Naprawione

Własne reguły walidacji liczą się jako sukces

Jeśli ustawisz validate.status.accept w request, silnik traktuje zaakceptowany kod non-200 jako pełny sukces. Activity wciąż jednak oznaczało je jako błędy, co zaburzało statystyki użycia. Wyniki są teraz zgodne z Twoim werdyktem walidacji, więc zaakceptowany kod 403 wyświetla się jako sukces, a nie App Fail.

Naprawione

Strony non-UTF-8 dekodują się teraz poprawnie

Jeśli scrapowałeś strony w cyrylicy, po chińsku, japońsku lub inne strony non-UTF-8 przez Single, body wracało jako mojibake. Wymuszaliśmy dekodowanie każdego response jako UTF-8, zanim zobaczyłeś surowe bajty. Teraz czytamy charset z response (Content-Type, potem <meta charset>, a na końcu fallback do UTF-8) i dekodujemy go poprawnie. Dzięki, Alexandar Kanchev (Sensika), za zgłoszenie tego.

Naprawione

Wykryliśmy fałszywe proxy, które odsyłają Twoje requesty

Niektóre proxy w sieci tak naprawdę nie przekazują Twoich requestów. Odsyłają je jako zrzut serwera w formacie plaintext i próbują przechwycić ich zawartość. Wykrywamy teraz ten schemat, zanim response trafi do Twojego kodu, dzięki czemu Single, Browser i Proxy Finder zwracają jasny błąd (lub ponawiają próbę) zamiast śmieciowych danych.

Naprawione

Nowo odkryte proxy szybciej trafiają do puli

Usunęliśmy spowolnienie, przez które nowo odkryte proxy czekały na walidację. Proxy Finder sprawdza je teraz natychmiast, dzięki czemu pula pozostaje świeższa, a w rotacji znajduje się więcej aktywnych, działających proxy.

Naprawione

Cookie w Playground zgodne z regułami host-only RFC 6265

Cookie host-only wyciekały do poddomen. Teraz prawidłowo śledzimy atrybut Domain i dodaliśmy oznaczenie HO w widoku Parsed dla (rzadkich) przypadków host-only. Widok Raw odpowiada temu, co przesłał upstream: Domain=.example.com dla cookie domenowych, brak linii Domain= dla host-only.

Naprawione

Pola formularza w playgroundzie są zgodne z rzeczywistym schematem API

Endpoint Browser akceptuje tylko osiem parametrów wejściowych (url, userAgent, headers, cookies, proxy, timeout_ms, checkStatus, checkText). W playgroundzie wyświetlały się wcześniej dodatkowe opcje, takie jak wait_selector i viewport, które były po cichu odrzucane podczas przesyłania. Każde pole jest teraz zgodne ze schematem: Browser wymusza GET, ukrywa pole tekstowe body, a zakładka Raw pokazuje dokładny JSON trafiający do API oraz polecenie curl do odtworzenia żądania.