=== Vibe Connect ===
Contributors: wpvibe
Tags: wordpress, vibe, catalog, plugins, themes
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
Stable tag: 1.5.15
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Conexao direta entre seu WordPress e a WP Vibe.

== Description ==

O Vibe Connect conecta o seu WordPress a plataforma WP Vibe para instalar,
ativar e manter plugins e temas gerenciados a partir do proprio wp-admin.

Recursos principais:

* Conexao OAuth 2.1 PKCE com a plataforma WP Vibe.
* Catalogo de plugins e temas licenciados com instalacao pelo painel.
* Atualizacoes gerenciadas pelo menu WP Vibe, com verificacao de integridade.
* Checagem nativa de novas versoes do proprio Vibe Connect.

== Installation ==

1. Envie o arquivo ZIP do Vibe Connect pelo menu Plugins > Adicionar novo > Enviar plugin.
2. Ative o plugin no menu Plugins.
3. Abra o menu WP Vibe e conecte-se a sua conta da plataforma.

== Changelog ==

= 1.5.15 =
* Alinha a cor dos botoes "Atualizar Agora" e "Verificar Atualizacoes" com a cor primaria do plugin, em vez de herdar a cor do tema de administracao do WordPress.
* Fecha o canto esquerdo do botao de atualizacao no split button, deixando a emenda com o menu de versoes continua.

= 1.5.14 =
* Desgerencia automaticamente um plugin ou tema instalado apos duas confirmacoes de ausencia no catalogo, encerrando o aviso de item indisponivel.
* Preserva os arquivos instalados: o item deixa de ser gerenciado, mas nao e desativado nem excluido do WordPress.
* Falhas temporarias de rede, excesso de requisicoes e erros do servidor nao desgerenciam nem alteram o contador de confirmacoes.
* Registra o motivo catalog_absent no diagnostico do plugin para auditoria da decisao.

= 1.5.13 =
* Corrige o aviso de "falhas temporarias" na verificacao de atualizacoes quando um plugin ou tema instalado nao existe mais no catalogo: o item passa a ser tratado como indisponivel, nao como falha transitoria.
* Exibe um aviso proprio para itens que sairam do catalogo e deixa de afirmar "Tudo atualizado" quando a versao deles nao pode ser verificada.
* Nao preserva mais uma atualizacao pendente antiga de um produto removido do catalogo, que oferecia um botao "Atualizar Agora" fadado a falhar.

= 1.5.12 =
* Mostra progresso e resultado ao atualizar pelas abas Instalados, Catalogo e Temas: o botao do item passa por "Preparando atualizacao", "Baixando", "Verificando integridade" e "Atualizando", em vez de apenas ficar desabilitado.
* Cria uma area de aviso global fora das abas, para que erros e confirmacoes de atualizacao aparecam em qualquer tela do plugin.
* Libera o item para nova tentativa depois de um erro na atualizacao, que antes ficava bloqueado em silencio.

= 1.5.11 =
* Corrige o botao "Atualizar Agora" na aba Instalados: o modal de confirmacao ficava dentro do painel oculto da aba Atualizacoes e abria invisivel, deixando o botao cinza sem concluir a atualizacao.
* Move o modal de confirmacao para um partial proprio no nivel raiz do admin, disponivel em Instalados, Catalogo e Temas sem depender da aba ativa.

= 1.5.10 =
* Troca o banner de escopo da aba Instalados por uma faixa compacta com acoes neutras para as telas nativas de Plugins e Temas.
* Remove o CTA unico que levava apenas para Plugins e elimina o destaque vermelho do botao.
* Alinha o estado vazio da aba com as mesmas acoes de Plugins e Temas.

= 1.5.9 =
* Corrige a mensagem de erro na paginacao do catalogo: respostas 429 do admin-ajax passam a exibir o aviso de excesso de requisicoes com o tempo real de espera em vez do erro generico de conexao.
* Impede novas requisicoes ao catalogo durante o cooldown do rate limit, evitando renovar o bloqueio a cada tentativa.
* Eleva o teto por usuario do catalogo para 30 requisicoes por minuto, suficiente para navegar entre paginas e abrir detalhes do produto.

= 1.5.8 =
* Mostra skeleton de carregamento na aba Instalados e durante a verificacao de atualizacoes, com estado de erro e nova tentativa em vez de tela em branco.
* Corrige o layout dos cards: slug e categoria longos nao quebram mais o rodape, titulos e descricoes ficam limitados a duas linhas e os botoes alinham na mesma base.
* Unifica tracks do grid, tamanho de icone e skeleton entre as abas Catalogo, Instalados e Atualizacoes.
* Remove a ambiguidade da contagem na aba Instalados: o badge passa a mostrar quantos itens do catalogo estao no site e o total de plugins e temas instalados.
* Marca no card os itens do catalogo instalados fora do WP Vibe, com selo e explicacao de origem.
* Mantem o rotulo "Instalados" com atalho sempre visivel para a tela nativa de Plugins do WordPress.

