Cerebro Studio · Backlog · Changelog
RioNoTeatro • /www/wwwroot/rionoteatro.com.br/docs/changelog/2026/CL-2026-04-28-BK-275-hotfix-audio-copy-timeout-502.md • 2026-04-29T03:55:10.861Z

CL-2026-04-28 - BK-275 - Hotfix 502 no Gerar com IA do Texto para Audio

Resumo

O botao Gerar com IA da aba Texto para Audio deixou de bloquear a requisicao web aguardando IA. A acao agora cria um job pendente, redireciona o admin e processa a geracao em background.

Causa

O fluxo anterior chamava provedores de IA de forma sincrona dentro do POST audio_generate_with_ai. Como Gemini/Kimi/bridge podem levar 75-120s, o gateway podia encerrar a resposta antes do PHP terminar.

Mudancas

  • Nova action audio_generate_one_background.
  • Gerar com IA e Refazer com sugestao passaram a usar a action em background.
  • Extraida a rotina comum rnt_audio_process_pending_copy_job() para processar jobs pendentes.
  • O lote audio_generate_all_background passou a usar o mesmo executor.
  • O executor agora marca o job como processando antes de chamar IA.
  • Os timeouts do bridge Gemini/Kimi foram reduzidos para fallback mais rapido quando o provedor trava.
  • O job ativo agora exibe alerta de status e a pagina faz auto-refresh enquanto estiver pendente ou processando.
  • Erros terminais do Gemini direto, como quota/billing/rate-limit, agora pulam o bridge e caem em fallback rapido.
  • Por decisao operacional posterior, o provider gemini do Texto para Audio deixou de usar chave/API Google e passou a chamar sempre o Gemini CLI local logado na VPS.
  • Mantido o fluxo antigo audio_generate_with_ai no arquivo para compatibilidade, mas os formularios visiveis nao dependem mais dele.

Validacoes

  • php -l admin/modulos/campanhas/redes_sociais/texto_for_audio.php
  • php -l admin/modulos/campanhas/redes_sociais/audio_common.php
  • Conferencia de actions com rg.
  • Teste real do job #13: redirect rapido confirmado; o bridge Gemini deu timeout e o job foi salvo como fallback com textos.
  • Teste real do job #14: fallback confirmado; diagnostico local isolou Gemini com quota excedida, OpenAI com chave invalida e Kimi sem JSON/timeout.
  • Teste PHP isolado do Gemini CLI: ok=1, provider=gemini, model=gemini_cli_default, 3 versoes geradas em cerca de 15s.

Pendencias

  • Novo teste autenticado no painel em producao usando Gemini CLI.
  • Evoluir auto-refresh simples para polling AJAX se a tela precisar acompanhar muitos jobs ao mesmo tempo.
  • OpenAI segue fora do caminho principal do Texto para Audio; se voltar a ser opcao operacional, trocar/remover a chave invalida.
  • Discord por ultimo.