Destaques
Muitos sites entregam a página inicial para qualquer um e bloqueiam tudo o que está a um clique de distância. O Auto agora entra pela porta da frente: ele pega a session que a página de entrada entrega e depois solicita a página que você queria carregando essa session. O Browser recebeu o trabalho mais pesado esta semana. Ele conclui a verificação de checkbox de um site quando várias requests chegam à mesma página ao mesmo tempo, e quando uma página permanece fechada, ele relata o que viu em vez de uma única palavra vazia.
Novidades
Auto abre páginas protegidas por session
Um anúncio do eBay recusa uma cold request em todas as rotas que temos. A mesma URL abre quando a request carrega o cookie jar que a própria página de entrada do eBay entrega a qualquer visitante. Sem login, sem conta emprestada, nada que você não pudesse fazer manualmente em uma aba.
O Auto faz isso por você agora. Quando um exit alcança a origem e ainda tem a deep page recusada, o Auto busca a raiz do site através desse mesmo exit, mantém os cookies retornados e solicita novamente. A response informa que isso aconteceu: o rung vencedor indica warmup.
Mas o custo é a parte interessante. Essa session retorna portátil, então o jar não fica preso ao exit que o obteve. Leituras seguintes são reproduzidas via /api/proxy e chegam em /api/single a 2 créditos. É a mesma cadeia de escalada e repetição sobre a qual escrevemos para o clearance do Cloudflare, com os cookies de session do próprio vendor substituindo o cf_clearance.
Limitado de propósito: duas tentativas por request, em exits diferentes, apenas depois que a URL profunda já falhou, e somente quando o exit alcançou a origem inicialmente. Assim, um site que simplesmente nos bloqueia gera duas subchamadas extras uma única vez, não um loop. Mais detalhes sobre como a ladder escolhe seus rungs no artigo sobre o Auto.
Browser resolve desafios de checkbox quando há sobreposição de requests
O Browser agora conclui a verificação de checkbox em requests concorrentes para a mesma página. Três simultâneas em um site de notícias atrás do Turnstile: 5,2s, 5,8s, 9,1s.
Duas mudanças menores acompanharam. Um clique conta apenas quando o widget realmente desaparece, porque o Cloudflare reemite seu desafio com mais frequência do que você esperaria (o primeiro clique quase nunca encerra a conversa). E uma página liberada relata defenseSolved: true na chamada que a liberou, que é a mesma chamada cobrada pelo solve.
Uma página bloqueada informa o que o solver viu
"Timeout" sugere latência. Na maioria das vezes, a latência não é o problema e a resposta está a um exit de distância.
Quando o serviço de verificação rejeita uma tentativa, ele reemite o teste e insere seu próprio marcador de retry no jar. O Browser lê esse marcador. Em vez de esperar o tempo limite se esgotar, ele responde em cerca de 17 segundos, identificando o vendor, os cliques realizados e se o clearance foi concedido:
Timeout after 12s: the cloudflare challenge did not complete from this exit
(2 checkbox presses, clearance granted, challenge re-issued by the site)
Uma dessas linhas diz para você enviar a request de uma forma diferente. A outra não diz nada.
Erros da camada de API também são lidos de forma mais direta. Uma request que excede o tempo de espera retorna como timeout, um serviço que não conseguimos alcançar retorna como indisponível, e nenhum deles é descrito como um problema de proxy quando a request não usava proxy algum. timeout_ms em uma chamada do Browser é respeitado até o limite de 120 segundos que a API aceita, para que um destino lento receba o orçamento que você definiu e você leia o próprio veredito do mecanismo, e não o do gateway. Os parâmetros estão listados na referência da API.
Dados de faturamento e correção de faturas no mês de emissão
As faturas búlgaras imprimem o representante da empresa (MOL) no campo do destinatário. Nada no sistema coletava essa informação, então essa linha sempre ficava em branco. O campo agora existe nos detalhes de faturamento.
A tabela de Faturas também oferece Atualizar detalhes em uma fatura que ainda está dentro do mês de emissão e cujos dados congelados diferem do seu perfil de faturamento atual. O diálogo informa cada campo alterado e o novo valor, deixa claro que o número, as datas e os valores permanecem os mesmos, e a confirmação é o seu consentimento, registrado do nosso lado. Uma fatura dentro do prazo sem nada para alterar exibe "Editável até" e a respectiva data, para que o período seja algo visível para você, e não algo descoberto depois.
Por baixo dos panos
Cada script executado pelo Dashboard é servido a partir da nossa própria origem, e o login retorna você apenas para um caminho neste site.
Os rollouts do serviço de renderização ocorrem em um servidor por vez, e cada servidor precisa atender a uma página real antes que o próximo seja atualizado.
No portal de status, o endpoint de issues fornece itens abertos e resolvidos por meio de sua API pública, correspondendo ao que a página lista.
Uma recusa explícita custa uma única chamada. Uma espera que termina em "Timeout" é apenas uma suposição sobre o que tentar a seguir, cobrada pelo mesmo preço. Erros são parte da superfície do produto, e esta semana começamos a tratá-los como tal.