= 1.5.7 =
* Deixa explicito que a aba Instalados lista apenas plugins e temas do catalogo WP Vibe, com atalhos para as telas nativas de Plugins e Temas.
* Acrescenta nota de escopo na aba Atualizacoes com link para as atualizacoes nativas do WordPress.
* Ajusta o estado vazio da aba Instalados com orientacao sobre onde ficam as demais extensoes do site.

= 1.5.6 =
* Guarda por 60 segundos o plano de versões já sanitizado, por slug e variante, para que reabrir o menu não consuma uma nova requisição à plataforma.
* Não guarda plano quando a leitura falha, inclusive em limite de requisições.

= 1.5.5 =
* Encurta o rotulo do botao bloqueado por limite de requisicoes e mantem a explicacao completa apenas no aviso.
* Bloqueia o botao "Atualizar Agora" durante o cooldown e limpa o aviso quando o prazo termina, sem afetar erros de cota ou acesso.
* Corrige o estado de verificacao de atualizacoes durante o cooldown, que podia interromper a renderizacao da lista.
* Usa plural correto na contagem de segundos e atualiza as traducoes pt_BR, en_US e es_ES.

= 1.5.4 =
* Respeita o prazo real de Retry-After: o painel mostra quantos segundos aguardar e bloqueia a acao ate o fim do cooldown.
* Separa os limites de requisicao por operacao no servidor, para que catalogo, verificacao, download e OAuth nao consumam a cota um do outro.
* Atualiza as traducoes pt_BR, en_US e es_ES.

= 1.5.3 =
* Respeita a assimetria da preferencia de variante na atualizacao: a preferencia "unlocked" pode usar o build original quando o GPL nao existe, mas a preferencia "original" nunca recebe o build GPL.
* Adiciona a mensagem publica dedicada "error_original_variant_unavailable" (HTTP 409) explicando que nao ha versao original da atualizacao e indicando como alterar a preferencia.
* Trata tag de pacote ausente como indisponibilidade explicita, em vez de tentar baixar a arvore mutavel do repositorio.
* Atualiza as traducoes pt_BR, en_US e es_ES.

= 1.5.2 =
* Normaliza o slug do inventario sem depender de sanitize_key(), que pode ser neutralizado pelo filtro `sanitize_key` de outro plugin e reintroduzia maiusculas (ex.: tema Zephyr) fazendo o item ser descartado.
* Registra sob WP_DEBUG o slug recebido, o normalizado e o resultado de sanitize_key() para diagnosticar filtros de terceiros.

= 1.5.1 =
* Normaliza o slug de cada item na fronteira da API antes de validar o contrato da rota, para que itens com maiusculas (por exemplo o tema Zephyr) sejam verificados em vez de descartados.
* Corrige o espacamento entre o Dashicon e o texto nos botoes de acao do plugin.

= 1.5.0 =
* Adiciona a aba Diagnostico no menu WP Vibe, sempre disponivel, com o relatorio consolidado da ultima checagem de atualizacoes: lotes, itens descartados, falhas gerenciadas, ambiente e conectividade.
* Mantem um historico local com as cinco ultimas checagens, manuais e agendadas, em option sem autoload e sem dados sensiveis.
* Permite copiar o relatorio JSON ou baixa-lo como arquivo local, com dados redigidos, sem nenhuma requisicao adicional e sem alterar a versao de nenhum produto instalado.

= 1.4.1 =
* Verificacao de atualizacoes descarta itens fora do contrato da rota (slug, tipo e versao) em vez de derrubar o lote inteiro com invalid_params.
* Registra em log, sob WP_DEBUG, o motivo publico devolvido pela plataforma quando a checagem falha, incluindo os detalhes do payload rejeitado.
* Exibe a causa acionavel quando a plataforma recusa o lote, em vez do aviso generico.

= 1.4.0 =
* Unifica o card das abas Catalogo, Instalados e Atualizacoes em um unico renderer alimentado por view model do servidor, mantendo as tres abas separadas.
* Adiciona acoes de desativar plugin gerenciado e desinstalar item gerenciado com o mesmo efeito do painel nativo (desativar antes de excluir, uninstall do alvo pelo Core e confirmacao em modal).
* Atualizacoes passam a hidratar o card via JS a partir do bootstrap localizado, preservando tokens de confirmacao vinculados a sessao e os estados de checagem inicial, parcial e tudo atualizado.
* Protege contra desinstalacao de item externo, do proprio Vibe Connect, de tema ativo e de qualquer caminho sem filesystem direto, com IDs de DOM com escopo por aba.

