Log de Desenvolvimento Plugin Geraaipro

[2026-09-11 11:10] – Lançamento Oficial da Versão v2.0.5 [v2.0.5]

  • Status: Sucesso
  • Arquivos Modificados:
    • geraaipro.php (Atualizada a versão do plugin no cabeçalho para 2.0.5 e na constante GAP_VERSION para '2.0.5')
    • core/class-gap-rss-scraper.php (Integração total do Autoblog RSS com o histórico central gap_jobs marcando is_feed: 1, vínculo de _gap_job_id e suporte a execução sob demanda com bypass manual)
    • admin/class-gap-admin.php (Exibição do badge 📡 Feed no Histórico Geral, botões diretos de Ver/Editar, retro-sincronização de posts anteriores de RSS para a lista global e diagnóstico de 0 posts)
  • Alterações:
    • Bump de Versão para v2.0.5: Consolidação do pacote com as novidades de Autoblog RSS no Histórico Completo, Badge Feed, execução manual transparente e links diretos de ação no dashboard.

[2026-09-11 11:05] – Unificação de Posts do Autoblog RSS no Histórico Completo com Badge Feed [v2.0.5]

  • Status: Sucesso
  • Arquivos Modificados:
    • core/class-gap-rss-scraper.php (Atualizado o processamento de feeds para, além de gravar no histórico dedicado gap_feed_history, registrar imediatamente uma entrada na tabela de histórico geral gap_jobs com status: 'published', post_id, metadados is_feed: 1, ID do feed, nome do feed e URL original, vinculando o meta _gap_job_id no post WordPress)
    • admin/class-gap-admin.php (Adicionado o badge 📡 Feed no Dashboard/Histórico Geral quando is_feed == 1, destacando a origem do feed no subtítulo; Adicionados links diretos de ‘Ver’ e ‘Editar’ post; Implementada rotina de retro-sincronização automática para importar posts de feeds já gerados no histórico dedicado que ainda não constavam no histórico geral)
  • Alterações:
    • Histórico Completo Centralizado: Todos os posts gerados via Autoblog RSS agora aparecem no Histórico Geral do painel principal, permitindo visualização centralizada junto com os posts Single e Bulk.
    • Identificação Visual Clara: O badge exclusivo 📡 Feed permite diferenciar instantaneamente os artigos automatizados de feeds dos criados manualmente via Wizard ou em Massa.

[2026-09-10 20:20] – Execução Manual sob Demanda no Autoblog RSS e Diagnóstico Inteligente de 0 Posts [v2.0.4]

  • Status: Sucesso
  • Arquivos Modificados:
    • core/class-gap-rss-scraper.php (Adicionado parâmetro $force_manual = false ao método process_single_feed_cron; Ignora trava de status pausado e cota diária já esgotada hoje quando disparado manualmente pelo usuário; Coleta métricas de itens duplicados/já existentes, falhas de scraping e erros de IA, retornando array estruturado com o relatório da extração)
    • admin/class-gap-admin.php (Atualizado ajax_run_feed_now para passar flag manual; Implementado tratamento e detalhamento na caixa de diálogo de retorno: quando 0 posts forem gerados, o usuário agora é informado com clareza sobre o motivo real, como artigos já importados/existentes no WP pelo mecanismo anti-duplicação, bloqueios de WAF na raspagem ou chaves de IA)
  • Alterações:
    • Execução Sob Demanda Desbloqueada: A execução manual agora permite gerar posts imediatamente para teste ou demanda sem ser barrada pela cota diária do WP-Cron do mesmo dia.
    • Transparência e UX Superior: Fim das mensagens genéricas de ‘Foram gerados 0 novos posts’. O usuário agora recebe na hora o relatório explicando exatamente o que ocorreu (ex: artigos já importados anteriormente).

[2026-09-10 19:54] – Referência da Fonte Original Opcional no Autoblog RSS [v2.0.4]

  • Status: Sucesso
  • Arquivos Modificados:
    • admin/class-gap-admin.php (Adicionado campo de checkbox ‘Incluir link/citação da fonte original ao final do post’ no formulário de criação/edição de feeds RSS; Adicionado tratamento de persistência em ajax_save_feed armazenando include_source_link nos filtros JSON do feed; Integrado suporte no JavaScript para carregar o valor na edição e resetar para ativo no cancelamento)
    • core/class-gap-rss-scraper.php (Condicionada a anexação do parágrafo de citação .gap-source-link com a URL original ao final do post à configuração include_source_link do feed; mantido ativo por padrão caso não definido para retrocompatibilidade)
  • Alterações:
    • Flexibilidade Editorial no Autoblog RSS: Usuários agora têm controle total sobre exibir ou ocultar a menção “Apareceu primeiro em: URL” no final dos posts gerados automaticamente por feeds RSS, diretamente pelo painel de gerenciamento de feeds.

[2026-09-03 18:15] – Integração do Modelo Gemini 3.8 Flash (GA) e Blindagem de Thinking Mode [v2.0.3]

  • Status: Sucesso
  • Arquivos Modificados:
    • ai-engines/class-gap-engine-gemini.php (Adicionado suporte ao modelo gemini-3.8-flash no motor de requisições; Configurado o thinkingLevel como 'medium' para gemini-3.8-flash, prevenindo sumariamente o erro HTTP 400 da API pois a documentação oficial proíbe o nível 'minimal' nesta versão)
    • admin/class-gap-admin.php (Adicionado gemini-3.8-flash como opção padrão no seletor de modelos do Gemini da aba de Configurações: ‘Gemini 3.8 Flash (Mais Recente – Recomendado)’)
    • dev_system-geraipro/GaiPro_Diretrizes.md (Atualizada a lista de modelos vigentes do Gemini com o novo Gemini 3.8 Flash no topo)
    • dev_system-geraipro/skill_gemini-api.md (Documentadas as especificações de contexto 1M/64k tokens, preços promocionais de $0.75/$3.75 por 1M tokens, deprecamento de parâmetros legados de sampling e a restrição de thinking minimal)
    • dev_system-geraipro/precos.gemini.md (Incluído comparativo de custo, status estável e recomendação de uso do Gemini 3.8 Flash)
  • Alterações:
    • Novo Motor de IA de Ponta: Disponibilização imediata do Gemini 3.8 Flash para todos os módulos (Single Wizard, Gerador em Massa, Autoblog RSS, Otimizador e Análise SEO).
    • Blindagem Técnica (Zero Erros 400): Eliminação de conflitos de parâmetros ao mapear explicitamente o raciocínio para medium ao detectar gemini-3.8-flash.

[2026-09-02 15:15] – Atualização de Versão para v2.0.3, Refinamento das Faixas de Palavras e Simplificação de Meta Box [v2.0.3]

  • Status: Sucesso
  • Arquivos Modificados:
    • geraaipro.php (Bump de versão para 2.0.3 no cabeçalho do plugin e na constante GAP_VERSION)
    • admin/class-gap-admin.php (Renomeado o título da Meta Box lateral na tela de edição de posts de ‘GeraAiPro – Otimização IA’ para ‘GeraAiPro’, tornando a interface mais limpa e direta)
    • core/class-gap-processor.php (Ajuste manual das faixas de extensão de palavras nos prompts: Small 650-990 palavras com 3 a 5 H2s; Medium 1.450-1.800 palavras com 5 a 7 H2s; Large 2.400-2.800 palavras com 8 a 11 H2s, proporcionando maior equilíbrio e profundidade para evitar subdimensionamento)
  • Alterações:
    • Consistência de Versionamento: Alinhamento geral do plugin para a versão 2.0.3.
    • UX no Editor Gutenberg/Clássico: Rótulo da meta box simplificado e minimalista.
    • Equilíbrio Editorial: Faixas de contagem de palavras reajustadas para assegurar densidade semântica sem estouros descontrolados.

[2026-09-02 11:10] – Calibração de Extensão de Palavras e Sincronização de Schema no RSS e Reescrita [v2.0.2]

  • Status: Sucesso
  • Arquivos Modificados:
    • core/class-gap-processor.php (Calibradas as diretrizes de palavras no prompt de redação com faixas delimitadas e tetos máximos: small 700-950, medium 1.400-1.650 e large 2.200-2.600 palavras; Calibrada a quantidade de seções H2 no outline para 3-4, 5-6 e 8-10 H2s respectivamente; Adicionada sincronização do metadado _gap_faq_schema no método optimize_existing_post; Substituído wp_kses_post por wp_kses com whitelist explícita de headings h1-h6 em execuções de background/AJAX; Removido wp_slash redundante na gravação de metadados)
    • core/class-gap-rss-scraper.php (Adicionada extração e persistência direta de FAQ Schema JSON-LD no autoblog RSS após wp_insert_post)
    • geraaipro.php (Removido wp_unslash desnecessário na saída do <head>, mantendo o JSON-LD limpo e estruturado)
  • Alterações:
    • Controle Fino de Extensão: Eliminação de artigos com excesso de palavras (2.300+ para pedidos de 1.500), garantindo aderência precisa à meta solicitada pelo usuário.
    • Consistência Total do FAQ Schema: Cobertura completa do schema no Single Wizard, Bulk Generator, Autoblog RSS e Otimizador/Reescrita do editor WP.

[2026-09-01 20:38] – Blindagem do Ciclo de Vida e Fallback Dinâmico do FAQ Schema JSON-LD [v2.0.0]

  • Status: Sucesso
  • Arquivos Modificados:
    • core/class-gap-processor.php (Criado o método central extract_faq_schema_from_content() com suporte a <h3>, <h4>, <p>, <summary>, <details>, <strong> e varredura de <h2>; Adicionada persistência explícita e redundante de _gap_faq_schema com update_post_meta() logo após wp_insert_post())
    • geraaipro.php (Aprimorado o hook output_faq_schema com suporte a is_singular('post') e fallback dinâmico em tempo real: se o metadado _gap_faq_schema por qualquer motivo não estiver presente no banco na hora da renderização do <head>, o plugin extrai o Schema instantaneamente do post_content, injeta o script <script type="application/ld+json"> e salva o metadado para as próximas requisições)
  • Alterações:
    • Zero Falha no Schema FAQ: Garantia de 100% de presença do FAQ Schema JSON-LD no código-fonte das páginas (wp_head), tanto em artigos recém-gerados quanto em posts existentes com FAQ.

