ToutNouveauAmélioréCorrigé
Corrigé

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.

Corrigé

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.

Corrigé

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.

Corrigé

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

Corrigé

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.

Corrigé

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.

Corrigé

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.

Corrigé

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.

Corrigé

Restriction de l'accès cross-origin sur l'API

Nous avons renforcé l'accès cross-origin pour que seul foura.ai puisse appeler l'API avec des credentials. Nous avons également renforcé un filtre d'entrée sur l'endpoint de métriques et supprimé un secret de fallback réservé au développement. Les intégrations existantes ne changent pas.

Corrigé

Les règles de validation personnalisées comptent comme des succès

Si vous avez défini validate.status.accept sur une requête, le moteur traite un non-200 accepté comme un succès net. L'activité les marquait toujours comme des échecs, ce qui faussait vos statistiques d'utilisation. Les résultats suivent désormais votre verdict de validation, de sorte qu'un 403 que vous avez accepté s'affiche comme un succès, et non comme un App Fail.

Corrigé

Les pages non-UTF-8 se décodent désormais correctement

Si vous scrappiez des pages en cyrillique, chinois, japonais ou d'autres pages non-UTF-8 via Single, le corps de la réponse s'affichait sous forme de mojibake. Nous forcions le décodage de chaque response en UTF-8 avant que vous ne puissiez voir les octets bruts. Désormais, nous lisons le charset depuis la response (Content-Type, puis <meta charset>, puis repli sur UTF-8) et le décodons correctement. Merci à Alexandar Kanchev (Sensika) pour avoir signalé ce problème.

Corrigé

Détection des faux proxies qui renvoient votre request en écho

Certains proxies en circulation ne transfèrent pas réellement votre request. Ils la renvoient en écho sous forme de dump de serveur en texte brut et tentent d'en extraire le contenu. Nous détectons désormais ce pattern avant que la response n'atteigne votre code, ainsi Single, Browser et Proxy Finder renvoient tous un échec explicite (ou un retry) au lieu de données inutilisables.

Corrigé

Les nouveaux proxies intègrent le pool plus rapidement

Nous avons corrigé un ralentissement qui mettait en attente les proxies nouvellement découverts avant leur validation. Proxy Finder les vérifie désormais immédiatement, ce qui maintient le pool plus à jour avec davantage de proxies actifs et fonctionnels en rotation.

Corrigé

Les cookies du Playground respectent les règles host-only de la RFC 6265

Les cookies host-only fuyaient vers les sous-domaines. Nous suivons désormais correctement l'attribut Domain et avons ajouté un badge HO dans la vue Parsed pour le cas (rare) du host-only. La vue Raw correspond à ce que l'upstream a envoyé : Domain=.example.com pour les cookies de domaine, et aucune ligne Domain= pour le host-only.

Corrigé

Les champs du playground correspondent au schéma réel de l'API

L'endpoint Browser n'accepte que huit paramètres (url, userAgent, headers, cookies, proxy, timeout_ms, checkStatus, checkText). Le playground affichait auparavant des options supplémentaires comme wait_selector et viewport qui étaient ignorées silencieusement lors de l'envoi. Chaque champ est désormais conforme au schéma : Browser force la méthode GET, masque le textarea body, et l'onglet Raw affiche le JSON exact envoyé à l'API ainsi qu'une commande curl pour reproduire la requête.