= 1.3.2 =
* Remove o badge redundante "Instalada" do card do catalogo; o botao instalado ja indica o estado.

= 1.3.1 =
* Ajusta o contador de atualizacoes pendentes junto a aba Atualizacoes para um badge circular vermelho com o numero, sem colchetes, deixando a pendencia mais visivel.

= 1.3.0 =
* Adiciona a escolha da frequencia da checagem automatica de atualizacoes em Configuracoes: Manual, Diaria (padrao) ou Semanal, com verificacao em segundo plano via WP-Cron.
* Exibe um contador de atualizacoes pendentes junto a aba Atualizacoes, apenas quando ha pendencias.
* Atualizacoes continuam exigindo confirmacao explicita; a checagem automatica apenas descobre novas versoes e nunca instala nem atualiza pacotes sem acao do usuario.

= 1.2.2 =
* Adiciona um botao de ocultar/exibir o e-mail da conta no cartao de estatisticas do wp-admin, com mascara parcial e preferencia lembrada localmente no navegador; o endereco completo nunca e armazenado.

= 1.2.1 =
* Remove o catalogo intermediario compartilhado (messages.json) do pacote do plugin; o gettext (POT/PO/MO/JSON por handle) passa a ser a unica fonte de traducoes do plugin.
* Aposenta o gerador e o gate de CI do catalogo legado, sem alterar os fluxos de conexao OAuth nem o catalogo de plugins e temas.

= 1.2.0 =
* Migra toda a interface do plugin para o i18n nativo do WordPress (gettext), com catalogos POT/PO/MO versionados para pt_BR, en_US e es_ES.
* O admin.js passa a usar wp.i18n com JSON por handle; o wp_localize_script deixa de transportar o mapa de mensagens e mantem apenas configuracao funcional.
* Mensagens de autorizacao, erros sanitizados e strings dos templates passam a usar o textdomain vibe-connect, com fallback em ingles.

= 1.1.2 =
* Corrige o particionamento da descoberta da aba Instalados por tamanho do corpo: um lote de ate 200 itens que ultrapassava 64 KiB deixava de ser enviado por inteiro, escondendo inclusive pares conhecidos; agora o inventario e dividido tambem por bytes.

= 1.1.1 =
* Corrige a descoberta da aba Instalados: lotes com slug valido longo deixam de ser rejeitados, respostas sao validadas par a par contra o snapshot do lote enviado e um lote inconclusivo nunca exibe lista externa parcial.

= 1.1.0 =
* Aba Instalados passa a exibir plugins e temas do catalogo presentes no WordPress mesmo quando instalados fora do WP Vibe, com icone, descricao, categoria e status reais.

= 1.0.7 =
* Atualizacao de temas deixa de falhar com erro critico ao aplicar o pacote baixado.

= 1.0.6 =
* Cards de atualizacoes exibem icone, descricao e categoria do catalogo e o botao Atualizar Agora funciona apos recarregar a pagina.

= 1.0.5 =
* Checagem de atualizacoes envia o inventario instalado em lotes de ate 200 itens e recebe da plataforma quais itens conhecidos tem nova versao, sem baixar o catalogo paginado.

= 1.0.4 =
* Checagem de atualizacoes tambem detecta plugins e temas instalados fora do painel, cruzando os itens instalados com o catalogo da plataforma.

= 1.0.3 =
* Checagem de atualizacoes ignora e remove itens gerenciados que nao existem mais no site, evitando aviso de falha parcial por plugin ou tema fantasma.

= 1.0.2 =
* Checagem de atualizacoes exibe a causa acionavel (conta, permissao, limite ou versao indisponivel) quando os metadados falham conhecidamente, em vez do aviso generico.

= 1.0.1 =
* Abas restritas ficam desabilitadas quando o site esta desconectado.
* Badge "Requer Conexao" na aba Conexao.
* Confirmacao de desconexao agora e dispensavel.

= 1.0.0 =
* Primeira versao publica do Vibe Connect.
* Conexao OAuth 2.1 PKCE com a plataforma WP Vibe.
* Catalogo de plugins e temas licenciados com instalacao e ativacao pelo painel.
* Checagem de atualizacoes gerenciadas com verificacao de integridade SHA-256.
* Update-server nativo para notificar novas versoes do proprio plugin.
