Acompanhe a evolucao da plataforma. Dividimos o changelog entre a Plataforma BrutusForge (o software self-hosted que você instala) e o Portal & Licensing (a experiencia de compra, minha conta e cobranca).
Plataformacliente self-hosted
v1.0.3312GitHub ↗
## [Transporte WebSocket/HTTP por servidor, setup 100% e correções de loja/painel] - 2026-07-18
- **Transporte do plugin (WebSocket ⇄ HTTP) por servidor:** novo controle na Visão geral do servidor ARK para escolher como o plugin fala com o painel — **WebSocket** (menor latência, ideal para chat quando o servidor roda na mesma máquina do painel) ou **HTTP** (padrão, funciona por qualquer rede). Mostra prós e contras de cada um, avisa que **exige reiniciar o servidor** para valer, e traz um botão **"Aplicar a todos os servidores ARK"**.
- **Assistente de configuração (Setup):** não trava mais abaixo de 100% quando uma verificação falha — agora mostra o erro com opção de tentar de novo; e o passo de plugins só fica "completo" quando todos os plugins ativos estão de fato configurados.
- **Loja:** corrigido o "Erro ao criar pedido" e o carregamento dos botões de compra; o erro real do pagamento agora aparece na tela.
- **Painel Discord (RCON):** os botões do painel deixam de falhar com "interaction failed" sob rede lenta (o painel responde antes de consultar a API).
- **Manutenção interna:** limpeza ampla de comentários do código e remoção de documentos/planos já implementados; correção de um vazamento de memória na fila de comandos do game-agent.
Validação: `pnpm validate` verde (API 4324 + Web 1239 + Bot 1052 testes + tsc + biome + build). A troca de transporte exige reiniciar o servidor ARK para entrar em vigor.
---
v1.0.3311GitHub ↗
## [Transporte WebSocket/HTTP por servidor, setup 100% e correções de loja/painel] - 2026-07-18
- **Transporte do plugin (WebSocket ⇄ HTTP) por servidor:** novo controle na Visão geral do servidor ARK para escolher como o plugin fala com o painel — **WebSocket** (menor latência, ideal para chat quando o servidor roda na mesma máquina do painel) ou **HTTP** (padrão, funciona por qualquer rede). Mostra prós e contras de cada um, avisa que **exige reiniciar o servidor** para valer, e traz um botão **"Aplicar a todos os servidores ARK"**.
- **Assistente de configuração (Setup):** não trava mais abaixo de 100% quando uma verificação falha — agora mostra o erro com opção de tentar de novo; e o passo de plugins só fica "completo" quando todos os plugins ativos estão de fato configurados.
- **Loja:** corrigido o "Erro ao criar pedido" e o carregamento dos botões de compra; o erro real do pagamento agora aparece na tela.
- **Painel Discord (RCON):** os botões do painel deixam de falhar com "interaction failed" sob rede lenta (o painel responde antes de consultar a API).
- **Manutenção interna:** limpeza ampla de comentários do código e remoção de documentos/planos já implementados; correção de um vazamento de memória na fila de comandos do game-agent.
Validação: `pnpm validate` verde (API 4324 + Web 1239 + Bot 1052 testes + tsc + biome + build). A troca de transporte exige reiniciar o servidor ARK para entrar em vigor.
---
v1.0.3290GitHub ↗
## [Backups: paginação, exclusão em massa, envio pra nuvem e correções de UI] - 2026-07-17
- **Tela de Backups (Manutenção):** agora com **paginação** e **seleção múltipla** — dá para marcar vários (ou todos da página) e **excluir em lote**, além de um botão **"Limpar com erro"** que apaga de uma vez todos os backups que falharam.
- **Backup do banco corrigido:** o backup automático do banco (que falhava com "pg_dump não encontrado" no cliente) voltou a funcionar — agora usa o Postgres que já vem embarcado no launcher.
- **Backup na nuvem:** novo botão **"Testar conexão"** valida as credenciais do S3/Google Drive sem precisar rodar um backup; e o **backup de configuração (.bfbackup)** passou a ser enviado para a nuvem junto com os demais (quando o backup remoto está ativado).
- **Correções visuais:** modais de confirmação com os botões espaçados (Cancelar à esquerda) e a barra de rolagem deixou de deslocar o layout ao abrir menus/seletores.
Validação: `pnpm validate` (API + Web + testes) verde. Atualização in-place pelo auto-updater; a correção do backup do banco passa a valer no cliente a partir desta versão.
---
v1.0.3284GitHub ↗
## [Painel: central de notificações, chat com tag de admin e mais robustez] - 2026-07-17
- **Central de notificações do painel:** o sino agora guarda os alertas dos servidores — dá para marcar como lida, apagar uma a uma ou limpar tudo, e o contador mostra só as não-lidas. Servidor **parado de propósito** deixa de aparecer como "queda inesperada" (novo botão **"Parada intencional"** na Visão geral do servidor).
- **Chat cross-cluster:** a tag de **admin** volta a aparecer no jogo (o gatilho ADMIN do estilo de chat passou a funcionar in-game).
- **Painel Discord (comandos RCON):** quando o servidor está ocupado ou offline, o painel mostra uma mensagem clara (ex.: "não respondeu a tempo — pode estar ocupado; o comando pode ter sido aplicado") em vez de um "erro" genérico.
- **Detalhe do servidor:** a aba **Saúde** foi fundida na **Visão geral** (menos abas, tudo num lugar).
- **Plugins:** a tela de um plugin agora leva **direto** para a configuração de cada cluster (fim do aviso "Configuração movida").
- **Loja:** correção da modal "Dar produto" (tamanho/barra de rolagem).
- **Servidores ARK (game-agent):** métricas de **mundo** (tribos, dinos e estruturas), `/track` habilitado no **ASA** e coleta de dinos otimizada. _(Requer redeploy dos plugins C++ nos servidores.)_
Validação: `pnpm validate` verde (API 4285 + Web 1235 + Bot 1052 testes + build). O caminho de atualização (que todos recebem) foi validado; as features de servidor (C++) precisam ser validadas no seu servidor ARK após redeploy.
---
v1.0.3257GitHub ↗
## [Launcher: atualização mais limpa e robustez interna] - 2026-07-16
- **Atualização silenciosa:** ao atualizar, o launcher deixa de abrir o instalador cru do Windows — a própria janela acompanha o processo e a nova versão reabre sozinha. (Passa a valer a partir da próxima atualização.)
- **Notas de versão formatadas:** a janela "Atualização disponível" passa a exibir as novidades com títulos, listas e destaques, em vez de texto cru.
- **Robustez e manutenção internas:** dependências atualizadas e unificadas (menos duplicação), portas dos serviços centralizadas numa fonte única e código modernizado. Sem mudança de comportamento visível.
Validação: `pnpm validate` verde + testes do launcher (Rust, 53) + auditoria dedicada das mudanças (0 alteração de lógica). Recomendado validar a nova experiência de atualização num ciclo real de update.
---
v1.0.3249GitHub ↗
## [Launcher: suporte a inglês, comentários no .env preservados e robustez interna] - 2026-07-16
- **Idioma automático (português/inglês):** o launcher acompanha o idioma do Windows — todas as janelas (inicialização, sobre, configurações e atualização) exibidas em pt-BR ou en.
- **Comentários e ordem do `.env` preservados:** ao salvar configurações, o launcher deixou de reescrever o arquivo achatando tudo; seus comentários e a ordem original são mantidos.
- **"Buscar atualizações" com resposta:** quando você já está na versão mais recente, o launcher avisa (antes o botão ficava sem feedback).
- **Correção visual:** removida a barra de rolagem indevida na janela de Configurações.
- **Robustez e manutenção internas:** a supervisão dos serviços foi reorganizada em módulos coesos, adicionada auditoria de dependências no CI e tornadas não-bloqueantes as operações de disco no boot do banco. Sem mudança de comportamento visível.
Validação: `pnpm validate` verde + testes do launcher (Rust, 53) + revisão multi-especialista de cada fatia. O caminho de atualização (que todos recebem) foi validado; a instalação nova (cliente novo) é testada à parte.
---
v1.0.3232GitHub ↗
## [Launcher: segurança reforçada, nova experiência de atualização e visual renovado] - 2026-07-16
Endurecimento de segurança, nova UX de atualização e redesign visual do launcher. Validação: revisões multi-especialista de cada fatia (segurança, migração do banco, scripts de release, UX e design), migração banco trust→scram + DPAPI validadas em smoke de host isolado, e `pnpm validate` verde. O caminho de atualização (que todos recebem) foi validado; o de instalação nova (cliente novo) é testado à parte.
- **Segurança reforçada** — os serviços **deixam de ficar expostos na internet**: o acesso pela rede fica restrito à LAN (game-agents remotos seguem funcionando, mas a porta fecha para fora), a porta do banco não fica mais acessível de fora, e o painel escuta só localmente por padrão. **Segredos cifrados em disco** (chaves, senhas e tokens no `.env` passam a ser protegidos pelo Windows/DPAPI). E o **banco passa a exigir senha** (autenticação `scram-sha-256`), eliminando o acesso sem senha — tudo com migração segura que **nunca deixa o launcher sem subir** se algo falhar.
- **Nova experiência de atualização** — o diálogo de atualização agora mostra as **notas da versão**, uma **barra de progresso real** do download (o pacote é grande, leva alguns minutos) e **checa o espaço em disco** antes de baixar. Na **primeira execução**, o launcher pergunta se você quer **iniciar o BrutusForge junto com o Windows** (antes ficava escondido nas Configurações).
- **Visual renovado** — o launcher adota o **tema roxo/ciano** do painel (fim do laranja antigo), com o **status dos serviços em cards** claros (No ar / Iniciando / Falhou) em vez de texto técnico.
- **Publicação de updates mais segura** — proteções internas no processo de release: **nunca publica uma versão menor** que a atual, **verifica o instalador** no servidor antes de apontar o canal de atualização, e mantém a versão anterior como estável até a nova estar 100% confirmada — para o canal de update nunca ficar quebrado.
v1.0.3196GitHub ↗
## [Launcher: auto-recuperação de serviços, inicialização por etapas e logs com rotação] - 2026-07-15
Resiliência e observabilidade do launcher, validadas em VM (matar serviços → reiniciam sozinhos; matar o banco → os serviços esperam ele voltar; parar pela interface → não reiniciam; circuit-breaker confirmado). Validação: 25 testes do launcher verdes, revisão multi-especialista, `pnpm validate` verde.
- **Recuperação automática de serviços** — se qualquer serviço (banco, API, painel ou bot) cair, o launcher **detecta em segundos e reinicia sozinho**, com espera crescente entre as tentativas e um **limite que evita ficar reiniciando em loop**. Se o **banco** cair, ele é restabelecido **antes** de a API tentar reconectar (ordem de dependência).
- **Não reinicia o que você parou de propósito** — parar um serviço (ou usar "Parar Tudo") **não faz mais** o launcher ressuscitá-lo; o monitoramento respeita a parada intencional e o fechamento do app.
- **Tela de inicialização por etapas** — o splash agora mostra o progresso **Banco → API → Painel → Bot**, com o **erro de cada etapa visível e copiável** se algo falhar no boot (em vez de uma mensagem genérica).
- **Logs não crescem mais sem limite** — **rotação automática** por tamanho (mantém os últimos arquivos, cada um até ~10MB) para os logs de banco/API/painel/bot.
- **Estados mais claros e monitoramento robusto** — o bot **sem token configurado** aparece como **desativado** (não mais como erro/bandeja amarela permanente); e as verificações de saúde têm **tempo-limite**, para um serviço travado não congelar o monitoramento.
v1.0.3185GitHub ↗
## [Launcher: fim do update repetido + estabilidade e desligamento seguro] - 2026-07-14
Correções no launcher após auditoria multi-especialista e validação em VM (encerramento forçado → serviços caem junto; fechamento normal → banco desligado de forma limpa). Validação: 12 testes do launcher verdes, build e clippy sem avisos, revisão final da branch sem itens críticos.
- **A atualização não reaparece depois de instalada** — corrigido o bug em que, após reiniciar a máquina, o launcher reoferecia uma atualização **já instalada**. A causa era uma instalação duplicada em pasta divergente; agora, se o launcher abrir de uma instalação antiga/órfã, ele **cede automaticamente para a instalação atual** e updates futuros não criam mais pastas divergentes.
- **Serviços nunca ficam órfãos** — se o launcher for encerrado (inclusive pelo Gerenciador de Tarefas ou por uma queda), o banco de dados e os serviços (API, painel e bot) são **encerrados junto**, sem sobrar processos travando as portas.
- **Desligamento seguro do banco** — ao fechar o launcher, o PostgreSQL é parado de forma **graciosa** (descarrega os dados e limpa o bloqueio), sem risco de corrupção nem recuperação de emergência no próximo boot.
- **Sobe de forma mais confiável** — verificação de porta livre antes de iniciar cada serviço, migrações do banco **atômicas** (tudo ou nada), pasta de dados inconsistente é **preservada** (renomeada) em vez de apagada, e o painel web só é dado como pronto depois de responder de verdade.
v1.0.3165GitHub ↗
## [Assassino real no ASE e blindagem do backup/restauração] - 2026-07-14
Correções após auditoria multi-especialista do backup/restauração e do log de mortes. Validação: gate verde (tsc, biome, smoke-bootstrap do bootstrap real da API), **4259 testes de API**, plugins C++ compilados ASE+ASA.
- **Assassino "Desconhecido" no ASE — resolvido de verdade** — no ARK: Survival Evolved, mortes causadas por **criatura** eram classificadas como PvP por engano e apareciam como "Desconhecido". A causa raiz (o controller do causador não tinha o tipo validado antes da conversão) foi corrigida: agora a morte cai no ramo de criatura e mostra o **nome real**. O ASA já estava correto e foi recompilado por consistência.
- **Restauração de backup mais segura** — corrigido após auditoria: (a) o modo **Substituir** não apaga mais uma área inteira quando o backup foi gerado por uma versão anterior que ainda não tinha aquela área; (b) o **ganhador de sorteio** e o **resgatador de gift card** nunca são apagados por uma restauração inconsistente; (c) um conflito de código único (referral/plugin) **não derruba mais a restauração inteira** — o campo é ajustado e registrado; (d) restauração mais rápida em bases grandes (menos consultas ao banco) e com **tempo-limite configurável**.
- **Auditoria e validação do cofre** — baixar/exportar um backup agora fica **registrado na auditoria** (quem, quando, IP); arquivos inválidos ou adulterados retornam **erro claro** em vez de falha genérica; o upload aceita apenas `.bfbackup`.
- **Seletor de servidor no Discord** — nomes muito longos de mapa/servidor não quebram mais o painel administrativo do bot (respeita o limite de 100 caracteres do Discord).
Portalv0.1.0 — licensing + checkout
v0.1.0 — Primeira venda (2026-04-21)
Portal público de licensing funcional com Stripe + MercadoPago Checkout Pro, admin interno (M2) e dashboard do cliente (M3).
Licensing
- Emissão de JWT Ed25519 por compra, phone-home diario, HWID fingerprint, grace period de 7 dias.
- Rate limit + HMAC-SHA256 em
/api/licenses/*e webhooks MP. - 59 testes criticos (Ed25519, HMAC, subscription, webhook idempotency).
Checkout e renovacoes
- Stripe subscription lifecycle: renovacao via
invoice.paid, revogacao automática emcustomer.subscription.deleted. - MercadoPago Checkout Pro com BRL (PIX/boleto/cartao 12x).
- Emails transacionais via Resend (confirmação, expiracao, revocacao, 2FA) com templates aplicados na marca.
Admin interno (portal)
- Dashboard com MRR, gestao de licenses (revoke, estender, transferir HWID).
- Visao de clientes e pedidos com filtros e paginacao.
Minha conta
- Cliente acompanha licenses, transfere HWID self-service (1x/mês sem custo), abre Stripe Customer Portal.
- Login por magic link (email) — em breve: Discord OAuth + email/senha.
Compliance e SEO
- Páginas legais revisadas: Termos (CDC art. 49 — 7 dias arrependimento), Privacidade (LGPD art. 18 completo + DPO + transferência internacional), EULA (L1 + OFAC + indenizacao).
sitemap.xml,robots.txte OpenGraph image com brand.
Proximos passos
- Login Discord OAuth + email/senha (além do magic link).
- Auditoria de acoes admin.
- Reprocessamento manual de compras.
- i18n completo (pt-BR + en-US).