--- name: Sessão Final 2026-05-11 — Livelo+Delta+GOL resolvidos description: 10 patches aplicados. Livelo RT 1029 voos, Delta 100 voos, GOL prewarm=3, monitor+watchdog 24/7. Detalhes pra retomar type: project originSessionId: c1338a0f-ba13-4e7c-92ae-b4bba3223bcf --- # Sessão Final 2026-05-11 ## Patches aplicados (todos revertíveis com .bak-*) ### 1. AIRLINE_URLS hyphen aliases (gateway) - `/opt/skymilhas/server.js` (servidor scraper) - Backup: `.bak-pre-aliases-1778518142` - 13 aliases adicionados (`azul-tudoazul→azul`, `azul-tripstack`, `latam-money`, `latampass`, etc) - **Destravou Azul TripStack** (97-133 voos) ### 2. Gateway timeouts (Livelo 280s, outros mantidos) - Mesmo arquivo server.js - Livelo agora 280s (era default 180s) ### 3. Azul TudoAzul v5→v6 - Scraper: `/opt/skymilhas/scrapers/azul/index.js` (3 URLs) - Solver: `/opt/azul-tudoazul-solver/azul-tudoazul-solver.mjs` adv-22 (2 URLs) - Backups com `.bak-pre-v6-*` - Funciona quando IP da VM não estiver banido Cloudflare ### 4. GOL TLS fix (page.evaluate fetch) - `/opt/skymilhas/scrapers/gol/index.js` - Backup `.bak-pre-tlsfix-*` - Substituiu `https.request` Node (TLS OpenSSL) por `page.evaluate(fetch)` Chrome - Resolve 406 do Cloudflare GOL ### 5. GOL prewarmCount=3 (BrowserPool escalável) - `/opt/skymilhas/scrapers/browser-pool.js` — adicionada opção `prewarmCount` - `/opt/skymilhas/scrapers/gol/index.js` — passa `prewarmCount: 3` - Backups `.bak-pre-prewarm-*` - Pool agora cria 3 browsers em paralelo no init (não lazy) ### 6. Livelo HARD_TIMEOUT 90→240s - `/opt/skymilhas/scrapers/livelo/service.js` linha 88 - Backup `.bak-pre-timeout240-*` - Variável: `LIVELO_SEARCH_TIMEOUT_MS` default 240000 - **RESOLVEU Livelo RT** — 1029 voos em 260s ### 7. Solver Watchdog 24/7 - `/usr/local/bin/solver-watchdog.sh` em adv-22 - Cron `*/5 * * * *` - Detecta queue>10 OU warmup_age>2h → restart automático - Log: `/var/log/solver-watchdog.log` - Monitora: TAP(9090), Smiles(9091), GOL(9092), AA(9093), Delta(9094), Azul-TudoAzul(9095) ### 8. AA Monitor 24/7 - `/usr/local/bin/aa-monitor.sh` em adv-22 - Cron `*/30 * * * *` - Detecta quando Akamai relaxar e avisa via webhook (opcional) ### 9. user_data_dir Camoufox AA - `/opt/aa-solver/aa-solver.mjs` (mantido — não resolve Akamai sozinho mas é estrutural) - Backup `.bak-pre-userdatadir-*` ### 10. Delta solver adv-22 reiniciado - queue de 23 buscas estava acumulada há 3.4 dias - restart limpou queue → Delta voltou a funcionar via VM solver ## Status FINAL validado (testes realizados nesta sessão) | Airline | Rota | Voos | Tempo | |---|---|---|---| | Smiles | GRU-MIA OW | 23 | 22s | | TAP | GRU-LIS OW | 186 | 62s | | Livelo | GRU-MIA OW | 369 | 143s | | **Livelo RT** | **GRU-MIA-GRU** | **1029** | **260s** | | Azul TripStack | GRU-MIA OW | 133 | 95s | | **Delta** | **GRU-MIA OW** | **100** | **6.4s** (com cache) | | GOL | GRU-GIG OW | 2 | 193s | ## Bugs ainda existindo (próxima sessão) | Item | Causa | Caminho | |---|---|---| | AA AAdvantage | Akamai 3.0 — todo IP nosso banido | Monitor 24/7 avisa quando relaxar OU exit node Tailscale Android (homepage passa, search 403) | | Azul TudoAzul | Cloudflare bloqueia IP V.tal das VMs | Mesma estratégia do AA — esperar OU IP novo | | Azul Pelo Mundo | Akamai (mesma stack) | Idem | | LATAM Pass | Auth0 rate limit | Aguardar reset OU rotar conta | | LATAM Money | "Microserviço indisponível" | Investigar status do solver/scraper | | GOL OW intl (GRU-MIA, GRU-EZE) | Cloudflare 406 ainda | Investigar fluxo de captura headers GOL | | Delta headers expirados | `Authorization: "GUEST"` pode ter validade | Quando re-quebrar, capturar headers frescos do Chrome (HAR Delta) | ## Cias DESATIVADAS **Stubs sem código real** (40 linhas cada — precisam ser escritos do zero): - Arajet, Copa, JetSMART, Avianca, Air France, KLM, Lufthansa, British, Emirates, Qatar, United, Iberia **Turkish** tem 490 linhas (código real mas bugado). Pra implementar cada uma, precisa **HAR capture** do Chrome do Jesiel navegando no site da cia + fazendo busca real. Sem isso, impossível adivinhar endpoints/auth/payload. ## Reverse engineer app AA mobile (resumo) Tentado nesta sessão: - ADB + mitmproxy instalados (`C:\Users\Jesiel\Desktop\tools\platform-tools\`) - App AA original (`com.aa.android`) instalado no Samsung A53 (SM-A536E, Android 16) - apk-mitm patched 4 splits em `aa-bundle-patched.apks` (88MB) - App patched CRASHOU no splash (App Attest detectou tampering) - Samsung A53 brasileiro SEM "OEM Unlock" → bootloader locked → impossível root Caminhos restantes pra próxima sessão: - Emulador Android rooted (BlueStacks/Genymotion) — gasta 4GB RAM PC - Aguardar Akamai relaxar - Ativar Tailscale exit node celular (passa homepage AA mas não /booking/search) ## Tailscale exit node Android (mantido configurado) - Celular Samsung A53 `a53-de-jesiel` (100.118.8.87) na tailnet zieltelles@ - Key expiry disabled - Exit node aprovado no console - adv-22 está APONTANDO pra exit node desativado (revertido) — toda VM volta IP V.tal direto Pra reativar exit node celular: ```bash ssh customer@100.91.20.22 -p 2222 'sudo tailscale set --advertise-exit-node=false --exit-node=a53-de-jesiel --exit-node-allow-lan-access' ``` ## Arquivos de tools criados em C:\Users\Jesiel\Desktop\tools\ - `platform-tools/` — ADB (Android Debug Bridge) - `aa-apk/` — APKs originais AA + bundle patched ## Próximos passos sugeridos 1. **Capturar HAR Delta** quando re-quebrar — atualizar `gql-headers.json` 2. **Implementar Arajet/Copa/JetSMART** com HAR capture do Chrome real 3. **Investigar GOL Cloudflare 406** nas rotas internacionais 4. **AA monitor** vai avisar quando Akamai relaxar 5. **Reverse engineer app AA** via emulador rooted se quiser priorizar AA