TodosNovoMelhoriaCorrigido
Corrigido

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.

Corrigido

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.

Corrigido

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.

Corrigido

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).

Corrigido

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.

Corrigido

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.

Corrigido

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.

Corrigido

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.

Corrigido

Acesso cross-origin restrito na API

Restringimos o acesso cross-origin para que apenas foura.ai possa chamar a API com credenciais. Também reforçamos um filtro de entrada no endpoint de métricas e removemos um segredo de fallback exclusivo de desenvolvimento. As integrações existentes não mudam.

Corrigido

Regras de validação personalizadas contam como sucesso

Se você definiu validate.status.accept em um request, o mecanismo trata um não-200 aceito como um sucesso limpo. O Activity ainda estava rotulando esses casos como falhas, o que distorcia suas estatísticas de uso. Os resultados agora seguem o seu veredito de validação, de modo que um 403 aceito por você aparece como sucesso, e não como App Fail.

Corrigido

Páginas não UTF-8 agora decodificam corretamente

Se você estava fazendo scraping de páginas em cirílico, chinês, japonês ou outras páginas não UTF-8 via Single, o corpo costumava retornar como mojibake. Nós forçávamos a decodificação de cada response como UTF-8 antes de você ver os bytes brutos. Agora lemos o charset do response (Content-Type, depois <meta charset>, depois fallback para UTF-8) e o decodificamos corretamente. Obrigado, Alexandar Kanchev (Sensika), por reportar isso.

Corrigido

Detectamos proxies falsos que ecoam seu request de volta

Alguns proxies em circulação não encaminham de fato o seu request. Eles o ecoam de volta como um dump de servidor em plaintext e tentam capturar o que está dentro. Agora detectamos esse padrão antes que o response chegue ao seu código, de modo que o Single, o Browser e o Proxy Finder retornam uma falha real (ou retry) em vez de lixo.

Corrigido

Proxies recém-descobertos chegam mais rápido ao pool

Corrigimos uma lentidão que deixava proxies recém-descobertos aguardando antes de serem validados. O Proxy Finder agora os verifica imediatamente, de modo que o pool permanece mais atualizado, com mais proxies ativos e funcionais em rotação.

Corrigido

Cookies do Playground seguem as regras host-only da RFC 6265

Cookies host-only estavam vazando para subdomínios. Rastreamos o atributo Domain corretamente agora e adicionamos um badge HO na visualização Parsed para o caso (incomum) host-only. A visualização Raw corresponde ao que o upstream enviou: Domain=.example.com para cookies de domínio, sem linha Domain= para host-only.

Corrigido

Campos do formulário do playground correspondem ao schema real da API

O endpoint Browser aceita apenas oito inputs (url, userAgent, headers, cookies, proxy, timeout_ms, checkStatus, checkText). O playground estava exibindo campos adicionais como wait_selector e viewport, que eram descartados silenciosamente na rede. Cada campo agora está alinhado ao schema: o Browser força GET, oculta o textarea do body, e a aba Raw mostra o JSON exato que chega à API, além de um reprodutor curl.