TodoNuevoMejoradoCorregido
Corregido

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.

Corregido

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.

Corregido

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.

Corregido

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

Corregido

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.

Corregido

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.

Corregido

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.

Corregido

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.

Corregido

Acceso cross-origin restringido en la API

Hemos restringido el acceso cross-origin para que solo foura.ai pueda llamar a la API con credenciales. También hemos reforzado un filtro de entrada en el endpoint de métricas y eliminado un secreto de respaldo exclusivo para desarrollo. Las integraciones existentes no cambian.

Corregido

Las reglas de validación personalizadas cuentan como éxito

Si has configurado validate.status.accept en un request, el motor trata un no 200 aceptado como un éxito limpio. Activity seguía etiquetando estos casos como fallos, lo que descuadraba tus estadísticas de uso. Ahora los resultados siguen tu veredicto de validación, por lo que un 403 aceptado aparece como éxito, no como App Fail.

Corregido

Las páginas no UTF-8 ahora se decodifican correctamente

Si estaba haciendo scraping de páginas en cirílico, chino, japonés u otras páginas no UTF-8 a través de Single, el cuerpo solía devolverse como mojibake. Forzábamos la decodificación de cada respuesta como UTF-8 antes de que pudiera ver los bytes sin procesar. Ahora leemos el charset de la respuesta (Content-Type, luego <meta charset>, y fallback de UTF-8) y lo decodificamos correctamente. Gracias a Alexandar Kanchev (Sensika) por reportar esto.

Corregido

Detectamos proxies falsos que hacen eco de tu request

Algunos proxies en la red en realidad no reenvían tu request. Lo devuelven como un eco en forma de volcado de servidor en texto plano e intentan extraer lo que hay dentro. Ahora detectamos ese patrón antes de que la response llegue a tu código, por lo que Single, Browser y Proxy Finder devuelven un fallo honesto (o un reintento) en lugar de basura.

Corregido

Los proxies recién descubiertos llegan más rápido al pool

Corregimos una ralentización que hacía esperar a los proxies recién descubiertos antes de ser validados. Proxy Finder ahora los verifica de inmediato, por lo que el pool se mantiene más actualizado con más proxies activos y operativos en rotación.

Corregido

Las cookies de Playground siguen las reglas host-only de la RFC 6265

Las cookies host-only se estaban filtrando a los subdominios. Ahora rastreamos el atributo Domain correctamente y añadimos una etiqueta HO en la vista Parsed para el caso (poco común) de host-only. La vista Raw coincide con lo que envió el upstream: Domain=.example.com para las cookies de dominio, sin línea Domain= para host-only.

Corregido

Los campos del playground coinciden con el esquema real de la API

El endpoint Browser acepta solo ocho parámetros (url, userAgent, headers, cookies, proxy, timeout_ms, checkStatus, checkText). El playground mostraba opciones adicionales como wait_selector y viewport que se descartaban silenciosamente en la red. Ahora todos los campos están alineados con el esquema: Browser fuerza el método GET, oculta el área de texto del body y la pestaña Raw muestra el JSON exacto que llega a la API junto con un comando cURL de reproducción.