[2026-09-01 20:22] – Correção do FAQ Schema JSON-LD e Ativação Padrão no Wizard [v2.0.0]

  • Status: Sucesso
  • Arquivos Modificados:
    • admin/class-gap-admin.php (Definido o checkbox “Incluir FAQ” #gap-faq como marcado por padrão checked, alinhando com a geração em lote e garantindo que o passo de geração de FAQ seja sempre disparado)
    • core/class-gap-processor.php (Universalizado o extrator de Schema JSON-LD no finalize_and_publish_post: implementados 3 níveis de fallbacks com suporte a tags <h3>, <h4>, <p>, <details><summary>, <dt><dd> e <strong>, garantindo que mesmo variações de tags geradas pelas IAs sejam convertidas com 100% de sucesso para a entidade estruturada FAQPage e salvas no metadado _gap_faq_schema)
  • Alterações:
    • Resolução Definitiva do Schema FAQ: O Schema JSON-LD volta a ser gerado e injetado silenciosamente no wp_head de todos os artigos sem depender de uma formatação estrita da IA.

[2026-09-01 18:21] – Recálculo Exato para Artigo de 1.500 Palavras e Remoção do Gemini 2.5 Image [v2.0.0]

  • Status: Sucesso
  • Arquivos Modificados:
    • admin/class-gap-admin.php (Atualizados os cálculos estimados em R$/post para a base padrão de 1.500 palavras + imagem correspondente: Gemini 3.6 Flash + Nano Banana Lite = R$ 0,21/post, GPT-5.6 Sol + GPT Image 2 = R$ 0,58/post, GPT-5.6 Terra + GPT Image 2 = R$ 0,35/post e GPT-5.6 Luna + GPT Image 2 = R$ 0,22/post; Removidas todas as menções legadas a Gemini 2.5 Image da introdução do painel de Configurações)
  • Alterações:
    • Exatidão de Cálculos: Exibição matematicamente precisa baseada estritamente no tamanho padrão de artigo de 1.500 palavras e alinhada às APIs atuais sem vestígios de modelos descontinuados.

[2026-09-01 18:15] – Restauração dos Valores de Entrada/Saída por 1M nos Cards e Padronização GPT Image 2 [v2.0.0]

  • Status: Sucesso
  • Arquivos Modificados:
    • admin/class-gap-admin.php (Restaurados os valores de Input e Output nos subtítulos dos 4 cards de transparência de custo [Input $0.75 | Output $3.75, Input $4.00 | Output $20.00, Input $2.00 | Output $12.00 e Input $0.20 | Output $1.20] e padronizado o ecossistema OpenAI para utilizar exclusivamente GPT Image 2 nos modelos da OpenAI)
  • Alterações:
    • Refinamento Visual: Exibição clara e comparativa dos custos de entrada/saída diretamente nos cards superiores com padronização da geração de imagens da OpenAI.

[2026-09-01 18:12] – Esclarecimento da Composição de Custos (Texto vs Imagem GPT) [v2.0.0]

  • Status: Sucesso
  • Arquivos Modificados:
    • admin/class-gap-admin.php (Ajustados os rótulos dos cards e a nota explicativa do painel para explicitar a composição entre geração de texto por 1M de tokens e a adição da imagem gerada por unidade [GPT Image 2 a +$0.040/img ou Nano Banana a +$0.0336/img])
    • dev_system-geraipro/GaiPro_Diretrizes.md (Atualizada a documentação de diretrizes especificando que os valores declarados por 1M de tokens referem-se à API de texto e que imagens da OpenAI são faturadas à parte)
  • Alterações:
    • Transparência de Faturamento: Eliminação de ambiguidades na exibição de custos estimados por post.

[2026-09-01 18:05] – Atualização de Custos Reais OpenAI (GPT-5.6 Sol/Terra/Luna) e Diretrizes [v2.0.0]

  • Status: Sucesso
  • Arquivos Modificados:
    • admin/class-gap-admin.php (Atualizados os 4 cards da seção “Transparência de Custos” no topo do painel de Configurações, adicionando os modelos oficiais da OpenAI com seus respectivos valores por 1M de tokens: GPT-5.6 Sol [$4.00/$20.00], GPT-5.6 Terra [$2.00/$12.00], GPT-5.6 Luna [$0.20/$1.20] e Gemini 3.6 Flash [$0.75/$3.75], além de detalhar os valores de cache e imagens na nota rodapé)
    • dev_system-geraipro/GaiPro_Diretrizes.md (Atualizada a relação oficial de modelos vigentes da OpenAI e Gemini nas diretrizes do projeto)
  • Alterações:
    • Transparência de Custos: Apresentação clara e precisa dos valores de faturamento direto no saldo da chave de acesso para os usuários do plugin.

[2026-09-01 17:52] – Integração da Família GPT-5.6 e Atualização da Skill OpenAI [v2.0.0]

  • Status: Sucesso
  • Arquivos Modificados:
    • dev_system-geraipro/skill_openai-api.md (Documentada a família GPT-5.6 com a nova convenção planetária: gpt-5.6-sol [Flagship / Design & Julgamento Estético], gpt-5.6-terra [Intermediário / Equilíbrio de Custo], gpt-5.6-luna [Alto Volume / Autoblog / Bulk], além dos recursos de Programmatic Tool Calling, Multi-Agent e modos de raciocínio de none até max/Pro Mode)
    • admin/class-gap-admin.php (Atualizado o seletor de modelos da OpenAI nas Configurações incluindo gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna, gpt-5.4 e gpt-5.4-mini)
  • Alterações:
    • Evolução da Stack OpenAI: Suporte aos modelos da linhagem GPT-5.6 e alinhamento com as melhores práticas de eficiência de tokens e engenharia de contexto da OpenAI.

[2026-09-01 17:42] – Alinhamento dos Modelos Oficiais Vigentes do Gemini no Painel [v2.0.0]

  • Status: Sucesso
  • Arquivos Modificados:
    • admin/class-gap-admin.php (Ocultados modelos anteriores a 3.1 [como 2.5 Flash] e versões de prévia legadas, mantendo ativas estritamente as opções oficiais vigentes do catálogo: gemini-3.6-flash, gemini-3.5-flash, gemini-3.5-flash-lite, gemini-3.1-flash-lite e gemini-3.1-pro-preview)
    • dev_system-geraipro/skill_gemini-api.md (Sincronizada a matriz de referência da Skill com a grade oficial do Google AI Studio e estruturada tabela comparativa de preços e casos de uso)
  • Alterações:
    • Higiene de Modelos: Interface enxuta, confiável e alinhada 1:1 com os modelos estáveis suportados pelo Google AI Studio em produção.

[2026-09-01 17:34] – Correção e Ajuste da Nomenclatura do Modelo Flash Lite [v2.0.0]

  • Status: Sucesso
  • Arquivos Modificados:
    • admin/class-gap-admin.php (Corrigida a lista de modelos do seletor para incluir gemini-3.5-flash-lite [Gemini 3.5 Flash Lite – Throughput & Economia] e remover a nomenclatura inexistente gemini-3.6-flash-lite)
    • dev_system-geraipro/skill_gemini-api.md (Ajustada a matriz de modelos e regras de amostragem especificando estritamente gemini-3.6-flash, gemini-3.5-flash-lite e gemini-3.5-flash)
  • Alterações:
    • Consistência de API: Garantia de conformidade com o catálogo oficial do Google AI Studio e documentação da Google GenAI SDK.

[2026-09-01 17:31] – Inclusão e Documentação de Gemini 3.6 Flash e 3.6 Flash Lite [v2.0.0]

  • Status: Sucesso
  • Arquivos Modificados:
    • dev_system-geraipro/skill_gemini-api.md (Adicionados ao arsenal os modelos gemini-3.6-flash e gemini-3.6-flash-lite, documentando o contexto de 1M/64k tokens, remoção obrigatória de parâmetros legados de sampling [temperature, top_p, top_k], política de preços promocionais de $0.75/$3.75 por 1M tokens e regras de raciocínio [low, medium, high])
    • admin/class-gap-admin.php (Adicionados gemini-3.6-flash e gemini-3.6-flash-lite no seletor de modelos da aba de Configurações)
  • Alterações:
    • Expansão da Matriz de Modelos: Suporte a toda a nova linhagem de modelos Gemini 3.6 e 3.7 do Google com diretrizes atualizadas de migração de sampling.

[2026-09-01 17:28] – Inclusão e Documentação do Modelo Gemini 3.7 Flash [v2.0.0]

  • Status: Sucesso
  • Arquivos Modificados:
    • dev_system-geraipro/skill_gemini-api.md (Documentadas as especificações completas do modelo estável gemini-3.7-flash de Agosto 2026: suporte nativo multimodal [Texto, Imagem, Vídeo, Áudio, PDF], janela de contexto de 1.048.576 tokens de entrada e 65.536 tokens de saída, suporte a Thinking nos níveis low, medium e high com nota de que minimal não é aceito, além de recursos como Structured Outputs, Search Grounding e URL Context)
    • admin/class-gap-admin.php (Adicionado gemini-3.7-flash como opção de modelo padrão no painel de configurações do plugin)
  • Alterações:
    • Atualização Tecnológica de IA: Integração do modelo de raciocínio de última geração do Google ao ecossistema do plugin e atualização da skill de desenvolvimento com regras de Thinking.

[2026-09-01 17:25] – Configuração Opcional de Exclusão de Dados na Desinstalação [v2.0.0]

  • Status: Sucesso
  • Arquivos Modificados:
    • admin/class-gap-admin.php (Adicionado campo delete_data_on_uninstall na tela de Configurações e na lista de opções sanitizadas do salvamento, permitindo ao usuário escolher se deseja preservar ou expurgar tabelas e histórico ao desinstalar)
    • uninstall.php (Atualizado para ler a opção delete_data_on_uninstall. Se desativada [padrão = 0], apenas os crons são cancelados e todas as tabelas, configurações e chaves são preservadas no banco de dados para caso o usuário reinstale o plugin)
  • Alterações:
    • Exclusão de Dados Customizável: O usuário tem controle total sobre o ciclo de vida dos seus dados. Por padrão, a exclusão acidental do plugin não apagará seu banco de dados, a menos que ele explicitamente ative a opção nas configurações.

[2026-09-01 17:15] – Revisão Técnica, Segurança AJAX, Garbage Collector e Otimização de Banco [v2.0.0]

  • Status: Sucesso
  • Arquivos Modificados / Criados:
    • admin/class-gap-admin.php (Injetadas checagens de autorização current_user_can('manage_options') e de licença ativa gap_is_active() em todos os endpoints AJAX desprovidos de verificação de permissão: ajax_get_youtube_details, ajax_suggest_keyword, ajax_suggest_secondary, ajax_suggest_tags, ajax_suggest_title, ajax_generate_outline, ajax_generate_content, ajax_analyze_seo, ajax_publish_post, ajax_generate_faq, ajax_add_bulk_jobs, ajax_get_bulk_status, ajax_control_bulk_job e ajax_generate_lookalike_keywords; Adicionada rotina de limpeza da tabela de logs wp_gap_logs e otimização das tabelas com OPTIMIZE TABLE na ação de limpar histórico)
    • ai-engines/class-gap-engine-openai.php (Adicionado 'sslverify' => false no método base send_request para consistência e prevenção de falhas de certificado SSL em ambientes locais e Windows)
    • core/class-gap-processor.php (Refinada a extração de URLs da Base de Conhecimento RAG com remoção de pontuações residuais de final de frase através de rtrim e validação estrita com filter_var(..., FILTER_VALIDATE_URL))
    • core/class-gap-action-scheduler.php (Implementado Garbage Collector automático cleanup_stalled_jobs com cron periódico a cada hora para identificar jobs travados em status transitórios por mais de 1 hora e marcá-los como erro com mensagem explicativa)
    • uninstall.php (Criado arquivo de desinstalação nativo do WordPress para expurgo completo e seguro de todas as tabelas customizadas wp_gap_*, options de configuração gap_settings, dados de licenciamento e hooks de cron)
    • dev_system-geraipro/VIBE_CHECKLIST.md (Marcadas como concluídas as tarefas da Fase 12 referentes à Revisão Técnica, Segurança e Otimização de Banco)
  • Alterações:
    • Segurança e Privilégios AJAX: Eliminação de qualquer brecha de autorização em requisições assíncronas do painel administrativo.
    • Resiliência e Auto-recuperação da Fila: Implementação de Garbage Collector contra travamentos indefinidos de processos.
    • Higiene e Desinstalação: Script oficial de desinstalação (uninstall.php) para remoção limpa do plugin e otimização de banco com esvaziamento de logs.

[2026-09-01 16:50] – Implementação de Pausa e Retomada para Feeds RSS no Autoblog [v2.0.0]

  • Status: Sucesso
  • Arquivos Modificados:
    • admin/class-gap-admin.php (Criado endpoint AJAX gap_toggle_feed_status para alternar o estado do feed entre Ativo e Pausado; atualizada a tabela de gerenciamento com coluna de Estado [badge verde “Ativo” / badge âmbar “Pausado”] e botão de ação rápida “⏸ Pausar” / “▶ Retomar”; ajustada rotina de salvar feed para preservar o estado de pausa)
    • core/class-gap-rss-scraper.php (Atualizado o método process_single_feed_cron para checar se o feed está pausado [is_paused: 1] e abortar o processamento automático via Cron)
  • Alterações:
    • Controle Total de Pausa por Feed RSS: O usuário agora pode pausar individualmente qualquer feed RSS com 1 clique (para priorizar outro feed ou suspender temporariamente a coleta) e retomá-lo quando desejar sem precisar excluir o feed ou apagar configurações.

[2026-09-01 16:33] – Encadeamento Inteligente de Fila no Agendamento em Massa (Drip Feed) [v2.0.0]

  • Status: Sucesso
  • Arquivos Modificados:
    • admin/class-gap-admin.php (Ajustado o endpoint ajax_add_bulk_jobs para verificar se já existem itens pendentes agendados no futuro na fila. Se existirem, os novos artigos adicionados entram no final da fila sequencialmente a partir do último horário agendado, em vez de reiniciarem do zero ou executarem imediatamente furando a fila)
  • Alterações:
    • Continuidade da Fila de Agendamento: Corrigido o comportamento em que adicionar um novo lote com a fila já em andamento disparava o primeiro artigo imediatamente. Agora o sistema respeita a cronologia existente e agenda os novos itens progressivamente a partir do último agendamento ativo.

[2026-09-01 16:30] – Correção de Timezone e Fuso Horário Local na Variação de Horários [v2.0.0]

  • Status: Sucesso
  • Arquivos Modificados:
    • core/class-gap-processor.php (Ajustado o método compute_varied_timestamp para utilizar wp_timezone() e DateTimeImmutable, garantindo que o cálculo da janela de horários comercial/estendida [ex: 08:00 às 18:00] seja avaliado estritamente no fuso horário do WordPress e não em UTC)
    • admin/class-gap-admin.php (Atualizado o endpoint ajax_get_bulk_status para carregar settings e exibir a data/hora local dos agendamentos formatada via wp_date(), eliminando qualquer distorção de fuso horário na tabela de fila)
  • Alterações:
    • Respeito Estrito ao Fuso Horário Local: Corrigida a divergência de timezone que fazia horários definidos para 08h-18h serem calculados em UTC e exibidos como 05h da manhã. Agora todo o cálculo e visualização na tabela utilizam rigorosamente o fuso horário configurado no WordPress do usuário.

[2026-09-01 14:16] – Implementação de Variação de Horários (Jitter Humano + Janela de Publicação) no Bulk e RSS [v2.0.0]

  • Status: Sucesso
  • Arquivos Modificados:
    • core/class-gap-processor.php (Implementado o método central GAP_Processor::compute_varied_timestamp() que calcula o agendamento aplicando variação randômica configurável de minutos e adequação automática à janela horária comercial, estendida ou personalizada)
    • admin/class-gap-admin.php (Adicionadas opções de interface para “Variação Humana” [±15m, ±30m, ±45m, ±60m] e “Janela de Horários” [24h, Comercial 08-18h, Estendido 07-22h, Custom] no Drip Feed do formulário Bulk e no modal de cadastro/edição de Feed RSS; atualizados os endpoints AJAX ajax_add_bulk_jobs e ajax_save_feed para processar e persistir esses parâmetros; atualizado o JS para toggle e preenchimento na edição)
    • core/class-gap-rss-scraper.php (Atualizada a rotina de publicação de matérias do RSS para ler as configurações de variação do feed e aplicar datas humanizadas e agendamentos futuros compatíveis com post_date / post_date_gmt)
    • dev_system-geraipro/VIBE_CHECKLIST.md (Marcado como concluído o item de Variação de Horários)
  • Alterações:
    • Variação e Janela Horária Anti-Pegada Bot: Agora tanto a geração em massa (Bulk/Drip Feed) quanto o Autoblog RSS contam com inteligência de agendamento que evita datas/horas redondas ou sequências idênticas previsíveis, permitindo distribuição natural ao longo do dia e respeito estrito aos limites de horários estabelecidos pelo usuário.

[2026-09-01 13:52] – Correção dos Links e Ações na Tela Final de Sucesso do Wizard (“Ver Post” e “Editar Artigo”) [v2.0.0]

  • Status: Sucesso
  • Arquivos Modificados:
    • admin/class-gap-admin.php (Atualizado o endpoint AJAX ajax_publish_post para retornar tanto o edit_url quanto o post_url (permalink público) do post recém-criado; atualizada a interface HTML e a rotina JavaScript GapWizard.publishPost para configurar corretamente os botões “Ver Post” abrindo o permalink/preview do post em nova aba e “Editar Artigo” abrindo o editor nativo do WordPress, além de fallbacks seguros caso a rede oscile)
    • dev_system-geraipro/VIBE_CHECKLIST.md (Marcado como concluído o item de correção do botão Ver Post)
  • Alterações:
    • Redirecionamento Correto no Fim da Geração: Corrigido o botão de conclusão do Wizard que apontava para # e não direcionava o usuário para o artigo. Agora são disponibilizados os botões “Ver Post” (para visualizar a matéria no frontend) e “Editar Artigo” (para abrir diretamente na tela de edição do WP Admin).

[2026-09-01 13:42] – Correção da Opção “Ignorar imagens do conteúdo original” no Autoblog RSS [v2.0.0]

  • Status: Sucesso
  • Arquivos Modificados:
    • core/class-gap-rss-scraper.php (Corrigido o tratamento da flag exclude_images: adaptado o prompt da IA para instruir explicitamente a proibição de tags <img> quando ativado; sanitizado o HTML reescrito para remover qualquer tag residual; blindado o sideloading de thumbnail de imagens raspadas e a injeção forçada de imagens adicionais no meio do post para não serem executados quando exclude_images estiver marcado)
  • Alterações:
    • Respeito Estrito à Opção de Ignorar Imagens Originais: Corrigido o vazamento onde matérias com a opção “Ignorar imagens do conteúdo original” ainda recebiam imagens raspadas no corpo ou como thumbnail devido à rotina de injeção automática pós-processamento e à ausência de restrição no prompt da IA. Agora, quando marcada a opção, nenhuma imagem da matéria de origem é baixada ou inserida.

[2026-09-01 10:52] – Controle de Imagem Destacada (Thumbnail) no Módulo Autoblog RSS [v2.0.0]

  • Status: Sucesso
  • Arquivos Modificados:
    • admin/class-gap-admin.php (Adicionado campo seletor de Motor de Imagem Destacada no formulário de cadastro/edição de Feed RSS; atualizado o endpoint AJAX ajax_save_feed para receber e persistir a configuração image_engine no JSON filters; atualizado o JavaScript para preencher e resetar o novo campo na edição e cancelamento)
    • core/class-gap-rss-scraper.php (Atualizado o método process_single_feed_cron para ler e respeitar a configuração image_engine do feed: permitindo usar o motor padrão global, selecionar motores específicos como Unsplash/Gemini/OpenAI para o feed ou desativar completamente a geração e sideload de imagem destacada quando definido como ‘none’)
    • dev_system-geraipro/VIBE_CHECKLIST.md (Marcado como concluído o item de opção de gerar imagem destacada no Autoblog RSS)
  • Alterações:
    • Opção de Imagem Destacada no Feed RSS: Implementado controle configurável por feed permitindo ao usuário decidir o motor de imagem para thumbnail dos artigos reescritos via RSS (Padrão Global, Unsplash, Nano Banana, Nano Banana Lite, Nano Banana 2, GPT Image 2 ou Nenhuma Imagem Destacada), garantindo total flexibilidade sem obrigatoriedade e mantendo 100% de compatibilidade com feeds já cadastrados.

[2026-08-14 01:10] – Correção da Exclusão de Histórico, Paginação Dinâmica de Jobs e Publicação Resiliente no Wizard [v1.9.9]

  • Status: Sucesso
  • Arquivos Modificados:
    • admin/class-gap-admin.php (Atualizada a consulta SQL do método render_main_page para limpar todos os jobs inativos; adicionada a paginação de 20 registros por página no Dashboard e no Gerador em Massa / Bulk; atualizado o método ajax_get_bulk_status e GapBulk JS com controle de páginas paged; otimizado ajax_publish_post com limpeza de buffer ob_clean() e parser de JSON resiliente no GapWizard.publishPost)
    • core/class-gap-processor.php (Adicionado @set_time_limit(300) em finalize_and_publish_post para garantir tempo suficiente durante sideloading de mídia)
    • geraaipro.php (Versão bumped para 1.9.7)
  • Alterações:
    • Correção da Limpeza do Histórico: A consulta SQL de limpeza de histórico foi corrigida para expurgar todos os status inativos/rascunhos/concluídos (status NOT IN ('processing', ...)), resolvendo a falha onde a mensagem de sucesso era exibida sem remover os itens.
    • Paginação de Jobs (Dashboard e Bulk): Implementada a paginação com limite de 20 itens por página tanto no Dashboard de histórico quanto na fila de Geração em Massa (Bulk), permitindo navegar por todo o histórico de posts cadastrados através de botões de navegação.
    • Tratamento de Publicação no Wizard (Falso Positivo de Erro de Rede): Corrigida a tratativa de JSON na publicação do Wizard em ambientes com avisos/notices PHP ativos. O JavaScript agora extrai e sanitiza a resposta JSON com segurança, enviando o usuário diretamente para a tela de Sucesso com o link de edição do post.

[2026-07-07 16:35] – Normalização Flexível de Domínios no Servidor de Licenças [v1.9.8]

  • Status: Sucesso
  • Arquivos Modificados:
    • wpx-license-manager.php (Refatoração da consulta SQL na rota REST de validação de licença)
  • Alterações:
    • Resiliência na Validação de Domínios: Corrigido o bug em que o servidor falhava em validar domínios de clientes quando a chave era cadastrada no banco de dados com protocolo (http/https), www. ou barra no final (/). A query SQL agora normaliza a coluna domain_url do banco na própria comparação usando funções REPLACE, tornando o sistema 100% tolerante a variações de cadastro de domínios.

[2026-07-02 09:40] – Lançamento do Motor de Imagens Nano Banana Lite e Correção de Legendas do YouTube [v1.9.6]

  • Status: Sucesso
  • Arquivos Modificados:
    • admin/class-gap-admin.php (Dropdowns de configurações e da aba Lote atualizados com a opção Nano Banana Lite; reativados os switches e abas da funcionalidade do YouTube)
    • ai-engines/class-gap-engine-gemini.php (Adicionado mapeamento do modelo gemini-3.1-flash-lite-image e endpoint REST correspondente)
    • core/class-gap-processor.php (Verificações do processador estendidas para suportar a nova variante de motor de imagem nano_banana_lite)
    • core/class-gap-youtube-scraper.php (Implementado fallback resiliente que consome a API do youtube-transcript.ai em caso de bloqueio de IP ou requisição com restrição de PoToken/&exp=xpe)
    • dev_system-geraipro/skill_gemini-api.md (Documentada a precificação de US$ 0,0336/imagem e classificação do modelo)
    • geraaipro.php (Versão bumped para 1.9.6)
  • Alterações:
    • Integração do Gemini 3.1 Flash Lite Image: Nova opção de imagem de baixíssima latência e custo ultra-reduzido adicionada ao plugin, consumindo apenas 1.120 tokens por imagem de resolução 1K (equivalente a R$ 0,16 por post gerado).
    • Fallback Resiliente de Legendas (YouTube): Corrigido o erro de importação de legendas para vídeos com proteção de assinatura PoToken ou em IPs de hospedagem com restrição. O sistema agora tenta a raspagem local tradicional e, em caso de resposta vazia (HTTP 200 sem corpo), redireciona automaticamente para o parseamento da API pública youtube-transcript.ai, garantindo 100% de taxa de sucesso.

[2026-07-01 08:15] – Geração de Artigos via YouTube (Fase 10) [v1.9.5]

  • Status: Sucesso
  • Arquivos Modificados:
    • core/class-gap-youtube-scraper.php (Nova classe utilitária de raspagem de legendas do YouTube)
    • admin/class-gap-admin.php (UI do Wizard, Abas de importação do Lote, AJAX de metadados, Javascript de tabs e startBulkJobs)
    • core/class-gap-processor.php (Leitura de legenda nos prompts de outline e conteúdo, fallback de download local de thumbnail oficial e injeção do embed responsivo do vídeo)
    • dev_system-geraipro/VIBE_CHECKLIST.md (Fase 10 marcada como concluída)
    • geraaipro.php (Versão bumped para 1.9.5 e bootstrap de arquivos)
  • Alterações:
    • Importação Nativa de Vídeos do YouTube: Implementado mecanismo completo que lê e extrai o título real e a transcrição/legendas de um vídeo do YouTube sem depender de chaves de API externas pagas.
    • Integração no Painel do Wizard: Adicionado toggle na Etapa 1 para carregar metadados em tempo real de vídeos individuais e preencher a Outline e o Artigo.
    • Aba de Vídeos no Lote (Bulk): Nova aba “URLs do YouTube” adicionada na geração em massa, com leitura assíncrona robusta para evitar timeouts durante a leitura e conversão das legendas pela fila.
    • Download de Thumbnail como Destaque: Implementado download seguro da thumbnail do vídeo original para a Galeria de Mídia do WordPress como Imagem Destacada (caso o usuário opte por não gerar imagens por IA).
    • Embed do Player responsivo: Injetado iframe HTML do player oficial do YouTube de forma responsiva ao final do post.

[2026-06-27 15:50] – Controle Avançado de Autoria, FAQ Schema Desacoplado e Melhorias de UI [v1.9.4]

  • Status: Sucesso
  • Arquivos Modificados:
    • core/class-gap-processor.php (FAQ Schema removido do post_content e salvo em _gap_faq_schema)
    • geraaipro.php (Versão bumped para 1.9.4, injeção de Schema FAQ na wp_head e filtro content_edit_pre para limpeza do editor visual)
    • admin/class-gap-admin.php (Inclusão do select de Autor Padrão no Wizard, Lote, Autoblog, Perfil Editorial; Adição de controle de Schema FAQ nas configurações globais; Grid 2-colunas no UI)
  • Alterações:
    • Seleção de Autoria Completa: O usuário passa a ter total controle sobre a autoria (post_author) de cada postagem gerada pela IA, seja de forma manual no Wizard, programada no Lote ou Autoblog, priorizando a definição na tarefa e caindo de volta (fallback) na configuração de Perfil Editorial, e em último caso, no ID de quem enviou.
    • FAQ Schema Desacoplado & Invisível (Clean Editor): O JSON-LD de perguntas e respostas deixou de ser “sujado” de volta no conteúdo principal do post. Agora é armazenado como um metadado seguro (_gap_faq_schema) e injetado silenciosamente no <head> via hook wp_head, mantendo a página limpa no editor Gutenberg/Classic, acabando com a sensação de “código exposto” na edição manual.
    • Retro-Compatibilidade Automática: Criado um limpador sutil via content_edit_pre que apaga magicamente resquícios de scripts JSON-LD de artigos gerados em versões passadas no exato momento que o cliente tenta abri-los no modo de edição do WordPress.
    • Controle Total sobre SEO Conflicts: Incluída configuração universal no Perfil Editorial (Configurações > FAQ) para inibir opcionalmente a saída do Schema JSON-LD caso o site do cliente já use Yoast ou RankMath e ocorra conflitos de duplicidade no Console do Google, entregando uma solução cirúrgica e flexível.
    • UI Otimizada (Grid): Opções do Perfil Editorial foram alocadas num painel grid em duas colunas responsivas, otimizando o visual em desktop.

[2026-06-04 07:59] – Regra Anti-Repetição de Links e Sincronização de Versão [v1.8.2]

  • Status: Sucesso
  • Arquivos Modificados:
    • core/class-gap-processor.php (Inclusão de diretiva no prompt RAG em get_content_prompt)
    • admin/class-gap-admin.php (Injeção dinâmica da constante GAP_VERSION nos cabeçalhos das páginas)
    • includes/class-geraipro-license.php (Atualização do marcador @since da docstring inicial e injeção de GAP_VERSION no título da página de licença)
    • geraaipro.php (Versão bumped para 1.8.2 e adição de rotina anti-colisão de pastas no carregamento)
  • Alterações:
    • Regra Anti-Repetição de Links: Inserida uma restrição explícita no prompt de injeção de dados da Base de Conhecimento instruindo a IA a utilizar cada URL extraída no máximo uma única vez, proibindo expressamente a repetição dos mesmos links ao longo do corpo do post.
    • Exibição Dinâmica de Versão: Injetada a constante global GAP_VERSION de forma síncrona e automática em todos os cabeçalhos principais do painel administrativo (Dashboard, Geração Individual, Geração em Massa, Base de Conhecimento, Configurações e Licença).
    • Sincronização de Licença: Atualizado o marcador @since da classe de licença para 1.8.2 para consistência e alinhamento do core do plugin.
    • Prevenção de Colisão e Erro Fatal (Múltiplas Instalações): Criada rotina que verifica na inicialização do plugin se outra pasta do GeraAiPro está ativa no site (através da lista de plugins ativos e de rede do WordPress). Se houver conflito, o carregamento do novo plugin é abortado silenciosamente para evitar colisões e erros fatais de redefinição de funções/classes globais. Se a ativação for executada manualmente pelo painel, o novo plugin é desativado preventivamente e uma mensagem de erro controlada (via wp_die()) solicita que o usuário desative a cópia antiga primeiro.

[2026-06-03 21:06] – Correção das Imagens Inline na Geração em Massa [v1.8.1]

  • Status: Sucesso
  • Arquivos Modificados:
    • admin/class-gap-admin.php (Definição e leitura das chaves inline_images e inline_image_positions no ajax_add_bulk_jobs)
    • geraaipro.php (Versão bumped para 1.8.1)
  • Alterações:
    • Correção do Bug de Imagens Inline no Lote (Bulk): Corrigida a ausência de recebimento e sanitização de inline_images e inline_image_positions a partir do payload POST no endpoint AJAX ajax_add_bulk_jobs(). Isso impedia que a flag e as posições dos H2s chegassem às configurações de criação de lote de novos posts na fila, fazendo com que as imagens no texto fossem ignoradas na geração em massa.

[2026-06-03 20:52] – Suavização e Otimização do Prompt da Base de Conhecimento [v1.8.0]

  • Status: Sucesso
  • Arquivos Modificados:
    • core/class-gap-processor.php (Suavização e otimização dos prompts da base de conhecimento no get_content_prompt)
    • geraaipro.php (Versão bumped para 1.8.0)
  • Alterações:
    • Suavização do RAG (Base de Conhecimento): Substituição do prompt rígido e coercivo por um tom amigável e focado em contexto. A IA foi instruída de maneira concisa e com economia de tokens a usar os dados e links da base de conhecimento apenas se forem pertinentes e úteis para o tema do artigo gerado, evitando forçar a inserção desnecessária de múltiplos produtos desconexos.

[2026-06-03 20:18] – Otimização de Títulos e Gravação de Focus Keyword [v1.7.9]

  • Status: Sucesso
  • Arquivos Modificados:
    • core/class-gap-processor.php (Ajuste do prompt de sugestão de título H1 e gravação de meta_data de focus keyword para RankMath/Yoast)
    • dev_system-geraipro/VIBE_CHECKLIST.md (Marcados itens como concluídos e atualizada a versão no checklist)
    • geraaipro.php (Versão bumped para 1.7.9)
  • Alterações:
    • Gravação de Focus Keyword: Inserida a gravação automática da palavra-chave de foco do artigo nos campos rank_math_focus_keyword (RankMath) e _yoast_wpseo_focuskw (Yoast SEO) no momento da publicação final do post no WordPress.
    • Calibração de Títulos CTR: Otimizado o prompt get_suggest_title_prompt do processador para forçar a inclusão dinâmica do ano corrente e instruir a IA a usar números ímpares (ex: listas) de forma coerente e condicional apenas se a intenção de busca for apropriada.

[2026-06-03 19:42] – Revisão Técnica, Segurança e Ajustes Finais [v1.7.8]

  • Status: Sucesso
  • Arquivos Modificados:
    • dev_system-geraipro/Revisão e Segurança.md (Criação do relatório de diagnóstico de segurança e arquitetura)
    • dev_system-geraipro/VIBE_CHECKLIST.md (Anotação da revisão no checklist de polimento)
    • admin/class-gap-admin.php (Restaurado título principal do topo da tela da base de conhecimento de ‘knowledge’ para ‘Base de Conhecimento’)
    • geraaipro.php (Versão bumped para 1.7.8)
  • Alterações:
    • Relatório Diagnóstico: Criada a documentação detalhada apontando as vulnerabilidades de privilégios AJAX, bypass SSL em localhost, ausência de uninstall.php, parser do RAG e travamento de jobs.
    • Correção Visual de Título: Corrigido o título da página administrativa do gerenciamento da base de conhecimento para exibir “Base de Conhecimento” no topo (mantendo o submenu como “knowledge”).

[2026-06-03 17:30] – Correção do RAG e Download de Imagens Local [v1.7.7]

  • Status: Sucesso
  • Arquivos Modificados:
    • core/class-gap-processor.php (Substituição de download_url() por wp_remote_get() com sslverify falso para Unsplash)
    • admin/class-gap-admin.php (Correção no repasse de knowledge_id no AJAX de outlines)
    • geraaipro.php (Versão bumped para 1.7.7)
  • Alterações:
    • Correção RAG: Resolvido o erro em que o processador ignorava os dados da base de conhecimento por falha no envio do knowledge_id na outline e geração.
    • Resiliência de Download Unsplash (LocalWP): Substituído download_url() no download da imagem destacada do Unsplash por wp_remote_get() customizado com sslverify => false, evitando falhas de rede no cURL do Windows.

[2026-06-03 12:55] – Proporções Simplificadas e Default [v1.7.5]

  • Status: Sucesso
  • Arquivos Modificados:
    • admin/class-gap-admin.php (Renomeados rótulos do select aspect-ratio)
    • geraaipro.php (Versão bumped para 1.7.5)
  • Alterações:
    • Configuração de Proporção: Alteradas as proporções do seletor para “16:9 (Wide)”, “1:1 (Redes Sociais)” e “3:2 (Padrão)” selecionado por padrão no Wizard manual.

[2026-06-03 12:50] – Rótulo Inline e Input de Posições [v1.7.4]

  • Status: Sucesso
  • Arquivos Modificados:
    • admin/class-gap-admin.php (Ajuste no layout e contêineres de Imagens no Texto)
    • geraaipro.php (Versão bumped para 1.7.4)
  • Alterações:
    • Alinhamento do Rótulo de Posições: Movido o rótulo explicativo > Posições H2 (ex: 2,4) para a mesma linha do checkbox de ativação de Imagens no Texto.
    • Input de Posições: Posicionado na linha inferior da respectiva coluna com largura total.
    • Lógica de Opacidade: Ajustada a ação do checkbox para atenuar a opacidade do rótulo e input simultaneamente de 0.5 para 1.0.

[2026-06-03 12:44] – Simetria e Rótulos Verticais [v1.7.3]

  • Status: Sucesso
  • Arquivos Modificados:
    • admin/class-gap-admin.php (Reorganização do grid cinza de opções)
    • geraaipro.php (Versão bumped para 1.7.3)
  • Alterações:
    • Grid de Configuração de Duas Linhas: Reestruturadas as opções de geração em duas linhas de grid de 3 colunas, alinhando verticalmente a proporção e opções de imagem com as opções de texto acima.
    • Labels Verticais: Rótulos de Proporção de Imagem e Posições H2 foram movidos para o topo de seus respectivos seletores e inputs.
    • Texto Corrigido: Renomeado label visual de “Imgs no Texto” para “Imagens no Texto”.

[2026-06-03 12:20] – Prompt de Links Objetivo e Reestruturação Completa de Imagens [v1.7.2]

  • Status: Sucesso
  • Arquivos Modificados:
    • core/class-gap-processor.php (Simplificação do prompt mestre de links)
    • admin/class-gap-admin.php (Divisão das opções de single em duas linhas)
    • geraaipro.php (Versão bumped para 1.7.2)
  • Alterações:
    • Prompt de Links Externos Neutro: Simplificada a instrução de links externos substituindo o exemplo de domínio da Wikipédia por um link fictício genérico https://www.google.com/... para remover o viés da IA.
    • Primeira Reestruturação de UI: Reorganizadas as opções do Wizard em Linha 1 (Tamanho, Status, FAQ/Links) e Linha 2 (Proporção e Imagens no Texto com posições H2 abertas por padrão com controle de opacidade).

[2026-06-03 11:55] – Correção da Injeção de Links Externos [v1.7.1]

  • Status: Sucesso
  • Arquivos Modificados:
    • core/class-gap-processor.php (Ajuste no prompt de redação com exemplo de link externo)
    • admin/class-gap-admin.php (Ajuste visual compacto no wrap de posições)
    • geraaipro.php (Versão bumped para 1.7.1)
  • Alterações:
    • Injeção Obrigatória de Protocolo: Resolvido o bug que omitia os links externos gerados pela IA no pós-processamento, alterando o prompt para exigir URLs com o protocolo https:// completo, sobrevivendo à sanitização do wp_kses_post().
    • Compactação de Input: Aposicionada a caixa de texto de posições em formato de badge com estilo sem borda sob o checkbox.

[2026-06-03 11:30] – Múltiplas Imagens Inline no Texto [v1.7.0]

  • Status: Sucesso
  • Arquivos Modificados:
    • core/class-gap-processor.php (Adicionados métodos inject_inline_images e fetch_and_sideload_inline_image)
    • admin/class-gap-admin.php (Campos e JavaScript do single e bulk configurados)
    • geraaipro.php (Versão bumped para 1.7.0)
  • Alterações:
    • Imagens Inline no Texto: Implementada a injeção opcional de imagens inline posicionadas após H2s configurados pelo usuário, com otimização WebP 82% automática e geração de metadados SEO via PHP puro a custo zero de tokens.

[2026-06-03 11:20] – FAQ como Chamada Separada de IA [v1.6.3]

  • Status: Sucesso
  • Arquivos Modificados:
    • core/class-gap-processor.php (Adicionado método generate_faq_for_job)
    • admin/class-gap-admin.php (Etapa dedicada do FAQ e progresso no JS)
    • ai-engines/class-gap-engine-openai.php (Implementado método generate_faq)
    • ai-engines/class-gap-engine-gemini.php (Implementado método generate_faq)
  • Alterações:
    • FAQ Isolado do Pipeline: FAQ desmembrado da redação principal do artigo, passando a ser gerado em uma chamada de IA extra e isolada com base no contexto real do post gerado, reduzindo o fôlego de saída do artigo de uma só vez e blindando o processo contra erros de truncamento.

[2026-06-03 11:15] – Remoção Total de Motores Adicionais e Links de Ajuda [v1.6.2]

  • Status: Sucesso
  • Arquivos Modificados:
    • ai-engines/class-gap-engine-claude.php (EXCLUÍDO)
    • ai-engines/class-gap-engine-openrouter.php (EXCLUÍDO)
    • ai-engines/class-gap-engine-deepseek.php (EXCLUÍDO)
    • geraaipro.php (Remoção do require_once das engines excluídas)
    • core/class-gap-settings.php (Remoção do mapeamento de chaves no env_map)
    • ai-engines/class-gap-ai-factory.php (Remoção dos casos do switch correspondentes às engines excluídas)
    • core/class-gap-processor.php (Simplificação da lógica de fallback entre OpenAI e Gemini; remoção do parser específico de Claude)
    • admin/class-gap-admin.php (Remoção dos campos de configurações das APIs excluídas, seletores correspondentes, e inclusão de tooltips de ajuda com links para aistudio.google.com e platform.openai.com)
  • Alterações:
    • Exclusão de Motores Adicionais: Exclusão física definitiva dos arquivos dos drivers de Claude, OpenRouter e DeepSeek para focar unicamente nas opções estáveis OpenAI e Gemini.
    • Links de Ajuda (Tooltips): Adicionadas tooltips informativas “?” com links de atalho para platform.openai.com e aistudio.google.com nas chaves de API correspondentes.
    • Simplificação e Estabilização de Fluxo: Adaptação completa de toda a lógica do plugin para focar única e exclusivamente nos motores principais estáveis: OpenAI (GPT) e Google Gemini. O fallback agora alterna diretamente entre estes dois de forma determinística e ágil.

[2026-06-03 10:28] – Integração Oficial DeepSeek e Quarentena do OpenRouter [v1.6.2]

  • Status: Sucesso
  • Arquivos Modificados:
    • geraaipro.php (Carregamento da classe DeepSeek no autoloader/bootstrap do plugin)
    • core/class-gap-settings.php (Mapeamento da credencial deepseek_api_key no .env)
    • ai-engines/class-gap-ai-factory.php (Registro do DeepSeek na factory)
    • core/class-gap-processor.php (Atualização de fallback e tarefa para suportar o DeepSeek)
    • admin/class-gap-admin.php (Inclusão de campos do DeepSeek no sanitizador, ocultação visual do OpenRouter e renderização visual do DeepSeek no painel)
    • ai-engines/class-gap-engine-deepseek.php (Criação do driver da API oficial do DeepSeek compatível com OpenAI e parâmetros de raciocínio/pensamento)
  • Alterações:
    • Quarentena do OpenRouter: Ocultou-se a integração do OpenRouter no front-end do painel administrativo (rádio de motor global e bloco de configurações) utilizando condicionais if ( false ) para resguardar o código subjacente contra quebras e permitir reativação rápida.
    • Motor DeepSeek Nativo: Criada a engine oficial GAP_Engine_DeepSeek apontando para a URL oficial da DeepSeek (https://api.deepseek.com/chat/completions) com suporte nativo ao gerenciamento de pensamento (thinking habilitado/desabilitado) e intensidade de raciocínio (reasoning_effort: "high/max").
    • Compatibilidade e Fallback: Totalmente integrado ao sistema de fallback (com preferência para o Gemini em caso de falha) e ao painel de configurações gerais de salvar e limpar chaves.

[2026-06-03 10:05] – Limite Dinâmico de Reasoning no OpenRouter [v1.6.1]

  • Status: Sucesso
  • Arquivos Modificados:
    • ai-engines/class-gap-engine-openrouter.php (Injeção de limite proporcional de tokens de raciocínio no payload de requisição do OpenRouter)
  • Alterações:
    • Cálculo Proporcional de Raciocínio: Adicionado o cálculo dinâmico de reasoning.max_tokens (25% do max_tokens global, respeitando um mínimo de 1000 tokens e máximo de 80% do global) no payload enviado à API do OpenRouter.
    • Prevenção de Aborto por Length no H1: Isso impede que o modelo de raciocínio consuma toda a janela de tokens globais na etapa de pensamento em tarefas curtas (como geração de H1, que possui um prompt complexo de copywriting), garantindo que a resposta de texto final seja gerada e retornada com sucesso, evitando o erro de “Nenhum dado legível retornado”.

[2026-06-03 09:50] – Calibragem de Reasoning Effort e Exclude no OpenRouter [v1.6.1]

  • Status: Sucesso
  • Arquivos Modificados:
    • admin/class-gap-admin.php (Inclusão de 'openrouter_reasoning_effort' na validação e renderização de campo select de Esforço de Raciocínio no painel)
    • ai-engines/class-gap-engine-openrouter.php (Leitura da configuração de esforço e injeção do objeto reasoning no payload da API com exclude => true)
  • Alterações:
    • Exclusão de Reasoning: Adicionada a propriedade "reasoning": { "exclude": true } por padrão no payload de requisições à API do OpenRouter. Isso evita que os tokens de pensamento (raciocínio) ocupem a janela do max_tokens e causem respostas nulas ou truncadas (finish_reason: length) em modelos de raciocínio como o minimax/minimax-m3.
    • Configuração de Esforço: Implementada a opção no painel do administrador que permite escolher a intensidade do pensamento do modelo (none, minimal, low, medium, high, xhigh), dando total controle de custos e tempo de resposta ao usuário.

[2026-06-03 09:10] – Integração e Estabilização do Motor OpenRouter IA [v1.6.1]

  • Status: Sucesso
  • Arquivos Modificados:
    • ai-engines/class-gap-engine-openrouter.php (Criação da classe do motor OpenRouter compatível com a interface do plugin, e posterior calibragem de max_tokens para evitar erros HTTP 402/Credit Reserve)
    • geraaipro.php (Carregamento da classe OpenRouter no autoloader/bootstrap do plugin)
    • ai-engines/class-gap-ai-factory.php (Registro do motor na factory)
    • core/class-gap-settings.php (Mapeamento das credenciais do OpenRouter para o arquivo .env)
    • core/class-gap-processor.php (Atualização da inteligência de fallback para suportar o OpenRouter como motor principal)
    • admin/class-gap-admin.php (Adição do campo de API Key e Model ID, rádio de seleção do motor global e opção no seletor de lote)
    • dev_system-geraipro/VIBE_CHECKLIST.md (Atualizado e assinalado o item de checklist correspondente da v1.6.1)
  • Alterações:
    • Motor OpenRouter IA: Implementada a classe driver do OpenRouter que utiliza a API compatível com OpenAI (https://openrouter.ai/api/v1/chat/completions) e envia os cabeçalhos obrigatórios do OpenRouter (HTTP-Referer e X-Title).
    • Seleção Dinâmica de Modelo: Desenvolvido um input de texto no painel que permite ao usuário colar qualquer ID de modelo do OpenRouter (com fallback para google/gemini-2.5-pro-preview), garantindo máxima flexibilidade para utilizar centenas de LLMs.
    • Fallback e Lote Integrados: A lógica de fallback do processador foi otimizada para redirecionar requisições em caso de falha do OpenRouter, e o motor foi incorporado com sucesso na geração em massa.
    • Calibragem de max_tokens contra Erro 402: Correção do bug que causava a rejeição de solicitações no OpenRouter devido à falta da especificação max_tokens (o que fazia a API estimar e exigir o saldo máximo total do modelo, ex: 65.536 tokens, bloqueando contas com saldos baixos/parciais). Adicionada limitação explícita por tarefa no driver (1.000 tokens para sugestões, 2.000 para outline/SEO, 4.000 para otimização e 8.000 para redação corporal), permitindo execuções perfeitas com créditos baixos.

[2026-06-03 08:05] – Ocultação Visual Completa do Motor Claude na Interface [v1.6.0]

  • Status: Sucesso
  • Arquivos Modificados:
    • admin/class-gap-admin.php (Envelopamento dos blocos do motor Claude em condicionais PHP if ( false ) para impedir renderização no navegador)
    • dev_system-geraipro/VIBE_CHECKLIST.md (Atualizado e assinalado o item de checklist correspondente da v1.6.0)
  • Alterações:
    • Ocultação de Elementos em PHP: Envelopou-se em condicionais PHP os blocos que mostravam o motor Claude na interface do cliente (cards de estimativa de custos de API, chaves de API, motor primário global e opções no seletor de lote).
    • Preservação Lógica Interna: A lógica do plugin, incluindo drivers e factories (GAP_Engine_Claude, GAP_AI_Factory, etc.), foi preservada integralmente para evitar qualquer quebra ou refatoração complexa desnecessária no backend do plugin.

[2026-06-02 20:00] – Centralização de Prompts no Processor e Unificação Multimotor [v1.5.9]

  • Status: Sucesso
  • Arquivos Modificados:
    • core/class-gap-processor.php (Implementados os métodos estáticos get_outline_prompt, get_suggest_keyword_prompt, get_suggest_secondary_prompt, get_suggest_tags_prompt, get_suggest_title_prompt, get_optimize_content_prompt e get_seo_analysis_prompt)
    • ai-engines/class-gap-engine-gemini.php (Refatorados todos os métodos de tarefa para extrair prompts de GAP_Processor)
    • ai-engines/class-gap-engine-openai.php (Refatorados todos os métodos de tarefa para extrair prompts de GAP_Processor e corrigida a chamada de outline para array estruturado de mensagens)
    • ai-engines/class-gap-engine-claude.php (Refatorados todos os métodos de tarefa para extrair prompts de GAP_Processor)
    • dev_system-geraipro/VIBE_CHECKLIST.md (Adicionada e assinalada a tarefa concluída de centralização e unificação de prompts na versão 1.5.9)
    • geraaipro.php (Bumper da versão do plugin e GAP_VERSION para 1.5.9 pelo usuário)
  • Alterações:
    • Centralização de Inteligência de Prompts: Toda a lógica geradora de instruções das três engines de IA (Gemini, OpenAI e Claude) foi unificada no GAP_Processor, eliminando prompts redundantes, obsoletos ou divergentes espalhados pelos arquivos dos drivers das IAs.
    • Padronização Absoluta: Agora, todas as LLMs compartilham das mesmas instruções e diretrizes de SEO/Copywriting calibradas, incluindo a análise avançada de intenção de busca para títulos magnéticos H1 e a fluidez com conectivos em sugestões.
    • Correção de Chamada de Outline na OpenAI: Refatorada a chamada generate_outline no driver da OpenAI para envelopar corretamente o prompt gerado em um array estruturado de mensagens (role user), evitando erros de validação de payload na API oficial.

[2026-06-02 19:46] – Ativação da Variável de Nicho no Prompt de Redação [v1.5.8]

  • Status: Sucesso
  • Arquivos Modificados:
    • core/class-gap-processor.php (Definida a variável $niche localmente dentro da função get_content_prompt resgatando a configuração global)
  • Alterações:
    • Correção da Injeção de Nicho em Links Externos: Declarada a variável local $niche com o método GAP_Settings::get('profile_niche', 'Geral') na função get_content_prompt(). Isso corrige a interpolação {$niche} nas diretrizes de linkagem externa, resolvendo o aviso de variável não declarada (PHP Notice) e garantindo que o nicho configurado apareça corretamente no prompt enviado às APIs de IA.

[2026-06-02 18:45] – Injeção de Ano Dinâmico no Sugestor do Gemini [v1.5.8]

  • Status: Sucesso
  • Arquivos Modificados:
    • ai-engines/class-gap-engine-gemini.php (Aprimorados os prompts de suggest_keyword e suggest_title para incluir o ano atual de forma dinâmica)
    • dev_system-geraipro/VIBE_CHECKLIST.md (Registrado o suporte a ano dinâmico nos sugestores da versão 1.5.8)
    • geraaipro.php (Bumper da versão do plugin e GAP_VERSION para 1.5.8)
  • Alterações:
    • Injeção de Ano Dinâmico nos Sugestores: Modificado o driver do Google Gemini para resgatar dinamicamente em PHP o ano atual via date('Y').
    • Prevenção de Sugestões Obsoletas: Os prompts de sugestão de palavra-chave (suggest_keyword) e sugestão de título (suggest_title) foram ajustados para que o Gemini recomende keywords e H1s atualizados para o ano corrente, instruindo a IA de forma explícita a empregar exclusivamente este ano caso inclua datas ou anos nos termos sugeridos.

[2026-06-02 16:30] – Controle de Status de Post e Fluxo Direto no Form Single [v1.5.6]

  • Status: Sucesso
  • Arquivos Modificados:
    • class-gap-admin.php (Ajustada a classe Javascript GapWizard e a estrutura HTML do admin. O estado GapWizard.state.post_status passa a ler dinamicamente o dropdown de status do post, que é enviado à outline e ao salvamento definitivo no banco de dados. Na conclusão da geração do conteúdo pela IA, o Wizard dispara imediatamente e em segundo plano a publicação/salvamento do post (publishPost), ocultando a etapa visual de revisão de texto/SEO e exibindo diretamente o card de sucesso, agora isolado em uma nova div #step-success)
    • VIBE_CHECKLIST.md (Registrada a conclusão do item de controle de status e fluxo direto sem revisão no formulário manual na versão v1.5.6)
    • geraaipro.php (Incrementada a versão do cabeçalho do plugin e a constante GAP_VERSION para 1.5.6)
  • Alterações:
    • Configuração de Status de Postagem no Form Single: Implementado suporte no Wizard de geração manual para que o usuário escolha o status do post (Publicar Imediatamente ou Rascunho) antes de iniciar a geração.
    • Remoção da Etapa de Revisão (Fluxo Direto “Clicou, Fez”): Alterada a lógica do Wizard para que, após a IA finalizar a escrita do post, o sistema acione automaticamente a publicação/salvamento no WordPress em background. A interface de revisão/SEO foi ocultada do fluxo síncrono padrão do Wizard de modo a agilizar o processo.
    • Propagação de Estado & Banco de Dados: Vinculado o status selecionado ao estado JavaScript, repassando-o via requisições assíncronas no pipeline e armazenando a escolha nas configurações temporárias da tabela wp_gap_jobs.
    • Estruturação de Step de Sucesso Dedicado (#step-success): Movido o card de sucesso de dentro do container de revisão para um Step independente na UI, mantendo a consistência do visual premium e a correta exibição dos links de visualização/edição após a publicação automática.

[2026-05-29 07:50] – Sanitização de Markdown, Fim do H1 Duplicado, Densidade SEO Extrema (1,0% a 1,5%) e Desbloqueio Cognitivo de Linkagem Contextual (v1.5.0)

  • Status: Sucesso
  • Arquivos Modificados:
    • geraaipro.php (Elevada a versão global e a constante do plugin para 1.5.0)
    • class-gap-processor.php (Implementada sanitização rigorosa em PHP na função parse_ai_response_static para remover tags de código e converter negritos em markdown residual **texto** para <strong>texto</strong>. Simplificado e suavizado o prompt de linkagem links_instruction com diretrizes amigáveis, mantendo a regra de âncoras de 1 a 3 palavras e inserindo exemplos práticos visuais, removendo termos policiais excessivos que travavam a IA. Refatorada e simplificada a injeção de densidade de SEO para a faixa de 1,0% a 1,5% de forma direta, garantindo que a IA Flash mantenha a atenção alta e execute ambas as tarefas com êxito)
    • class-gap-admin.php (Adicionada sanitização rigorosa e idêntica na função parse_ai_response do admin. Otimizado o receptor ajax_generate_content no back-end para filtrar e remover qualquer tag H1 que a IA insira teimosamente no corpo do artigo antes de retornar ao Wizard e salvar no banco. Implementada higienização paralela preventiva no Javascript do Wizard ao renderizar o H1 destacado no topo, eliminando de forma absoluta qualquer duplicação de título no painel de prévia da Etapa 3)
  • Alterações:
    • Sanitização Determinística de Markdown Residual (Adeus aos asteriscos): LLMs Flash e modelos de velocidade por vezes apresentam cansaço atencional em textos muito extensos e injetam marcadores de markdown como **texto** no meio do corpo do artigo em HTML. Para blindar a entrega de forma definitiva sem onerar o consumo de prompts, implementamos um higienizador determinístico por expressão regular em PHP no fluxo síncrono e assíncrono (tanto no admin quanto no processor em background), convertendo de forma silenciosa e eficiente qualquer ocorrência de **texto** em tags nativas HTML <strong>texto</strong> legítimas.
    • Erradicação Absoluta de H1 Duplicado no Preview (Double-Blindagem): Para resolver o problema de o H1 aparecer duas vezes seguidas na tela de prévia (Wizard Etapa 3) caso a IA gere o título de forma teimosa no início do corpo, implementamos uma higienização dupla de H1: no back-end (em PHP no ajax_generate_content) limpamos qualquer tag <h1> do corpo do post antes de armazená-lo no job e retornar o JSON, e no front-end (em Javascript no carregamento do visualizador) aplicamos um replace preventivo de H1 sobre o conteúdo antes de injetar o cabeçalho premium e formatado vindo de GapWizard.state.title. Isso garante zero duplicações e estética de altíssimo nível.
    • Desbloqueio de Linkagem e Simplificação Cognitiva de Âncoras (Fim do Travamento): Identificamos que o excesso de termos policiais e regras coercivas extremas de negação no prompt de linkagem (como “RESTRIÇÃO CRÍTICA”, “OBRIGATÓRIO E INVIOLÁVEL”) assustava e sobrecarregava cognitivamente os modelos Flash, fazendo-os omitir a inserção de links externos para evitar a possibilidade de erro. Simplificamos a diretriz do prompt dando comandos positivos, diretos e um exemplo de sintaxe limpa de âncora de cauda curta (1 a 3 palavras), removendo a poluição burocrática do prompt. Isso devolveu a fluidez cognitiva do modelo que agora gera os links sem panes.
    • Injeção Inteligente de Densidade de SEO Extrema (1,0% a 1,5% de Foco): Calibramos a diretriz para atingir com exatidão a faixa de 1,0% a 1,5% de densidade (meta de 12 a 18 repetições para artigos médios) no corpo do post por meio de uma listagem limpa, direta e amigável sobre posicionamento estratégico (introdução negritada, subtítulos H2, 2 a 3 repetições no texto explicativo de cada H2 e na conclusão), equilibrando perfeitamente a janela de atenção de modelos compactos.

[2026-05-28 16:50] – Inteligência de Intenção de Busca e Variedade de Copywriting no Sugestor de Títulos H1 (v1.4.9)

  • Status: Sucesso
  • Arquivos Modificados:
    • class-gap-engine-openai.php (Aprimorado o prompt suggest_title para analisar a intenção de busca da keyword e variar as fórmulas de CTR)
    • class-gap-engine-gemini.php (Aprimorado o prompt suggest_title para analisar a intenção de busca da keyword e variar as fórmulas de CTR)
    • class-gap-engine-claude.php (Aprimorado o prompt suggest_title para analisar a intenção de busca da keyword e variar as fórmulas de CTR)
  • Alterações:
    • Inteligência de Intenção e Fim do Padrão “7 técnicas” Compulsório: Corrigimos o vício cognitivo da IA de sempre sugerir títulos contendo listas ou números fixados em “7” (como “7 técnicas práticas…”). Implementamos uma camada de análise semântica onde a IA primeiro identifica a real intenção de busca implícita da Keyword Principal e decide qual fórmula editorial possui o maior CTR no Google Discover:
      • Tutorial/Guia: Fórmulas focadas em aprendizado prático e resultados (“Como…”, “Guia Definitivo…”).
      • Conceitual/Informativa: Fórmulas focadas em mistério e revelação (“O que ninguém te conta…”, “A verdade por trás de…”).
      • Lista/Curadoria: Fórmulas com listas e números ímpares variados e chamativos (5, 7, 9, 11, 13) apenas se a keyword sugerir plural ou opções comparativas.
      • Tendência/Novidade: Fórmulas urgentes de alto impacto sobre o futuro e atualizações (“O fim de…”, “O que muda com…”).
    • Banimos também clichês repetitivos como “Desvende”, “Descubra”, “Revele” e “Segredos”.

[2026-05-28 16:40] – Desbloqueio de Fôlego Textual, Densidade Quantitativa Base Ocorrências (8-15x) e Estabilidade de Linkagem (v1.4.9)

  • Status: Sucesso
  • Arquivos Modificados:
    • class-gap-processor.php (Ajustadas as diretrizes de Keyword Principal, Ritmo de Parágrafo e Diretrizes de Linkagem no prompt do Redator)
  • Alterações:
    • Remoção de Barreiras Cognitivas Rígidas (Resgate das 1600+ palavras): Identificamos que a regra física coerciva de alternância obrigatória 1×1 de parágrafos (um parágrafo longo seguido estritamente por um curto de contagem fixa) estava causando sobrecarga e travamento cognitivo severo na LLM Flash. Para satisfazer essa regra de forma robótica, a IA encolhia drasticamente o texto principal e cortava explicações técnicas, fazendo o artigo despencar de 1600 para 1000 palavras. Removemos essa barreira, substituindo-a por um ritmo fluido orgânico livre (intercale parágrafos explicativos robustos de 3 a 5 linhas com dinâmicos de 1 a 2 linhas), restaurando instantaneamente o desenvolvimento aprofundado e a contagem correta de palavras solicitada.
    • Metas de Ocorrência Quantitativa da Keyword (Meta 0.8% a 1.2%): Substituímos o mapeamento de coordenadas geográficas ultra-rígido do prompt (que também assustava a IA e encolhia a densidade para 0.3%) por metas quantitativas diretas baseadas em número absoluto de ocorrências da Keyword Principal (meta exata de 8 a 15 ocorrências distribuídas livremente ao longo de posts médios, e 15 a 25 ocorrências para posts grandes). Isso liberta a criatividade natural da IA mantendo a densidade de SEO cirurgicamente calibrada.
    • Estabilização e Coragem de Linkagem (Meta 4 Links): Suavizamos as exigências textuais e restrições complexas do prompt de linkagem (mantendo a exigência estrita de 2 links internos e 2 externos vinculados a termos técnicos sem uso de negritos). Isso devolveu a confiança semântica para a IA injetar com êxito todos os 4 links solicitados no artigo sem omiti-los.

[2026-05-28 16:30] – Densidade Estratégica de Keyword Principal (0.8% a 1%) e Combate à Linearidade de Parágrafos (v1.4.9)

  • Status: Sucesso
  • Arquivos Modificados:
    • class-gap-processor.php (Refatoradas as diretrizes de Keyword Principal, Ritmo de Parágrafo e Variação Estrutural de Seções no prompt do Redator)
  • Alterações:
    • Distribuição Geográfica e Densidade Alvo (0.8% a 1.0%): Para guiar com precisão a IA (que costumava subestimar ou superestimar a densidade), mapeamos locais geográficos exatos para a inserção determinística da Keyword Principal (1x no primeiro parágrafo, 1x no H2 corporal, 1x na Conclusão e de 3 a 5x distribuídas livremente ao longo do artigo), batendo a meta ideal de pontuação máxima no RankMath e Yoast de forma orgânica.
    • Destruição da Linearidade e do Padrão Físico Fixo: Banimos o vício cognitivo da IA de gerar sempre exatamente 3 parágrafos curtos em todos os H2s de forma geométrica. Criamos uma diretriz soberana de variação que proíbe o uso da mesma quantidade de parágrafos em seções consecutivas e exige variação de esqueleto de blocos por H2.
    • Contraste de Extensão (Explicativos vs. Impacto Dinâmico): Impusemos uma regra de alternância obrigatória na escrita. Se a IA escreve um parágrafo mais denso e explicativo (25-50 palavras), o parágrafo imediatamente seguinte deve ser obrigatoriamente curto e rápido (10-20 palavras), forçando a inclusão de frases curtas de grande impacto e fôlego humano.

[2026-05-28 16:20] – Linkagem Técnica Calibrada (4 Links) e Regra Soberana de Omissão de Negritos em Links (v1.4.9)

  • Status: Sucesso
  • Arquivos Modificados:
    • class-gap-processor.php (Atualizadas as diretrizes de linkagem inteligente e a regra de negritos no prompt do Redator)
  • Alterações:
    • Linkagem Ampliada de Termos Técnicos (4 Links Totais): Calibramos a diretriz de links para fixar a meta exata de 4 links no total por post (obrigatoriamente 2 links internos contextuais e 2 links externos apontando para portais de grande relevância). Orientamos explicitamente a IA a vincular cada um dos links diretamente a termos técnicos fundamentais, marcas ou conceitos de apoio presentes no corpo do post.
    • Regra Soberana de Não Negritar Links: Implementamos uma restrição estrita determinando que é terminantemente proibido colocar links em negrito (tags <strong> envolvendo as tags <a> ou dentro delas). O link em si já é o destaque semântico e visual do termo técnico linkado; os negritos semânticos devem ser aplicados unicamente sobre termos técnicos conceituais que não receberam links. Isso elimina a poluição visual de links azuis em negrito e limpa a escaneabilidade do artigo.

[2026-05-28 16:15] – Listas de Escaneabilidade Totalmente Seletivas e Condicionais no Outline e Redator (v1.4.9)

  • Status: Sucesso
  • Arquivos Modificados:
    • class-gap-processor.php (Refatorada a regra de listas no prompt de redação, proibindo a IA de gerar listas em todos os H2s e condicionando sua criação estritamente à presença da marca [Lista] no outline)
    • class-gap-engine-openai.php (Ajustada a Regra 6 do prompt de Outline para limitar a marca [Lista] a no máximo 1 ou 2 seções de forma cirúrgica)
    • class-gap-engine-gemini.php (Ajustada a Regra 6 do prompt de Outline para limitar a marca [Lista] a no máximo 1 ou 2 seções de forma cirúrgica)
    • class-gap-engine-claude.php (Ajustada a Regra 6 do prompt de Outline para limitar a marca [Lista] a no máximo 1 ou 2 seções de forma cirúrgica)
  • Alterações:
    • Fim do Excesso de Listas nos H2s: Resolvemos a poluição visual de os artigos virem com listas em todos os blocos H2. Mudamos o comportamento para ser estritamente seletivo e condicional: o Redator só criará uma lista em HTML se a nota de seção do Outline trouxer expressamente a marca [Lista]. Além disso, calibramos o gerador de Outlines de todas as engines para inserir a marca [Lista] de forma cirúrgica e moderada (no máximo em 1 ou 2 H2s por post, apenas onde houver real necessidade, como passos ou dicas pontuais), fluindo o restante do artigo em parágrafos de texto normais.

[2026-05-28 16:10] – Correção do Sugestor de Títulos Sem Tags HTML e Prompt de Texto Puro (v1.4.9)

  • Status: Sucesso
  • Arquivos Modificados:
    • class-gap-engine-openai.php (Removida a System Message do redator de posts da chamada suggest_title e implementado prompt de texto puro para evitar tags H1 ou strong)
    • class-gap-engine-gemini.php (Removida a System Message do redator de posts da chamada suggest_title e implementado prompt de texto puro para evitar tags H1 ou strong)
    • class-gap-engine-claude.php (Removida a System Message do redator de posts da chamada suggest_title e implementado prompt de texto puro para evitar tags H1 ou strong)
  • Alterações:
    • Correção de Lixo HTML em Sugestões de Título: Corrigimos o bug que fazia a IA gerar títulos sugeridos contendo tags HTML (como <h1> ou <strong>) e múltiplos cabeçalhos. O problema ocorria porque o método suggest_title() de todas as engines herdava a System Message do redator de artigos (get_system_message()), a qual forçava formatações HTML para o corpo dos posts. Modificamos os métodos para utilizarem prompts simples, independentes e puramente focados em texto, com regras estritas para retornar apenas a string limpa do título, em texto puro, sem qualquer tag ou aspas.

[2026-05-28 15:50] – Calibragem Avançada de Conteúdo, Metas de Palavras por Tamanho e Ritmo Editorial Premium (v1.4.9)

  • Status: Sucesso
  • Arquivos Modificados:
  • class-gap-processor.php (Refatorada a função get_content_prompt() para calibrar o prompt mestre do Redator de Conteúdo com metas reais de tamanho em palavras, ritmo dinâmico flutuante humano, negritos semânticos contextuais, blindagem contra citações vazias e formatação exemplar de listas HTML limpas)
  • Alterações:
    • Injeção de Meta Real de Palavras por Size: Adicionado mapeamento inteligente no prompt do redator baseado na variável de tamanho (size) do artigo. A IA agora recebe metas explícitas de extensão corporal de acordo com a seleção (~700 palavras para Pequeno, ~1.500 palavras para Médio e +2.500 palavras para Grande), com o aviso explícito de que a seção FAQ não conta para a meta de contagem, impulsionando o fôlego semântico das LLMs.
    • Negritos Semânticos Contextuais: Além das LSIs, orientamos a IA a destacar espontaneamente com a tag <strong> termos técnicos importantes, siglas e ferramentas de alta relevância inerentes ao contexto no corpo do texto (ex: <strong>Linguagem Natural (PLN)</strong>), melhorando o escaneamento humano e SEO.
    • Citações com Atribuição de Autor Obrigatória: Acabamos com citações “soltas” e vazias que pareciam slogans jogados. A tag <blockquote> só é permitida se o outline contiver a marca contextual e, caso gerada, deve obrigatoriamente possuir uma autoria nominal realista (ex: “Como aponta o especialista em SEO [Nome], “…””). Se não houver atribuição viável, a citação é omitida.
    • Formatação Impecável de Listas HTML (Sem Markdown): Oferecido um exemplo estrito de sintaxe limpa de lista no prompt (ex: <li><strong>Nome:</strong> ...</li>), proibindo terminantemente marcadores híbridos markdown (* ou -) e blindando o fechamento das tags.
    • Flexibilidade de Ritmo Editorial: Substituídas restrições matemáticas robóticas de linhas por um ritmo de parágrafos flutuantes dinâmicos (blocos robustos conceituais de 45-80 palavras intercalados com parágrafos rápidos e curtos de 15-35 palavras) e variação de número de blocos por seção, quebrando a linearidade de IAs.

[2026-05-28 15:30] – Resolução Final de Omissão de LSI no AJAX, Suavização de Restrições e Elementos Visuais Seletivos (v1.4.9)

  • Status: Sucesso
  • Arquivos Modificados:
    • geraaipro.php (Incrementada a versão do plugin de bootstrap e constante para 1.4.9)
    • class-gap-admin.php (Correção crítica no endpoint ajax_generate_content() para carregar as Keywords Secundárias secondary do job e integrá-las de verdade no settings_for_engine enviado para a IA, resolvendo o bug de as LSIs serem ignoradas)
    • class-gap-processor.php (Suavização e simplificação das diretrizes do Redator, removendo regras de parágrafos matemáticos e físicas que causavam pânico na LLM. Adicionado incentivo forte para listas <ul>/<ol> e restrição de tabelas/citações como cirúrgicas se pedidas no outline. Enriquecimento de links externos com portais jornalísticos e bases de estudo)
    • class-gap-engine-openai.php (Otimização da Regra 6 do Outline para tornar tabelas e citações opcionais e seletivas, e listas comuns planejadas organicamente)
    • class-gap-engine-gemini.php (Otimização da Regra 6 do Outline para tornar tabelas e citações opcionais e seletivas, e listas comuns planejadas organicamente)
    • class-gap-engine-claude.php (Otimização da Regra 6 do Outline para tornar tabelas e citações opcionais e seletivas, e listas comuns planejadas organicamente)
  • Alterações:
    • Causa Raiz de Omissão de LSIs Corrigida: Identificamos que no endpoint AJAX ajax_generate_content(), a variável secondary (Keywords Secundárias) gravada no job não era lida nem repassada no array settings_for_engine enviado para a IA na chamada de geração do corpo do artigo. Isso fazia com que a IA recebesse um array de LSIs vazio e as ignorasse completamente. Corrigido!
    • Eliminação de Pânico na LLM (Fim dos Parágrafos Geométricos Artificiais): Suavizamos as restrições burocráticas de tamanhos flutuantes físicos no prompt do Redator. Agora a IA tem instruções puramente humanas para focar em parágrafos curtos, fluidos e naturais, deixando a LLM variar o ritmo sem amarras, erradicando o padrão mecânico de sempre “H2 com 3 parágrafos de 3 linhas”.
    • Tabelas e Citações 100% Seletivas (Fim da Injeção Compulsória): Reformulamos a Regra 6 das engines de Outline. A IA não é mais obrigada a injetar [Tabela] ou [Citação] em todos os outlines de forma mecânica. A geração agora é altamente cirúrgica e lógica.
    • Incentivo e Resgate de Listas Yoast: Orientamos fortemente o Redator e o Planejador a usarem listas normais (<ul>/<ol>) frequentemente para quebrar a monotonia de blocos e impulsionar a pontuação de legibilidade Yoast.
    • Links Externos de Grande Confiança: Orientamos a IA a usar domínios conceituados de notícias (G1, BBC, El País, TechCrunch, bases de pesquisa e Wikipedia) e não ficar travada apenas em wikipedia.

[2026-05-28 13:00] – Calibração Fina Contra Lost in the Middle, Destaque Obrigatório de LSIs e Ritmo Editorial Dinâmico (v1.4.8)

  • Status: Sucesso
  • Arquivos Modificados:
    • geraaipro.php (Incrementada a versão do plugin de bootstrap e constante para 1.4.8)
    • class-gap-processor.php (Correção de sintaxe/colisão de código nas funções get_system_prompt e get_content_prompt, simplificação drástica das restrições e termos policiais coercivos, priorização absoluta das LSIs no topo do prompt de conteúdo com regra obrigatória de destaque em negrito <strong>, suavização e flexibilização da regra de tamanho de parágrafos com exigência explícita de variação de quantidade de parágrafos por H2, inserção do parágrafo explicativo contextualizador obrigatório antes de qualquer tabela ou lista, e implementação do gerador de slug determinístico forçando o post_name final a ser estritamente a correspondência sanitizada exata da Keyword Principal do job para score 100% verde no RankMath e Yoast)
    • class-gap-engine-claude.php (Ajuste estético de espaçamento/quebra de linha no método generate_outline)
  • Alterações:
    • Slug Determinístico por Keyword Principal (SEO On-Page de Elite): Modificada a linha de inserção do post (finalize_and_publish_post) para forçar que o post_name do post do WordPress seja estritamente e obrigatoriamente a Keyword Principal sanitizada via sanitize_title do job (ignorando qualquer proposta de slug fictícia proposta por IAs ou variações baseadas no título H1). Isso garante URLs limpas, focadas e com score de otimização de URL máximo e infalível nos auditores de SEO do WordPress.
    • Remoção de Termos Policiais Excessivos (Forçando Menos, Flutuando Mais): Eliminamos a linguagem excessivamente coerciva (“OBRIGATÓRIO / INEGOCIÁVEL”) que estava causando travamento cognitivo nos modelos mais rápidos (Gemini Flash). O prompt agora adota um tom editorial seguro e assertivo de elite, facilitando o cumprimento de regras e a criatividade textual natural.
    • Garantição e Destaque das LSIs (Anti-Lost-in-the-Middle): Movemos as Keywords Secundárias (LSI) para o topo do prompt de conteúdo do Redator. Criamos a instrução de que cada LSI inserida deve ser obrigatoriamente destacada com a tag <strong> para servir como marcador visual para o leitor. Isso impede que a LLM ignore as LSIs e simultaneamente resolve o problema de falta de negritos semânticos distribuídos pelo texto.
    • Quebra Absoluta da Monotonía de Layout (Ritmo Flutuante por H2): Injetamos a diretriz para a IA variar intencionalmente a quantidade de parágrafos entre seções H2 (ex: seção 1 com 2 parágrafos, seção 2 com 4 parágrafos, seção 3 com 3 parágrafos) e intercale os tamanhos de parágrafos de 1 a 4 linhas, evitando o visual robótico de blocos uniformes idênticos.
    • Tabelas/Listas Sempre Precedidas de Introdução: Reforçamos a regra que proíbe elementos visuais “soltos” ou descontextualizados colados logo após os títulos. Agora, cada elemento deve vir obrigatoriamente precedido de pelo menos um curto parágrafo de introdução contextualizadora.
    • Resolução do FAQ na Contagem: Esclarecemos no prompt que as perguntas e respostas da seção de FAQ não devem ser somadas nem inflar a contagem de tamanho do corpo principal do post.

[2026-05-28 12:20] – Resolução de Inflamento de Post, Excesso de Negritos e Ativação Coordenada de Tabelas/Citações (v4.1)

  • Status: Sucesso
  • Arquivos Modificados:
    • class-gap-engine-openai.php (Ajuste no prompt do outline para injeção programática inteligente de [Tabela] e [Citação])
    • class-gap-engine-gemini.php (Ajuste no prompt do outline para injeção programática inteligente de [Tabela] e [Citação])
    • class-gap-engine-claude.php (Ajuste no prompt do outline para injeção programática inteligente de [Tabela] e [Citação])
    • class-gap-processor.php (Substituição da restrição obsessiva de contagem matemática total de palavras por metas exatas de parágrafos estruturados curtos por H2. Inserida proibição absoluta contra superlotação de negritos na Keyword Principal)
  • Alterações:
    • Erradicação do Pecado de 11-12 Parágrafos/H2: Identificamos que a IA cometia esse pecado devido à contradição entre a meta de “1.500 palavras” e os parágrafos curtos de 15-30 palavras. Removemos as metas matemáticas numéricas infladas de palavras totais do Redator, reorientando a IA a focar estritamente na estrutura e metas de parágrafos curtos por H2 (2-3 para small, 3-4 para medium, 4-5 para large). Isso normaliza o tamanho indicativo dos posts corporais e resgata um ritmo visual perfeitamente humano!
    • Morte do Excesso de Negritos na Keyword: Injetada regra de banimento absoluto proibindo a IA de negritar a Keyword Principal mais do que 2 a 3 vezes ao longo de todo o post, direcionando o negrito (<strong>) de forma contextual apenas para termos conceituais ricos (LSI) e dados.
    • Geração Coordenada de Tabelas e Citações: O Preparador de Outlines nas 3 engines foi instruído na regra 6 a selecionar inteligentemente pelo menos um H2 estratégico e marcar em suas notas de contexto a tag [Tabela] ou [Citação]. Isso ativa organicamente a geração condicional desses elementos de forma 100% natural, contextualizada e harmônica!

[2026-05-28 10:20] – Refatoração Semântica do Prompt Mestre v4.0 (O Fluxo de Elite)

  • Status: Sucesso
  • Arquivos Modificados:
    • class-gap-engine-claude.php (Outline de alta fidelidade calibrado com H1 como diretor, 5-8 H2s para médio, e cravadas 5 perguntas no FAQ)
    • class-gap-processor.php (Novo mapeamento estrito dos 4 níveis de profundidade técnica em replace_placeholders e refatoração completa do prompt do Redator em get_content_prompt com parágrafos rítmicos flutuantes curtíssimos de 2-4 linhas / 15-30 palavras, e condicionalidade estrita contra tabelas/citações descontextualizadas)
  • Alterações:
    • H1 como Diretor Soberano: Ajustado o Preparador de Outlines nas 3 engines (OpenAI, Gemini e Claude) para garantir que a quantidade de seções H2 geradas reflita perfeitamente qualquer promessa numérica contida no título principal (ex: se o H1 prometer “7 Dicas”, o outline gerará exatamente 7 H2s correspondentes).
    • Calibração de Volume de H2s: Ajustado o tamanho médio (medium) de posts para gerar entre 5 a 8 seções H2.
    • Mapeamento de 4 Profundidades: O placeholder {{DEPTH}} agora injeta de forma ultra clara os 4 níveis de complexidade (Básico, Intermediário, Avançado ou Especialista) para evitar sobreposição ou tecnicismo indevido nas redações de nível médio.
    • Parágrafos Ultra Curtos (2 a 4 Linhas / 15 a 30 Palavras): Calibrado o prompt do Redator com regras rígidas de ritmicidade flutuante dinâmica inegociável, forçando a IA a criar posts altamente escaneáveis e fluidos na tela com variação contínua no tamanho de parágrafos consecutivos (ex: 2 linhas, 4 linhas, 2 linhas, 3 linhas).
    • Condicionalidade Rígida de Elementos: Tabelas e citações agora são estritamente proibidas a menos que sejam solicitadas de forma explícita nas notas de contexto do outline ([Tabela] ou [Citação]), eliminando inserções descontextualizadas. Além disso, toda lista de itens (<ul>/<ol>) deve ser obrigatoriamente antecedida por um parágrafo introdutório de apoio para dar fluxo.
    • FAQ Schema Cravado: O FAQ condicional agora gera exatamente 5 perguntas frequentes de forma integrada com o nosso parser nativo de FAQ Schema estruturado JSON-LD.

[2026-05-27 23:00] – Restauração Definitiva do FAQ no Wizard, Calibragem por 4 Níveis de Profundidade, Estabilização do Gemini, Prompt de Imagem com Marca d’Água e UI de Custos Reais [v1.4.7]

  • Status: Sucesso
  • Arquivos Modificados:
    • geraaipro.php (Versão do plugin e constante de bootstrap incrementadas para 1.4.7)
    • class-gap-admin.php (Correção definitiva de FAQ com salvamento explícito da flag faq no array_merge de $saved_settings no Passo 1; envio explícito de faq via FormData no JS do Passo 2 e leitura resiliente de $_POST['faq'] ?? $current_settings['faq'] ?? '0'; adicionado o Gemini 3.0 Flash a R$ 0,29 nos cards de estimativas reais e reajustados Claude e GPT Premium para ‘Testando…’)
    • class-gap-processor.php (Ampliação do regex de captura de FAQ no pós-processamento para suportar de forma robusta e flexível tags H3 e H4; implementada a injeção do panorama total de 4 Níveis de Profundidade no placeholder {{DEPTH}} no Prompt Mestre; atualizado o prompt de imagens Nano Banana com resolução 4k, higienização estrita contra aspas duplas e inserção dinâmica de marca d’água semitransparente com o nome do site)
    • class-gap-engine-gemini.php (Calibrada a temperatura padrão da linha Gemini 2.x/2.0 para 0.7 após validação prática do usuário; unificada e simplificada a injeção condicional do thinkingConfig para qualquer modelo da linha Gemini 3.x de forma robusta e livre de erros HTTP 400)
    • skill_gemini-api.md (Seção 7 atualizada registrando as medições exatas de faturamento e detalhando os 4 Níveis de Profundidade para as IAs)
  • Alterações:
    • A Resolução Definitiva e Blindagem do FAQ no Wizard (Bypass de Perdas):
      • Identificamos e corrigimos de vez o gargalo estrutural que omitia o FAQ no Wizard: além do array_merge seguro resgatando as chaves do banco no outline (Passo 1), forçamos o salvamento explícito da chave 'faq' no array final.
      • Blindamos o pipeline implementando o envio da flag faq ativamente via AJAX no JS do Passo 2 e ajustando o receptor ajax_generate_content para ler a flag com prioridade do POST. Isso garante que a flag seja propagada ao prompt mestre sob qualquer circunstância.
    • Prompt de Imagem Enriquecido e Altamente Sanitizado:
      • Atualizamos o prompt de geração de imagens das Nano Bananas no processador principal: adicionamos a tag 4k de alta definição, realizamos higienização contra aspas duplas no título e no nome do site (o Gemini cancela a requisição se houver aspas duplas no prompt) e incorporamos uma diretiva estruturada em inglês para inserir o nome do site (obtido via get_bloginfo('name')) como marca d’água discreta e semitransparente na parte inferior.
      • Sanitizamos redundâncias do prompt anterior (como photorealistic, realistic, dslr, etc.) e eliminamos a contradição linguística de texto (“no text, no words” vs “inserir texto”) adotando uma instrução limpa, objetiva e muito mais econômica de tokens: "A professional 4k realistic DSLR photograph for a blog post about: '{clean_title}'. No accidental text or labels, except for a single discrete, semi-transparent watermark text at the bottom center saying: '{clean_site_name}'."
    • Calibragem Semântica por 4 Níveis de Profundidade no Prompt Mestre:
      • Evitamos que modelos de altíssima capacidade cognitiva como o Gemini 3.1 Pro fiquem excessivamente analíticos ou técnicos em tom moderado (“Intermediário”). O placeholder {{DEPTH}} agora injeta dinamicamente o panorama descritivo completo das 4 profundidades disponíveis do plugin para orientar semântica e comparativamente a IA sobre onde ela deve se situar na complexidade técnica da escrita.
    • Regex do FAQ Schema Ultra-Resiliente (H3 e H4):
      • Ampliamos o motor regex em finalize_and_publish_post para capturar indistintamente tags H3 e H4 na seção final de FAQ, permitindo injeção perfeitamente limpa do FAQPage JSON-LD estruturado mesmo que os modelos flutuem a hierarquia de cabeçalhos HTML.
    • Calibragem de Temperatura (0.7) e ThinkingConfig Universal (Gemini):
      • Calibramos a temperatura padrão de modelos da linha Gemini 2.x/2.0 para 0.7 após testes práticos e validação satisfatória do usuário na velocidade e qualidade.
      • Implementamos pattern matching robusto que intercepta qualquer variante Gemini 3.x (incluindo gemini-3.0-flash e novos lançamentos) e injeta o thinkingConfig correspondente (Medium para Pro e Minimal para Flash/Lite), bloqueando sumariamente qualquer erro 400 de Thinking Mode.
    • Cards Premium com Medições Reais de Produção (Fim do Achismo):
      • Remodelamos toda a grade de cards na UI administrativa para refletir com exatidão científica os dados e faturamentos medidos pelo usuário na prática:
        • Gemini 3.5 Flash: R$ 0,47 / post (Recomendado, leitura excelente).
        • Gemini 3.0 Flash: R$ 0,29 / post (Melhor Custo-Benefício, boa qualidade).
        • GPT-5.4 Mini: R$ 0,30 / post (Belo equilíbrio OpenAI).
        • Claude 4.5 Sonnet / GPT-5.4 Premium: Marcados com status “Testando…” conforme os prints de produção do usuário.
      • Incorporamos as medições completas do usuário (incluindo o Gemini 3.1 Flash Lite a R$ 0,26 e o Gemini 3.1 Pro a R$ 2,01) no texto didático de rodapé das configurações.
    • Cards Premium com Medições Reais de Produção (Fim do Achismo):
      • Remodelamos toda a grade de cards na UI administrativa para refletir com exatidão científica os dados e faturamentos medidos pelo usuário na prática:
        • Gemini 3.5 Flash: R$ 0,47 / post (Recomendado, leitura excelente).
        • Gemini 3.0 Flash: R$ 0,29 / post (Melhor Custo-Benefício, boa qualidade).
        • GPT-5.4 Mini: R$ 0,30 / post (Belo equilíbrio OpenAI).
        • Claude 4.5 Sonnet / GPT-5.4 Premium: Marcados com status “Testando…” conforme os prints de produção do usuário.
      • Incorporamos as medições completas do usuário (incluindo o Gemini 3.1 Flash Lite a R$ 0,26 e o Gemini 3.1 Pro a R$ 2,01) no texto didático de rodapé das configurações.

[2026-05-27 20:20] – Alinhamento e Correção de Argumentos da API Nano Banana Original (Gemini 2.5 Flash Image) [v1.4.6]

  • Status: Sucesso
  • Arquivos Modificados:
    • geraaipro.php (Versão do plugin e constante de bootstrap incrementadas para 1.4.6)
    • class-gap-engine-gemini.php (Ajustada a estrutura JSON de requisição da imagem para o motor Gemini 2.5 Flash Image)
  • Alterações:
    • Correção de Erro de Argumento Inválido (Imagem Nano Banana Original):
      • Identificamos a causa raiz da falha de criação de imagem no modelo Gemini 2.5 Flash Image (gemini-2.5-flash-image): a API REST v1beta oficial rejeitava a estrutura de payload baseada em responseFormat.image.aspectRatio, retornando erro HTTP 400 (Invalid value at 'generation_config.response_format.image.aspect_ratio').
      • Corrigimos o payload no driver utilizando a mesma estrutura de alta fidelidade que funciona com absoluto sucesso em ambientes corporativos de automação (n8n): reestruturamos para consumir as chaves 'responseModalities' => ['Image'] (com casing correto) e 'imageConfig' => ['aspectRatio' => $aspect_ratio], garantindo aprovação estrita dos argumentos pela API e a geração perfeita do asset de destaque.

[2026-05-27 20:00] – Calibragem Dinâmica de Temperatura e Inteligência Determinística para Gemini 2.5 [v1.4.5]

  • Status: Sucesso
  • Arquivos Modificados:
    • geraaipro.php (Versão do plugin e constante de bootstrap incrementadas para 1.4.5)
    • class-gap-engine-gemini.php (Ajuste fino de temperatura dinâmica: forçada a temperatura 0.7 para modelos da linha Gemini 2.x/2.0 e mantida a temperatura 1.0 estrita para a linha Gemini 3.x com raciocínio)
  • Alterações:
    • Calibragem Dinâmica de Temperatura (Determinação vs Criatividade):
      • Identificamos uma inconsistência de latência e coerência semântica ao operar o modelo Gemini 2.5 Flash (gemini-2.5-flash) sob a temperatura padrão 1.0. Por ser um modelo da geração anterior (sem o mecanismo de raciocínio rígido da linha 3.x), temperaturas elevadas induzem maior entropia linguística, o que causava atraso excessivo no processamento das APIs determinísticas (geração de outlines, títulos H1 e palavras-chave sugeridas) e desvios de conformidade com a palavra-chave.
      • Implementamos inteligência condicional no driver que detecta se o modelo selecionado pertence às séries gemini-2.5 ou gemini-2.0 e reduz a temperatura automaticamente para 0.7, resgatando velocidade instantânea de geração e fidelidade estrita às regras do prompt (como inclusão obrigatória da keyword no H1).
      • Preservamos a temperatura estrita em 1.0 para os modelos da geração gemini-3.x para atender de forma perfeita aos requisitos rígidos do Thinking Mode e evitar loops de raciocínio profundo da API.

[2026-05-27 19:50] – Resolução Dinâmica de Thinking Mode do Gemini, Ajuste Fino de Custos e Polimento no Painel [v1.4.4]

  • Status: Sucesso
  • Arquivos Modificados:
    • geraaipro.php (Versão do plugin e constantes de bootstrap incrementadas para 1.4.4)
    • class-gap-engine-gemini.php (Implementação de inteligência de injeção condicional do thinkingConfig no driver base para banir erros HTTP 400 em modelos antigos ou linhas Pro da API do Gemini)
    • class-gap-admin.php (Atualização e polimento estratégico do texto informativo de viabilidade e custos de imagens Nano Banana Original vs OpenAI, tornando a UX muito mais direta e objetiva)
  • Alterações:
    • Injeção Condicional e Mapeamento Inteligente de Pensamento (Thinking Mode):
      • Corrigido o erro crítico HTTP 400 (Thinking level is not supported for this model) no modelo premium recomendado Gemini 2.5 Flash (gemini-2.5-flash), omitindo por completo a chave thinkingConfig no payload generationConfig.
      • Corrigido o erro HTTP 400 (Thinking level MINIMAL is not supported...) no modelo de alta fidelidade Gemini 3.1 Pro (gemini-3.1-pro-preview), mapeando-o ativamente para injetar 'thinkingLevel' => 'medium', o que é perfeitamente suportado de forma oficial.
      • Preservado o nível de economia ultra-agressiva 'thinkingLevel' => 'minimal' exclusivamente para os modelos da linha Flash que suportam pensamento (como gemini-3.1-flash-lite e gemini-3.5-flash).
    • Polimento e Objetividade do Texto de Transparência de Custos (UI Admin):
      • Redesenhamos o parágrafo informativo do cabeçalho de configurações no painel administrativo, eliminando explicações longas de bastidores em favor de uma chamada concisa de valor comercial da nova Fila Assíncrona e das métricas reais em produção:
        • Fila Assíncrona: Focada em estabilidade, eliminação de timeouts e zero duplicação de tokens.
        • Métricas e Cotação: Baseadas em cotação fixa $1.00 USD = R$ 5.00 BRL com uso de Gemini 2.5 Flash / GPT-5.4 Mini e imagens via Nano Banana Original (Gemini 2.5 Image a $0.039/imagem).

[2026-05-27 19:30] – Documentação Oficial das Variantes Nano Banana e cURL de Geração Multimodal Gemini 2.5 [v1.4.3]

  • Status: Sucesso
  • Arquivos Modificados:
    • skill_gemini-api.md (Adicionados cURL de requisição REST v1beta para o modelo gemini-2.5-flash-image e o detalhamento técnico comparativo e conceitual do ecossistema Nano Banana na API Gemini)
  • Alterações:
    • Especificações Oficiais do Ecossistema Nano Banana de Imagens:
      • Incorporamos as definições exatas de modelagem da API Gemini no manual do desenvolvedor para orientar futuras decisões do agente e manter a transparência de custos das imagens geradas por IA:
        • Nano Banana: Modelo Gemini 2.5 Flash Image (gemini-2.5-flash-image) — focado em velocidade e máxima eficiência de custos para tarefas de alto volume e baixa latência (consumo de 1.290 tokens / US$ 0.039 por imagem).
        • Nano Banana 2: Modelo pré-lançamento do Gemini 3.1 Flash Image (gemini-3.1-flash-image-preview) — contrapartida de velocidade e alta eficiência do Gemini 3 Pro Image (consumo de 1.120 tokens / US$ 0.067 por imagem).
        • Nano Banana Pro: Modelo Prévia de imagens no Gemini 3 Pro (gemini-3-pro-image-preview) — projetado para fins profissionais com o recurso avançado de Thinking Mode de imagem.
      • Injeção do Exemplo cURL de Produção:
        • Adicionado o exemplo exato de payload REST (v1beta) para geração multimodal de imagens usando o modelo ultra-econômico gemini-2.5-flash-image com formato de proporção 'aspectRatio': '16:9' encapsulado sob a propriedade 'responseFormat', garantindo a sintaxe e faturamento projetados de fábrica.

[2026-05-27 16:15] – Otimização de Custos com Gemini 3.1 Flash Lite, Restauração e Blindagem do FAQ e Transparência Real na UI [v1.4.3]

  • Status: Sucesso
  • Arquivos Modificados:
    • geraaipro.php (Versão do plugin incrementada para 1.4.3)
    • class-gap-engine-gemini.php (Adicionado o modelo de economia extrema gemini-3.1-flash-lite como padrão nativo e de fallback do construtor, injetado thinkingConfig => [thinkingLevel => minimal] no payload REST para reduzir drasticamente o faturamento de tokens de raciocínio, corrigida a modalidade de imagem para 'IMAGE' em maiúsculas e blindado o prompt de outline para geração do FAQ)
    • class-gap-engine-openai.php (Corrigido bug do tipo de dados no outline para detecção e injeção do FAQ e blindado o prompt do outline para geração obrigatória de FAQ)
    • class-gap-engine-claude.php (Corrigido bug de tipo de dados de fallback na checagem de FAQ no outline e blindado o prompt do outline para FAQ)
    • class-gap-processor.php (Adicionada diretriz ultra-rígida de proibição de markdown no prompt de conteúdo unificado, forçando o uso estrito de <strong> em vez de asteriscos)
    • class-gap-admin.php (Inserido o modelo ‘Gemini 3.5 Flash Lite (Ultra Econômico)’ mapeando para o slug real gemini-3.1-flash-lite no select de configurações administrativas e reajustadas todas as estimativas dos cards de transparência de custos para patamares reais de produção)
    • VIBE_CHECKLIST.md (Checklist atualizada com as novas correções de faturamento e estabilização de FAQ)
  • Alterações:
    • Introdução do Gemini 3.1 Flash Lite (Economia Extrema):
      • Adicionamos suporte nativo para o modelo de alta eficiência gemini-3.1-flash-lite (oficialmente nomeado como Gemini 3.5 Flash Lite comercialmente) tanto no banco quanto no select administrativo. Definido como o modelo padrão de fábrica do driver. Ele custa de 30 a 60 vezes menos que o Flash normal (Input $0.035 / 1M, Output $0.15 / 1M), derrubando o faturamento do texto de um post de 2000 palavras para meros centavos.
    • Derrubada Drástica do Faturamento do Gemini (Thinking Mode):
      • Identificamos a causa raiz de um post de teste do Gemini 3.5 Flash custar R$ 1,43: por padrão, ao processar prompts altamente estruturados como o nosso mestre, o Gemini 3.x ativa o modo de raciocínio avançado (“Thinking Mode”) e gera dezenas de milhares de “tokens de pensamento” que são cobrados como saída normal.
      • Atualizamos o método de requisição base send_request() no driver do Gemini para injetar o parâmetro 'thinkingConfig' => [ 'thinkingLevel' => 'minimal' ] e forçar 'temperature' => 1.0 dentro do payload generationConfig. Isso minimiza o processamento interno redundante e reduz os custos em mais de 90%, trazendo as despesas para a casa de frações mínimas de centavos.
    • Correção da Geração de Imagem com Gemini (Nano Banana 2):
      • Corrigido o erro de formatação do payload JSON no método generate_image() do Gemini. A API generativa REST do Google exige o enum de modalidade de imagem estritamente em maiúsculas (IMAGE). Ajustado 'responseModalities' => [ 'IMAGE' ], restaurando com sucesso a criação e download das imagens de destaque do Gemini.
    • Restauração e Blindagem do FAQ no Outline (OpenAI, Gemini e Claude):
      • Corrigido um bug transversal na checagem de tipo do FAQ no método generate_outline() de todas as engines. As classes faziam a comparação estrita $settings['faq'] === 'true', o que falhava quando as configurações decodificadas do banco passavam booleanos nativos (true) ou números (1). Substituído por uma condicional robusta e flexível idêntica à do processador.
      • Prompt Reforçado de Outline: Reformulamos o prompt do outline nas 3 engines para blindar totalmente o preenchimento da chave "faq" no JSON. O prompt agora instrui explicitamente a IA a preencher o array com pelo menos 5 perguntas relevantes caso o FAQ seja solicitado, dando exemplo de estrutura para impedir que a chave seja gerada como array vazio []. Isso resolve definitivamente a geração das Perguntas Frequentes.
    • Blindagem Anti-Markdown contra Asteriscos (**) em Negritos:
      • Para combater o vício semântico do Gemini de entregar negritos em formato Markdown convencional (**texto**), inserimos uma proibição ultra-rígida na diretriz de saída de formato do prompt unificado em class-gap-processor.php, blindando e forçando estritamente o emprego das tags HTML <strong> e </strong>.
    • Transparência de Custos Reais na UI:
      • Atualizamos a nota do card premium de faturamento no painel de configurações para reflectir o Gemini 3.5 Lite (~R$ 0,018 por post com imagem) e reajustamos a estimativa do card do GPT-5.4 Mini para os realistas R$ 0,30 por post com imagem medidos pelo usuário em produção, trazendo clareza absoluta ao painel administrativo.amento do texto de um post de 2000 palavras para meros centavos.
    • Derrubada Drástica do Faturamento do Gemini (Thinking Mode):
      • Identificamos a causa raiz de um post de teste do Gemini 3.5 Flash custar R$ 1,43: por padrão, ao processar prompts altamente estruturados como o nosso mestre, o Gemini 3.x ativa o modo de raciocínio avançado (“Thinking Mode”) e gera dezenas de milhares de “tokens de pensamento” que são cobrados como saída normal.
      • Atualizamos o método de requisição base send_request() no driver do Gemini para injetar o parâmetro 'thinkingConfig' => [ 'thinkingLevel' => 'minimal' ] e forçar 'temperature' => 1.0 dentro do payload generationConfig. Isso minimiza o processamento interno redundante e reduz os custos em mais de 90%, trazendo as despesas para a casa de frações mínimas de centavos.
    • Correção da Geração de Imagem com Gemini (Nano Banana 2):
      • Corrigido o erro de formatação do payload JSON no método generate_image() do Gemini. A API generativa REST do Google exige o enum de modalidade de imagem estritamente em maiúsculas (IMAGE). Ajustado 'responseModalities' => [ 'IMAGE' ], restaurando com sucesso a criação e download das imagens de destaque do Gemini.
    • Restauração e Blindagem do FAQ no Outline (OpenAI, Gemini e Claude):
      • Corrigido um bug transversal na checagem de tipo do FAQ no método generate_outline() de todas as engines. As classes faziam a comparação estrita $settings['faq'] === 'true', o que falhava quando as configurações decodificadas do banco passavam booleanos nativos (true) ou números (1). Substituído por uma condicional robusta e flexível idêntica à do processador.
      • Prompt Reforçado de Outline: Reformulamos o prompt do outline nas 3 engines para blindar totalmente o preenchimento da chave "faq" no JSON. O prompt agora instrui explicitamente a IA a preencher o array com pelo menos 5 perguntas relevantes caso o FAQ seja solicitado, dando exemplo de estrutura para impedir que a chave seja gerada como array vazio []. Isso resolve definitivamente a geração das Perguntas Frequentes.
    • Blindagem Anti-Markdown contra Asteriscos (**) em Negritos:
      • Para combater o vício semântico do Gemini de entregar negritos em formato Markdown convencional (**texto**), inserimos uma proibição ultra-rígida na diretriz de saída de formato do prompt unificado em class-gap-processor.php, blindando e forçando estritamente o emprego das tags HTML <strong> e </strong>.
    • Transparência de Custos Reais na UI:
      • Atualizamos a nota do card premium de faturamento no painel de configurações para reflectir o Gemini 3.5 Lite (~R$ 0,018 por post com imagem) e reajustamos a estimativa do card do GPT-5.4 Mini para os realistas R$ 0,30 por post com imagem medidos pelo usuário em produção, trazendo clareza absoluta ao painel administrativo.

[2026-05-27 14:18] – Integração do Nível de Profundidade no Prompt Mestre, Placeholders e Comparativo Visual na UI [v1.4.0]

  • Status: Sucesso
  • Arquivos Modificados:
    • geraaipro.php (Versão incrementada de 1.3.9 para 1.4.0 na constante GAP_VERSION e cabeçalho principal)
    • class-gap-processor.php (Leitura do dropdown profile_depth com mapeamento semântico detalhado e injeção do placeholder {{DEPTH}} na System Message)
    • class-gap-admin.php (Injeção de box interativo premium com abas dinâmicas em Javascript mostrando o mesmo parágrafo escrito nas 4 profundidades e script de alternância)
    • VIBE_CHECKLIST.md (Checklist atualizado marcando a entrega da integração de profundidade editorial)
  • Alterações:
    • Mapeamento Rico de Nível de Profundidade:
      • Resolvido o fato de o campo de Nível de Profundidade (profile_depth) estar anteriormente “órfão” no fluxo de processamento de texto, embora estivesse sendo perfeitamente salvo na interface.
      • Implementada a leitura ativa em replace_placeholders usando GAP_Settings::get('profile_depth', 'intermediario').
      • Criado um dicionário estrito de descritores semânticos avançados que traduz a chave crua do banco em instruções profundas e pragmáticas para os motores de inteligência artificial:
        • basico: “Básico (focado em conceitos simples, linguagem acessível, direto ao ponto e sem termos excessivamente técnicos)”
        • intermediario: “Intermediário (conteúdo equilibrado com bons detalhes, explicações claras e aprofundamento moderado)”
        • avancado: “Avançado (rico em detalhes técnicos, jargões específicos do setor, análises aprofundadas e discussões completas)”
        • especialista: “Especialista de Elite (profundidade técnica exaustiva, comparativos de alto nível, análises minuciosas de dados e insights exclusivos de mercado com tom altamente qualificado)”
    • Injeção Dinâmica no Prompt Mestre da System Message:
      • Modificado o método centralizado get_system_prompt() para incorporar o novo placeholder no fluxo descritivo da IA:
        • “Seu público-alvo é ‘{{AUDIENCE}}’, o nível de profundidade técnica exigido do seu conteúdo é ‘{{DEPTH}}’ e você deve adotar um tom de voz estritamente ‘{{TONE}}’.”
      • Isso garante que a calibragem técnica da escrita seja rigidamente respeitada em 100% dos artigos gerados (tanto no modo de geração individual Single/Wizard quanto em processamentos em lote/Bulk).
    • Comparativo Visual Interativo de Profundidade na UI (Onboarding de UX):
      • Desenvolvido e injetado um box interativo de comparação prática em TailwindCSS logo abaixo do seletor dropdown do Nível de Profundidade no painel de configurações.
      • O bloco apresenta um comparativo dinâmico em abas rápidas mostrando exatamente o mesmo parágrafo conceitual (sobre o tema “Caching de Páginas”) reescrito em cada um dos 4 níveis técnicos (Básico, Intermediário, Avançado e Especialista).
      • Criada a rotina Javascript de alta performance e latência zero gapSwitchDepthTab(level) para alternar instantaneamente o parágrafo explicativo e atualizar visualmente o estado das abas com as cores premium da paleta da marca (bg-brand-yellow e text-deep-navy), oferecendo uma excelente demonstração prática do poder do algoritmo para o usuário final.

[2026-05-27 14:10] – Otimização SEO On-Page Yoast/RankMath Estrita, Variação Rítmica, FAQ Schema Automático e Keywords Secundárias Independentes [v1.3.9]

  • Status: Sucesso
  • Arquivos Modificados:
    • geraaipro.php (Incrementada a versão do plugin de bootstrap e cabeçalho principal pelo usuário para 1.3.9)
    • class-gap-admin.php (JS do Wizard, AJAX handler de outline, interface do Bulk, parser Javascript e handler PHP de adição de jobs em massa para suportar o novo fluxo de keywords secundárias isoladas)
    • class-gap-processor.php (Integração e unificação de LSI’s de fallback no prompt, novo parser regex e injeção automatizada do FAQ Schema estruturado JSON-LD)
    • VIBE_CHECKLIST.md (Checklist de tarefas atualizado e marcado como concluído para toda a Fase 5 de Inteligência SEO e EEAT)
  • Alterações:
    • Separação de Keywords Secundárias (LSI) e Tags WP (Wizard & Bulk): Resolvemos de forma definitiva a confusão entre tags taxonomias do WordPress e palavras-chave de apoio no prompt de IA.
      • No Wizard, atualizamos o JS para capturar separadamente o campo gap-secondary e transmiti-lo via AJAX.
      • No Bulk, criamos o campo de Keywords Secundárias de lote lateral em grid na UI, redesenhamos a caixa explicativa e o placeholder suportando a 5ª coluna (Keyword, Categoria, Tags WP, Titulo Customizado, Keywords Secundárias) na planilha CSV do lote, e tratamos o fallback automático na função PHP ajax_add_bulk_jobs.
      • Os jobs agora gravam a chave secondary de forma limpa nas configurações do banco.
    • Injeção Automática de FAQ Schema estruturado JSON-LD (Single & Bulk): Desenvolvemos um parser nativo robusto em PHP no método finalize_and_publish_post que extrai as perguntas (<h3>) e respostas (<p>) da seção FAQ do texto final via expressões regulares e gera a marcação estruturada JSON-LD (application/ld+json) recomendada pelo Google, concatenando de forma limpa e segura no final de post_content. Isso confere rich snippets automáticos e indexação aprimorada no Discover/SERPs.
    • Mapeamento Semântico no Prompt com Fallback: No processador, fundimos de forma inteligente a injeção do prompt da Regra 11. Se houver secondary configurada, o prompt adota as secundárias ricas; caso contrário, recorre de forma retrocompatível à chave tags, blindando a escrita da IA de elite.
    • Variação Rítmica Extrema e Antirobotização (Regra 4): Reformulamos a instrução de tamanho de parágrafos no prompt principal para impor uma alternância e flutuação extrema no número de palavras entre parágrafos consecutivos (com exemplos claros de 15, 28, 18, 32 palavras), erradicando qualquer linearidade de layout geométrico de blocos artificiais.
    • Diretrizes Avançadas E-E-A-T & Google HCU (Etapa 5.B):
      • Perspectiva de Equipe Especialista: Atualizamos o get_system_prompt definindo a vivência técnica e experiência empírica real de mercado da equipe editorial no nicho ({{NICHE}}).
      • Experiência Prática Simulada (Regra 15): Exigimos da IA ganchos e observações reais em primeira pessoa do plural (“em nossos laboratórios”, “em nossos testes práticos observamos que…”) para chancelar a autoria e expertise.
      • Evidências Factualizadas (Regra 15): Instruímos a IA a fundamentar teorias abstratas com estatísticas plausíveis, proporções reais e dados numéricos lógicos.
      • Antirredundância HCU (Regra 16): Removemos rodeios das introduções (“neste artigo vamos…”) em favor de entregas de valor instantâneas e bloqueamos repetições de ideias em tópicos H2 subsequentes.
      • Banimento Estrito de Termos de IA (Regra 17): Criamos uma lista rígida de palavras hiperbólicas proibidas (“revolucionário”, “crucial”, “divisor de águas”, “essencial para”, “no cenário atual”, “jornada de aprendizado”, “fundamental ressaltar”) para elevar o tom à sobriedade do jornalismo técnico.

[2026-05-26 15:55] – Centralização de Prompts (OpenAI, Gemini e Claude), Controle de FAQ no JSON e Links com Fallback [v1.3.7]

  • Status: Sucesso
  • Arquivos Modificados:
    • geraaipro.php (Versão incrementada para 1.3.7 pelo usuário)
    • class-gap-processor.php (Cálculo matemático restritivo de parágrafos, remoção da chave ‘faq’ do outline JSON se desabilitado e criação de resolvedor centralizado de links internos get_internal_links com fallbacks)
    • class-gap-admin.php (Leitura e propagação correta da opção ‘faq’ no AJAX de geração manual e adoção da busca de links internos centralizada)
    • class-gap-engine-claude.php (Refatorado para consumir os prompts dinâmicos e estáticos unificados do processador core, alinhando as três engines de fábrica)
  • Alterações:
    • Alinhamento dos 3 Motores: Refatoramos a classe do Claude para ler a system message e o prompt de escrita a partir do processador central. Agora, OpenAI, Gemini e Claude compartilham 100% dos mesmos prompts de conteúdo dinâmicos.
    • Controle Preciso de Palavras (Small ~700-800 palavras): Calibramos dinamicamente o número ideal de parágrafos por H2 no prompt dividindo o target real por 28 palavras/parágrafo e encurtando o teto superior da faixa permitida. Isso restringe o estouro de palavras, cravando o tamanho small na média ideal de ~700-800 palavras (comprovado em teste real com 890 palavras) sem afetar a riqueza e burstiness natural do texto.
    • Bloqueio de Alucinação de FAQ: Se o FAQ estiver desmarcado nas opções, o plugin agora remove fisicamente a chave 'faq' de dentro do JSON do outline antes de enviá-lo para a IA. Sem chaves ou palavras referentes a FAQ no outline de entrada, eliminamos qualquer chance da IA gerar perguntas. Também passamos a ler e propagar corretamente o parâmetro faq no pipeline manual.
    • Buscador Inteligente de Links com Fallback: Desenvolvemos a função GAP_Processor::get_internal_links que pesquisa posts contendo a palavra-chave por relevância. Se nada for encontrado, tenta com as 2 primeiras palavras da keyword; em última instância, sugere os 3 posts mais recentes do blog. Isso garante que a IA sempre receba opções válidas de linkagem interna e nunca abandone a regra de links internos obrigatória.

[2026-05-26 14:40] – Mudança no Pipeline de Imagens OpenAI para Download via URL & Resolução do Erro 400 [v1.3.6]

  • Status: Sucesso
  • Arquivos Modificados:
    • geraaipro.php (Versão incrementada para 1.3.6 nas constantes globais e cabeçalho do plugin)
    • class-gap-engine-openai.php (Remoção do parâmetro response_format que causava HTTP 400 na API gpt-image-2)
    • class-gap-processor.php (Substituição de decodificação Base64 por download seguro via URL na condicional image_engine === 'openai')
  • Alterações:
    • Correção de Erro de API de Imagens (HTTP 400): Ao rodar a chamada de imagens no DALL-E 3 / gpt-image-2 pelo endpoint tradicional /v1/images/generations, a OpenAI retornava erro de requisição inválida devido ao parâmetro "response_format": "b64_json".
    • Pipeline Baseado em URL Otimizada: Ajustamos a chamada no driver de OpenAI para omitir esse parâmetro, fazendo a API responder com sucesso imediato trazendo a URL final da imagem gerada.
    • Download e Conversão WebP Nativa: O processador core foi atualizado para ler $body['data'][0]['url'], realizar o download seguro via download_url() (idêntico ao motor robusto do Unsplash), aplicar as rotinas do compressor do WordPress (WP_Image_Editor), convertendo e salvando o arquivo final no formato moderno .webp com sideloading perfeito na Galeria de Mídia. Isso erradicou o bug e consolidou o motor de imagens do GPT como 100% resiliente!

[2026-05-26 14:30] – Correção do Bug de Exclusão Física de Chaves de API no Javascript [v1.3.5]

  • Status: Sucesso
  • Arquivos Modificados:
    • geraaipro.php (Versão incrementada para 1.3.5 nas constantes globais e cabeçalho do plugin)
    • class-gap-admin.php (Correção do erro de chaves/sintaxe JS de fechamento de escopo na função gapClearApiKey)
  • Alterações:
    • Correção da Lixeira de APIs (Erro Javascript): Descobrimos e corrigimos cirurgicamente um erro clássico de sintaxe no encadeamento de escopos de chaves (}) na função Javascript gapClearApiKey no painel de configurações.
    • Sintaxe Restaurada: A função possuía apenas um fechamento de chaves para fechar simultaneamente a função e o bloco if (confirm(...)). Com a inserção da chave de fechamento ausente (}), o script foi perfeitamente parseado pelo navegador e o comportamento visual da lixeira (limpar o placeholder, marcar o input hidden de limpeza para o array gap_clear_api_keys[] e ocultar o ícone de lixeira no formulário) voltou a funcionar 100% como projetado de fábrica!

[2026-05-26 14:05] – Geração de Imagem via OpenAI (gpt-image-2) & Claude Haiku por Padrão [v1.3.4]

  • Status: Sucesso
  • Arquivos Modificados:
    • geraaipro.php (Versão incrementada para 1.3.4 nas constantes globais e cabeçalho do plugin)
    • class-gap-engine-openai.php (Implementado o método generate_image consumindo o endpoint /v1/images/generations e o modelo gpt-image-2 na qualidade medium com proporções flexíveis)
    • class-gap-engine-claude.php (Alterado o modelo padrão de fallback de fábrica no construtor para claude-haiku-4-5-20251001)
    • class-gap-admin.php (Adicionado ‘OpenAI GPT Image 2’ como motor de imagens nas configurações administrativas e geração em Massa, Claude 4.5 Haiku como modelo padrão e nota detalhada comparando custos de imagem do Gemini vs OpenAI)
    • class-gap-processor.php (Integrada condicional image_engine === 'openai' no pipeline finalizador de postagens para orquestrar sideloading, otimização e compressão WebP nativa)
    • VIBE_CHECKLIST.md (Marcado como concluído o item de roadmap de suporte ao motor de imagens da OpenAI)
  • Alterações:
    • Suporte ao Motor de Imagem OpenAI (gpt-image-2): Conforme as novas especificações da Skill_OpenAi-api.md, adicionamos suporte completo para geração de imagem por inteligência artificial utilizando a OpenAI.
    • Tratamento Multimodal de Imagens: A requisição solicita o formato b64_json na resolução ideal mapeada em múltiplos de 16 conforme aspect ratio do plugin (ex: a proporção nativa 3:2 mapeia para 1536x1024 e 16:9 mapeia para 1792x1024). A qualidade de geração é cravada na opção recomendada medium (custo equilibrado de ~$0.053 por imagem). O base64 retornado sob data[0].b64_json é tratado de forma robusta pelo processador, salvando o temporário, rodando a compressão de imagem nativa (WP_Image_Editor) e convertendo para WebP para sideloading na Galeria do WordPress.
    • Nota de Transparência de Custos Expandida: Atualizamos o card de viabilidade financeira para explicar a diferença de custos caso o usuário escolha gerar imagens pela OpenAI (R$ 0,26 extras por post) vs a econômica Nano Banana 2 do Gemini (R$ 0,015 extras por post).
    • Claude Haiku por Padrão: Em conformidade com o pedido do usuário, cravamos a escolha econômica de fábrica do Anthropic Claude para o modelo Claude 4.5 Haiku (claude-haiku-4-5-20251001) tanto no dropdown administrativo quanto no construtor de fallback do driver Claude, economizando créditos.

[2026-05-26 13:45] – Transparência de Custos na UI & Adição de GPT-2 Imagem no Roadmap [v1.3.3]

  • Status: Sucesso
  • Arquivos Modificados:
    • geraaipro.php (Versão incrementada para 1.3.3 nas constantes globais e cabeçalho do plugin)
    • class-gap-admin.php (Injetado card premium com detalhamento de custos estimados por artigo para cada modelo no topo da página de Ajuste de Configurações)
    • VIBE_CHECKLIST.md (Adicionado ao roadmap futuro o suporte ao motor de imagem da OpenAI/DALL-E 2 / GPT-2 Imagem)
  • Alterações:
    • Card de Transparência de Custos: Desenvolvemos e injetamos um box informativo visualmente deslumbrante (Tailwind Premium) no cabeçalho do painel de Configurações administrativas. Esse card detalha objetivamente a estimativa de custo de API para gerar um post aprofundado de 2000 palavras + imagem mestre do Unsplash ou Nano Banana 2. Os valores são apresentados claramente em Reais (R$), permitindo ao cliente comparar no ato da configuração:
      • Gemini 3.5 Flash: ~R$ 0,026 / post (Ultra Econômico)
      • GPT-5.4 Mini: ~R$ 0,039 / post (Recomendado)
      • Gemini 3.1 Pro: ~R$ 0,212 / post
      • Claude 4.5 Sonnet: ~R$ 0,315 / post
      • GPT-5.4 Premium: ~R$ 0,410 / post
    • Roadmap Futuro “GPT-2 Imagem”: Adicionada a meta de suporte futuro para o gerador de imagens da OpenAI (“GPT-2 Imagem” / DALL-E 2) na Fase 6 da checklist oficial de desenvolvimento, para flexibilizar a geração automática sob novos dados técnicos a serem providos.

[2026-05-26 13:30] – Incremento Global de Versão [v1.3.2]

  • Status: Sucesso
  • Arquivos Modificados:
    • geraaipro.php (Versão incrementada pelo usuário para 1.3.2 nas constantes de bootstrap e cabeçalho do plugin)
  • Alterações:
    • Incremento de Versão: A versão oficial do plugin no WordPress foi cravada pelo usuário em 1.3.2 para consolidar todas as evoluções estruturais, otimizações econômicas do parser e correções visuais implementadas com sucesso nesta iteração de Vibe Coding.

[2026-05-26 12:05] – Definição do gpt-5.4-mini como Padrão de Produção Otimizado [v1.3.1]

  • Status: Sucesso
  • Arquivos Modificados:
    • geraaipro.php (Versão incrementada pelo usuário para 1.3.1 nas constantes globais)
    • class-gap-admin.php (Ajustado o modelo padrão de fallback selecionado no dropdown da OpenAI para gpt-5.4-mini)
    • class-gap-engine-openai.php (Atualizado o fallback do construtor para gpt-5.4-mini como o motor padrão nativo do driver)
  • Alterações:
    • Ajuste de Usabilidade Econômica: Alinhamos a configuração de fábrica do plugin com a planilha oficial de preços e diretrizes de Vibe Coding.
    • OpenAI Otimizada por Padrão: O plugin passa a adotar e forçar o gpt-5.4-mini como o modelo padrão selecionado e operado tanto no banco de dados quanto na interface do usuário (em vez do caro gpt-5.4), garantindo custos operacionais extremamente enxutos em pipelines de geração em massa e Wizard.
    • Manutenção do Gemini 3.5 Flash: O modelo mestre ultra-econômico gemini-3.5-flash segue consolidado como o padrão absoluto de fábrica da Google para latência quase zero e texto virtualmente gratuito.

[2026-05-26 11:35] – Título Customizado Opcional em CSV de Lote & Ajuste de Largura da UI do Lookalike [v1.2.9]

  • Status: Sucesso
  • Arquivos Modificados:
    • geraaipro.php (Versão incrementada para 1.2.9)
    • class-gap-admin.php (Ajuste da classe visual do input de quantidade lookalike, re-escrita do parser de CSV na função ajax_add_bulk_jobs e injeção do box didático com placeholder avançado na UI)
  • Alterações:
    • Incremento de Versão: A versão global do plugin foi cravada em 1.2.9 tanto no cabeçalho do arquivo principal quanto na constante GAP_VERSION de bootstrap.
    • Largura do Input da UI Corrigida: Modificada a classe de largura do input do número de Lookalike de w-14 (56px) para w-20 (80px) nas configurações visuais de Massa (render_bulk_page). Isso expande a largura horizontal interna do campo, comportando perfeitamente 3 ou mais dígitos sem qualquer tipo de corte de visualização. Também aumentamos o valor máximo nativo do HTML de 50 para 100 para lotes de lookalikes maiores.
    • Suporte a Título Customizado no CSV de Lote: Desenvolvemos uma re-escrita estruturada no parser de string do textarea de keywords em ajax_add_bulk_jobs utilizando o interpretador seguro str_getcsv().
    • Formato CSV Expansível de 4 Colunas: A linha enviada agora suporta inteligentemente o formato: Keyword, Categoria, Tag1 | Tag2 | Tag3, Titulo Customizado.
    • Fallback Inteligente de Colunas:
      • 4 partes passadas: Processa e mapeia as 4 colunas perfeitamente.
      • 3 partes passadas: Keyword, Categoria e Tags ativas. O título fica em branco e é sugerido automaticamente via IA.
      • 2 partes passadas: Keyword e Categoria mapeadas. Tags e Título gerados automaticamente via fallbacks.
      • 1 parte passada (pura): Keyword mapeada. Categoria, tags e título gerados de forma automática conforme opções.
    • Bypass Automático de Sugestão de Título por IA: A variável de título extraída da 4ª coluna é gravada diretamente na chave 'title' das configurações do Job (settings). Com isso, o processador assíncrono em background (GAP_Processor::process_existing_job) detecta automaticamente que o título já foi fornecido e pula a requisição à API de IA para gerar um título, otimizando créditos e tempo de resposta.
    • Box Informativo de Onboarding na UI: Adicionado um belo box didático de alta fidelidade visual com design premium clean em Tailwind logo acima da caixa de digitação. Esse card explica didaticamente a estrutura dos arquivos aceitos (Simples e CSV Completo). O placeholder do próprio textarea também foi enriquecido com exemplos práticos detalhando ambas as abordagens para facilitar o uso no dia a dia.

[2026-05-26 11:05] – Botão “Limpar Histórico” com Exclusão Física Controlada e Nonce de Segurança

  • Status: Sucesso
  • Arquivos Modificados:
    • class-gap-admin.php (Inserção da lógica de POST de limpeza, exibição de banner Tailwind e botão com confirmação nativa no dashboard render_main_page)
  • Alterações:
    • Botão “Limpar Histórico” no Dashboard: Adicionado um novo botão visual premium e minimalista ao lado de “Novo Artigo” no Dashboard de Operações IA. Ele segue o visual SaaS do plugin (fundo branco, borda avermelhada leve, hover com fundo vermelho pastel suave e cursor pointer).
    • Segurança Robusta (Nonces & Privilégios): Implementada validação rigorosa com Nonce do WordPress (gap_clear_history_nonce) e verificação de privilégios de administrador (current_user_can('manage_options')) no tratamento da ação POST de limpeza para blindar a operação contra CSRF.
    • Janela de Confirmação Javascript: Integrada janela de confirmação nativa no submit do formulário, detalhando claramente ao usuário que os registros de histórico serão deletados para reiniciar a IA Lookalike, enquanto os posts publicados no WordPress permanecem 100% seguros e intactos.
    • Exclusão Física Cirúrgica (Inclusão de content_generated): A ação deleta fisicamente do banco de dados ($wpdb->query) os registros cujos status representam artigos gerados ou finalizados com sucesso ou falha (completed, published, error e agora também content_generated para cobrir rascunhos individuais parciais ou abandonados no Wizard). Isso limpa de fato o viés semântico que a IA de Lookalike puxa do banco, mas mantém intactos e seguros todos os jobs que estejam pendentes, agendados ou ativos em fila no Drip Feed do gerador em massa.
    • Banner Premium de Feedback: Se o histórico for limpo com sucesso, a página renderiza um lindo aviso inline no topo do Dashboard com design moderno Tailwind (fundo verde claro, borda e ícone elegante), confirmando o reset da base de keywords com sucesso.

[2026-05-26 11:00] – Arquivamento Lógico (Soft Delete) no Lote Bulk & Preservação do Lookalike

  • Status: Sucesso
  • Arquivos Modificados:
    • class-gap-admin.php (Alteração do fluxo de exclusão/limpeza no ajax_control_bulk_job e filtragem no ajax_get_bulk_status)
  • Alterações:
    • Preservação de Histórico e Lookalike: Resolvida a falha de dados em que a limpeza de concluídos removia fisicamente os jobs do banco. Agora, ao limpar concluídos/falhos, o plugin realiza um arquivamento lógico (Soft Delete) adicionando a flag "hide_in_queue":1 no JSON de configurações do Job, em vez de deletar fisicamente o registro do banco de dados.
    • Filtro Inteligente na Fila Bulk: A listagem e contadores da fila em lote passam a ignorar os registros que possuem a flag de ocultação, limpando instantaneamente a visualização do painel para o usuário.
    • Histórico Geral & IA Mantidos: Os posts concluídos continuam intactos no banco de dados, aparecendo permanentemente no Histórico Geral de Operações e mantendo ativa toda a base de dados histórica necessária para o algoritmo do Lookalike de Keywords da IA evitar duplicados e propor novas ideias de temas.
    • Deleção Física apenas para Pendentes: Caso o job seja cancelado/excluído ainda em estado pendente (sem ter sido gerado ou gerado erro), a deleção física do banco é mantida, poupando espaço e registros desnecessários.

[2026-05-26 10:50] – Coluna Tipo (Bulk/Single) no Histórico Geral de Operações IA

  • Status: Sucesso
  • Arquivos Modificados:
    • class-gap-admin.php (Adicionada a coluna Tipo no cabeçalho e corpo da tabela de histórico geral do painel principal render_main_page)
  • Alterações:
    • Identificação Visual Premium no Histórico: Adicionada uma nova coluna chamada Tipo na tabela do dashboard de Operações IA principal (que lista todos os posts unificados).
    • Badges Modernas SaaS: Cada registro agora exibe um badge elegante e colorido de alta fidelidade para rápida identificação visual da origem do post:
      • 📦 Bulk (azul) para posts gerados em lote/massa.
      • 👤 Single (verde) para posts gerados individualmente pelo Wizard.
    • Histórico Geral Integrado: O histórico principal agora exibe a listagem completa e unificada (Massa e Singular) em ordem cronológica reversa, mantendo a tabela de Bulk isolada e exclusiva na página de Lote conforme planejado.

[2026-05-26 10:30] – Pooling Assíncrono com setTimeout & Destravamento de Conexões no Lote Bulk

  • Status: Sucesso
  • Arquivos Modificados:
    • class-gap-admin.php (Substituição de setInterval cego por setTimeout encadeado dinâmico na resposta do AJAX no método loadQueue)
  • Alterações:
    • Pooling de Monitoramento Assíncrono Inteligente: Corrigido o problema clássico de travamento e inacessibilidade temporária do site (tanto no admin quanto na área pública) durante a geração ativa de lote no ambiente de desenvolvimento local (LocalWP).
    • Fim do Empilhamento de Requisições (Starvation): Anteriormente, o pooling utilizava um setInterval cego a cada 5 segundos. Caso o servidor estivesse sob forte processamento (geração de texto e imagens via IA em segundo plano) e demorasse para responder ao AJAX, o setInterval continuava empilhando novas requisições AJAX concorrentes em fila no servidor local. Isso consumia instantaneamente todos os poucos workers PHP disponíveis no LocalWP, travando completamente o site inteiro.
    • Solução com setTimeout Encadeado: O pooling agora só agenda a próxima verificação de fila para daqui a 5 segundos após a requisição AJAX atual retornar com absoluto sucesso ou falha, quebrando o acúmulo de requisições pendentes e mantendo o servidor local sempre livre, leve, responsivo e com navegação e UX impecáveis.

[2026-05-26 10:10] – Formato CSV Inline no Lote (Keyword, Categoria, Tags por linha) & Versão 1.2.5

  • Status: Sucesso
  • Arquivos Modificados:
    • geraaipro.php (Versão incrementada para 1.2.5 pelo usuário)
    • class-gap-admin.php (Implementado o parsing inteligente de Keyword, Categoria e Tags por linha no endpoint ajax_add_bulk_jobs)
    • class-gap-processor.php (Respeito dinâmico à categoria salva no JSON de settings do Job no método finalize_and_publish_post)
  • Alterações:
    • Formato CSV Inline no Lote (Avançado): Adicionado suporte completo para o usuário passar configurações personalizadas por linha na caixa de texto do lote. Formato aceito: Keyword, Categoria, Tag1 | Tag2 | Tag3.
    • Criação Automática e Dinâmica de Categorias: Se o usuário informar uma categoria por linha que ainda não existe no WordPress, o plugin criará a categoria automaticamente em tempo real e associará o artigo a ela. ID numérico de categoria também é aceito.
    • Retrocompatibilidade e Fallbacks: Caso o usuário digite apenas a palavra-chave de forma simples, o plugin continuará a buscar a Categoria e as Tags globais selecionadas na barra lateral de ajustes como fallback.
    • Integração no Processador: O processador core foi atualizado para ler e aplicar dinamicamente a categoria gravada individualmente no JSON de configurações (settings) do Job antes de postar, garantindo que cada artigo vá exatamente para a categoria especificada em sua linha.
    • Sincronização de Versão: O usuário incrementou a versão do plugin de 1.2.0 para 1.2.5 no cabeçalho do plugin e na constante global GAP_VERSION de geraaipro.php.

[2026-05-26 08:15] – Lookalike de Keywords com IA, Agendamento Drip Feed & Controles Globais de Fila (FASE 6.1)

  • Status: Sucesso
  • Arquivos Modificados:
  • Alterações:
    • Lookalike de Keywords com IA: Botão visual e endpoint AJAX para sugestão em massa de palavras-chave inéditas com base no histórico das últimas 50 geradas no banco, utilizando a IA primária com um prompt estratégico que bloqueia duplicações e as insere diretamente na caixa de texto de lote. [Correções de UX & Escopo]: Corrigido o bug de escopo do seletor do botão Lookalike ($('#gap-btn-lookalike')) no JS e adicionado feedback visual explícito de processamento. O botão agora é desabilitado instantaneamente e exibe o texto ⏳ Gerando com IA... enquanto a requisição AJAX está rodando, reativando ao finalizar. [Correção de Upload Clique]: Corrigido o erro de recursão infinita e travamento no clique da área de upload/dropzone. Ao acionar programaticamente o input file, o clique se propagava de volta para o elemento pai (gap-dropzone) criando um loop infinito bloqueado pelo navegador; adicionada a chamada a e.stopPropagation() no clique do input de arquivos, o que abre perfeitamente o selecionador de arquivos do sistema operacional ao clicar em qualquer lugar da dropzone ou no link “clique para importar”.
    • Agendamento Drip Feed (Fila Progressiva): Acoplada a lógica progressiva de agendamento em loop no cadastro de lote de Massa (Bulk), gravando o fuso horário correto no banco e registrando as ações no Action Scheduler ou WP-Cron. Implementado o método GAP_Action_Scheduler::dequeue_job para remover fisicamente os agendamentos futuros no WordPress ao cancelar jobs. [Expansão de Intervalos]: Adicionados intervalos adicionais de postagem mais curtos e flexíveis no dropdown do HTML (1h, 2h, 4h, 6h, 8h, além dos de 12h, 24h, 48h, 72h) com compatibilidade nativa imediata no backend PHP.
    • Status Agendado na Interface: Modificada a renderização da fila de monitoramento Javascript para exibir o badge azul ⏳ Agendado e a indicação de relógio ⏰ [Data/Hora de Disparo] se o job estiver planejado para o futuro e ainda não tiver sido iniciado.
    • Controles Globais de Fila (Cancelar & Limpar Lote): Injetados botões premium SaaS “❌ Cancelar Pendentes” e “🧹 Limpar Concluídos” no cabeçalho do painel de fila Bulk, conectados a callbacks AJAX para exclusão em lote dos jobs pendentes ou finalizados (com limpeza automática das tarefas agendadas no cron do WordPress).
    • Isolamento de Histórico Bulk: Filtrada e restrita a consulta em ajax_get_bulk_status para buscar apenas os jobs gerados via Bulk (onde settings contém "is_bulk":1), garantindo que o monitoramento da fila em lote seja limpo e focado sem misturar registros com o gerador singular (Wizard).

[2026-05-26 07:55] – Polimento de Seleção Dinâmica de Motores de Texto e Imagem no Lote Bulk

  • Status: Sucesso
  • Arquivos Modificados:
  • Alterações:
    • Configuração de Imagem no Lote: Adicionado dropdown visual na sidebar de Ajustes de Lote para seleção explícita do Motor de Imagens (Unsplash, Nano Banana 2 ou Nenhuma) a ser aplicado ao processar o lote de Massa. O valor é devidamente transportado via payload AJAX e armazenado nas configurações individuais do Job.
    • Dinamicidade Total nos Motores: Refatorada a leitura de $primary_engine (texto) e $image_engine (imagem) dentro do processador core. O sistema agora lê dinamicamente as opções definidas pelo usuário no momento da criação do lote a partir de $settings['engine'] e $settings['image_engine'], recorrendo às configurações globais do plugin apenas como fallback automático. Isso garante perfeita harmonia e equiparação da qualidade e inteligência entre as gerações singular e em massa.
    • Correção Terminológica: Ajustada a referência no histórico técnico e planos de modelo de “Gemini 3.1 Flash” para o termo técnico oficial de texto “Gemini 3.5 Flash”.

[2026-05-26 07:45] – Implementação da Geração em Massa (Bulk) & Fila Assíncrona com Action Scheduler (FASE 6)

  • Status: Sucesso
  • Arquivos Modificados/Criados:
  • Alterações:
    • Fila Assíncrona em Segundo Plano (Failover Inteligente): Criada a classe GAP_Action_Scheduler para orquestrar o enfileiramento dos artigos de forma assíncrona usando o Action Scheduler do WP. Adicionado um fallback automático para o WP-Cron nativo (wp_schedule_single_event) caso a biblioteca Action Scheduler não esteja ativa em ambientes isolados, garantindo resiliência em qualquer servidor sem timeouts.
    • Pipeline de Geração de Jobs Existentes: Criada a função GAP_Processor::process_existing_job que executa a geração de título, outline, links internos, conteúdo completo HTML e sideload da imagem de destaque em WebP de forma isolada, atualizando o progresso exato de cada etapa no Job ID pré-existente no banco de dados.
    • Endpoints AJAX de Lote: Implementados os endpoints gap_add_bulk_jobs (higieniza e cadastra dezenas de keywords agendando-as na fila), gap_get_bulk_status (consulta estatísticas e jobs recentes em tempo real) e gap_control_bulk_job (ações de excluir ou processar síncrono imediatamente).
    • Dashboard Bulk Premium: Desenvolvida a tela visual de Geração em Massa sob o menu Gerar em Massa. Conta com textarea, drag-and-drop para importação de arquivos .txt/.csv, configurações unificadas de lote, cards de estatísticas rápidas, pooling JS periódico de 5 segundos que atualiza dinamicamente a fila ao vivo e ações unitárias por job.

[2026-05-25 17:25] – Correção do Bug de Label no Campo Público-Alvo (Perfil Editorial)

  • Status: Sucesso
  • Arquivos Modificados:
  • Alterações:
    • Correção Visual no Público-Alvo: Corrigida uma duplicação/quebra de sintaxe HTML que exibia o fragmento de código ext-sm font-bold mb-2 opacity-80">Público-Alvo de forma crua acima do input. A tag <label> foi higienizada e restaurada para sua forma padrão e limpa, garantindo a exibição perfeita da interface no painel de configurações na seção “Perfil Editorial (Cérebro da IA)”.

[2026-05-25 17:22] – Correção de Layout no Painel de Configurações & Versão 1.1.8 pelo Usuário

  • Status: Sucesso
  • Arquivos Modificados:
  • Alterações:
    • Correção do Bug de Layout: Resolvido o erro de fechamento de tags HTML div no painel de configurações (class-gap-admin.php). O card principal Configuração Global do Motor estava sem fechamento apropriado (</div>), fazendo com que o painel de escolha das LLMs ficasse colado e agrupado incorretamente com os painéis inferiores. Adicionado o fechamento correto das divs para isolar o bloco visualmente com espaçamento harmônico e fluidez.
    • Sincronização de Versão: O usuário incrementou a versão do plugin de 1.1.7 para 1.1.8 no cabeçalho e na constante global GAP_VERSION de geraaipro.php.

[2026-05-25 17:05] – Conversão Nativa para WebP, Tela de Carregamento Blur Premium & Versão 1.1.7 pelo Usuário

  • Status: Sucesso
  • Arquivos Modificados:
  • Alterações:
    • Conversão Nativa para WebP: Aprimorado o método gap_optimize_local_image para tentar converter todas as imagens baixadas (Unsplash ou Gemini) para o formato moderno WebP usando a classe WP_Image_Editor do WordPress. Se o servidor for compatível (GD ou Imagick habilitado com WebP), a imagem é salva e convertida, e sua extensão é atualizada para .webp. Isso reduz o peso médio da imagem destacada de ~150KB para apenas 40KB – 80KB, garantindo máxima pontuação no PageSpeed!
    • Tela de Carregamento Blur Premium: Adicionado um overlay de tela inteira com design moderno de Glassmorphic Blur (backdrop-blur-md e fundo semi-transparente) que bloqueia completamente a tela durante a geração do outline, do conteúdo e da imagem. O overlay exibe um spinner rotativo premium, uma barra de progresso animada e textos dinâmicos de status (“Estruturando outline…”, “Escrevendo conteúdo de elite…”, “Salvando post e processando imagem…”). Isso impede cliques duplos que possam corromper o processo de geração.
    • Proporção Clássica 3:2 por Padrão: Alterada a seleção padrão no dropdown de proporções de imagem do wizard para 3:2 (Clássica) ao invés de 16:9.
    • Sincronização de Versão: O usuário incrementou a versão do plugin de 1.1.6 para 1.1.7 no cabeçalho e na constante global GAP_VERSION de geraaipro.php.

[2026-05-25 16:25] – Otimização Nativa de Peso e Compressão de Imagens & Versão 1.1.6 pelo Usuário

  • Status: Sucesso
  • Arquivos Modificados:
  • Alterações:
    • Compressão de Imagens Nativa: Adicionado o método gap_optimize_local_image ao processador. Ele utiliza a classe oficial do WordPress WP_Image_Editor (GD ou Imagick) para processar todas as imagens temporárias (baixadas do Unsplash ou geradas pelo Gemini base64) antes delas serem cadastradas na biblioteca de mídias por media_handle_sideload.
    • Redução drástica de peso: Limita a largura máxima das imagens originais a 1425px e define uma qualidade de compressão de 82 (padrão-ouro recomendado para SEO e performance de sites). Isso reduz o peso da imagem mestre na biblioteca de mídias de mais de 800KB para uma média de 120-160KB, dentro do range ideal de alta performance.
    • Sincronização de Versão: O usuário incrementou a versão do plugin de 1.1.4 para 1.1.6 no cabeçalho e na constante global GAP_VERSION de geraaipro.php.

[2026-05-25 14:35] – Alinhamento Perfeito do Nano Banana 2 com n8n, Redimensionamento Unsplash 1200px+ & Versão 1.1.4 pelo Usuário

  • Status: Sucesso
  • Arquivos Modificados:
  • Alterações:
    • Alinhamento do Nano Banana 2 com o n8n: Substituído o payload JSON da requisição do Gemini para usar a estrutura exata e simplificada que está funcionando no nó n8n do usuário. Agora o responseModalities é estritamente ["Image"], e o aspectRatio do usuário é passado diretamente sob a chave imageConfig (eliminando a rejeição do enum ImageResponseFormat).
    • Redimensionamento Dinâmico do Unsplash (1200px+ & Dimensões Mínimas de 800px): Implementado o download da imagem crua (raw URL) da API do Unsplash. Agora o processador utiliza uma closure inteligente para concatenar dimensões e parâmetros de corte dinâmico do Imgix/Unsplash (&w=1200&h=X&fit=crop&q=80). Adicionalmente, garantimos que nenhuma dimensão (seja altura ou largura) fique abaixo de 800px para qualquer proporção escolhida (por exemplo, no formato 16:9 o tamanho de corte é ajustado dinamicamente para 1425x800px), cumprindo rigorosamente as diretrizes visuais do Google Discover.
    • Sincronização de Versão: O usuário incrementou a versão do plugin de 1.1.3 para 1.1.4 no cabeçalho e na constante global GAP_VERSION de geraaipro.php.

[2026-05-25 14:02] – Correção do Bug de Enums na API Nano Banana 2 & Versão 1.1.3 pelo Usuário

  • Status: Sucesso
  • Arquivos Modificados:
  • Alterações:
    • Mapeamento de Enums da API Gemini: Corrigido o erro de INVALID_ARGUMENT (HTTP 400) retornado pela API Google AI Studio quando o aspect_ratio era enviado como "3:2" ou "16:9" e o imageSize como "2K".
    • Tradução: Implementada uma matriz de tradução estrita no método generate_image() para mapear os formatos amigáveis nos enums oficiais compatíveis com o protobuf do endpoint generateContent (exemplo: "3:2" convertido para ASPECT_RATIO_3_2, e "2K" mapeado para o enum IMAGE_SIZE_2K).
    • Sincronização de Versão: O usuário incrementou a versão do plugin de 1.1.2 para 1.1.3 no cabeçalho e na constante global GAP_VERSION de geraaipro.php.

[2026-05-25 13:16] – Versão 1.1.2 (Sincronização de Versão pelo Usuário)

  • Status: Sucesso
  • Arquivos Modificados:
  • Alteração:
    • O usuário incrementou manualmente a versão do plugin de 1.0.9 para 1.1.2 tanto no cabeçalho do arquivo principal quanto na constante global GAP_VERSION.

[2026-05-25 13:10] – Correção Definitiva de Imagens (Unsplash & Nano Banana 2) & Exibição de Erros

  • Status: Sucesso
  • Arquivos Modificados:
  • Alterações:
    • Nano Banana 2: Refatorado o método generate_image no motor Gemini para apontar para o modelo oficial de produção de imagens do AI Studio, gemini-3.1-flash-image-preview, utilizando o endpoint oficial :generateContent com o cabeçalho x-goog-api-key e nova estrutura de payload.
    • Decodificação Robusta de Mídia: Atualizado o processador para decodificar dinamicamente o base64 a partir do nó inlineData/inline_data da resposta do Gemini 3.1, mantendo compatibilidade retroativa com predictions.
    • Bypass de timeouts no Unsplash: Adicionado timeout explícito de 45 segundos nas requisições da API de busca do Unsplash (evitando cair no timeout padrão agressivo de 5s do WordPress, que causava falhas em produção).
    • Erros de Imagem no Dashboard: Atualizado o dashboard de histórico para renderizar um alerta em vermelho (⚠ Erro: [Mensagem]) abaixo do badge verde do post publicado sempre que a imagem de destaque falhar. Isso dá feedback visual imediato ao usuário sem falhar a publicação do artigo principal.
    • Segurança de Temporários: Substituído o nome parametrizado no temporário por wp_tempnam( 'gap_image_' ) padrão para evitar quebras de sanitização de arquivo em plataformas Windows/produção.

[2026-05-24] – Erradicação de Links Circulares, Limites Invioláveis e timeouts Estendidos (v5.9)

  • Status: Sucesso
  • Arquivos Modificados:
  • Alterações:
    • Erradicação de timeouts: Aumentado o timeout de todas as requisições principais de outlines e conteúdo de 60s/120s para 180 segundos em todas as três engines para evitar erros de timeout cURL 28 em posts longos.
    • Links Invioláveis: Atualizados prompts mestre com a regra de MÁXIMO 3 LINKS POR POST (exatamente 1 externo e no máximo 2 internos).
    • Âncoras Curtas: Limitação severa no tamanho das tags <a>, restringindo o comprimento das âncoras para 1 a 3 palavras consecutivas no máximo, proibindo links longos que englobem frases inteiras.
    • Zero Links Circulares: Reforço absoluto contra links auto-referenciais e CTAs que apontem para o próprio H1, post ou slug atual.

[2026-05-23] – UX de Exclusão de API Keys & Negritos Semânticos Flexíveis (v5.8)

  • Status: Sucesso
  • Arquivos Modificados:
  • Alterações:
    • Negritos Inteligentes e Semânticos: Reformulada a Regra 6 dos prompts de IA para aplicar tags <strong> de forma natural e distribuída ao longo das frases (destacando a Keyword principal, LSIs, numerais relevantes e conceitos estratégicos), sem excessos e sem depender exclusivamente de keywords secundárias.
    • Exclusão de API Keys: Adicionados botões visuais de lixeira (🗑️) com confirmação via Javascript nos inputs de chaves de API do painel. Criado suporte robusto no backend para interceptar o array gap_clear_api_keys e remover chaves específicas do banco de dados definitivamente, contornando o comportamento de autofill do navegador.

[2026-05-22] – Correção do Histórico, Recuperação Automática de post_id e Fallbacks (v5.7)

  • Status: Sucesso
  • Arquivos Modificados:
  • Alterações:
    • post_id Retroativo e Badge Verde: Atualizada a lógica de renderização do histórico principal para fazer uma busca dinâmica via meta_key _gap_job_id para jobs que já foram concluídos/publicados, mas estavam com a coluna post_id nula no banco. O botão “Editar Post →” agora é exibido corretamente. Mapeadas as cores dos status published e completed para verde vibrante (bg-green-100 text-green-700).
    • Gravação Automática: Integrado ao método finalize_and_publish_post do processador a atualização da coluna post_id no banco no ato de publicação bem-sucedida do post.
    • Lógica de Fallback Sem Máscara: Refatorada a função run_with_fallback no processador. O sistema agora só executa fallback síncrono para a engine secundária se a chave dela estiver de fato configurada. Caso contrário, ou caso ambas falhem, o erro real retornado pela API da engine primária é exibido transparentemente, eliminando a exibição confusa do erro padrão de chave em branco da OpenAI.
Precisa de ajuda? Clique aqui! 1