Repetir os erros transitórios e as chaves de superfície falhadas (não forje a passagem)

FixTranslateService
Navios
10 de maio de 2026 às 04:33 UTC
Autor
Kamo
Enviar
c0a87b7

Dois modos de falha foram indistinguíveis na resposta, então o script Não conseguia diferenciá-los e continuou a "traduzir" as mesmas chaves para o inglês em cada execução de sincronização, com subconjuntos aleatórios sucedendo devido aos quais exatamente LibreTraduzir requisição aconteceu para terra durante um reinício do trabalhador: 1. O provedor errou (timeout, 5xx, conexão recusada no meio do reinício) 2. O provedor teve sucesso mas retornou fonte inalterada (legit "não tradução necessária" — substantivos adequados, marcas, etc.) Ambos acabaram escrevendo a fonte como a tradução. Alterações: * LibreTranslateProvider / BergamotProvider: 3 tentativas com 1s/3s backoff para falhas transitórias (5xx, 429, tempo limite, conexão 4xx (non-429) propaga-se imediatamente porque Um pedido mal-formado nunca vai ajudar. Por chamada tempo limite = 30s. Joga na exaustão de repetição em vez de retornar o texto fonte. * ProviderRouter: agora distingue "todos os provedores de suporte errou" (jogos) de "pelo menos um foi bem sucedido, mas retornou fonte" (passagem legítima — devolve texto). Sem apoios inalterados. ********************************** capturas por chave, coleta- os em uma nova lista de chaves falhadas na resposta, e omite chaves falhadas das mensagens. *BatchTranslateResponse: adiciona o campo failedKeys. * translate.ts: lê failedKeys, nunca escreve essas chaves de volta, então o recurso apiTranslated[key] ?? existente[key] deixa o anterior Valor em inglês – que na próxima execução satisfaz Cur===enVal e re-queues exatamente essas chaves para retry. Testes: testes de regressão adicionados para "todos os provedores errou lances", "em pelo menos um conseguiu com texto inalterado retorna texto", "router falthrough no erro primário transitório", e TranslationService particionamento correto em mensagens vs chaves falhadas.

Todas as alterações

Como o que vês no transporte?

Cada uma dessas atualizações pousa automaticamente em seu espaço de trabalho. Comece grátis e veja crescer semana após semana.

Começar Livre Para SempreVer Preços