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.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).
v1.0.3160GitHub ↗
## [Backup e restauração de configurações pelo painel] - 2026-07-14
Novo sistema de backup/restauração para recuperar o painel após perda do banco de dados. Validação: gate FAST verde (Prisma, domain/contracts, biome, guardrails, testes API/Web/Bot/Domain, build turbo); backend 4245 testes + UI 1230 testes; revisão multi-especialista.
- **Backup completo em um arquivo** — exporte um arquivo `.bfbackup` cifrado com **toda a configuração do painel** (plugins, cargos e canais do Discord, loja, comunidade, agendamentos) **e o estado de jogador que importa** (pontos internos, vínculos de Discord, entregas, pedidos, assinaturas), além de um retrato dos pontos do ArkShop. Os segredos (tokens, senhas) vão cifrados.
- **Restauração pelo painel, com pré-visualização** — envie o arquivo, veja um **resumo do que vai mudar** por área e escolha **Substituir tudo** (recuperação de desastre) ou **Mesclar** (adiciona/atualiza sem apagar). A restauração religa tudo automaticamente mesmo com o banco recriado, e **nunca sobrescreve o progresso de jogador** já existente.
- **Proteções** — o modo Substituir exige confirmação extra quando há jogadores no banco (evita apagar pedidos e pontos por engano), e toda restauração pede um **motivo** que fica registrado na auditoria.
- **Backup automático diário** — além do botão de exportar, o painel gera um backup por dia e mantém os mais recentes. Nova tela em **Sistema → Backup**.
v1.0.3157GitHub ↗
## [Backup e restauração de configurações pelo painel] - 2026-07-14
Novo sistema de backup/restauração para recuperar o painel após perda do banco de dados. Validação: gate FAST verde (Prisma, domain/contracts, biome, guardrails, testes API/Web/Bot/Domain, build turbo); backend 4245 testes + UI 1230 testes; revisão multi-especialista.
- **Backup completo em um arquivo** — exporte um arquivo `.bfbackup` cifrado com **toda a configuração do painel** (plugins, cargos e canais do Discord, loja, comunidade, agendamentos) **e o estado de jogador que importa** (pontos internos, vínculos de Discord, entregas, pedidos, assinaturas), além de um retrato dos pontos do ArkShop. Os segredos (tokens, senhas) vão cifrados.
- **Restauração pelo painel, com pré-visualização** — envie o arquivo, veja um **resumo do que vai mudar** por área e escolha **Substituir tudo** (recuperação de desastre) ou **Mesclar** (adiciona/atualiza sem apagar). A restauração religa tudo automaticamente mesmo com o banco recriado, e **nunca sobrescreve o progresso de jogador** já existente.
- **Proteções** — o modo Substituir exige confirmação extra quando há jogadores no banco (evita apagar pedidos e pontos por engano), e toda restauração pede um **motivo** que fica registrado na auditoria.
- **Backup automático diário** — além do botão de exportar, o painel gera um backup por dia e mantém os mais recentes. Nova tela em **Sistema → Backup**.
v1.0.3131GitHub ↗
## [Host/SO no painel e detecção de plugins de terceiros] - 2026-07-13
Novas visões no painel de servidores e plugins. Validação: gate FAST verde (Prisma, domain/contracts, biome, guardrails, testes API/Web/Bot/Domain, build turbo) + plugins C++ compilados ASE+ASA.
- **Host e Sistema Operacional do servidor** — o detalhe do servidor passa a exibir, no card de Conexão, o host e o SO onde ele roda (fornecidos pelo plugin C++), inclusive para servidores gerenciados externamente (ASM).
- **Detecção automática de plugins de terceiros** — o painel de Plugins passa a **detectar e listar dinamicamente** os plugins de terceiros instalados em cada servidor (ArkShop, Permissions, etc.), com os servidores e o estado de carga de cada um — antes a lista era fixa (só ArkShop).
v1.0.3128GitHub ↗
## [Plugins de proteção first-class, FPS real, CPU/RAM e correções de log do Discord] - 2026-07-13
Refactor dos plugins de proteção + métricas e infraestrutura de servidor. Validação: gate FAST verde (Prisma, domain/contracts, biome, guardrails, testes API/Web/Bot/Domain, build turbo) + plugins C++ compilados ASE+ASA (0 erros/0 warnings) + auditoria multi-especialista (contrato, C++/SDK, migração).
- **Plugins de proteção agora são first-class** — AntiPveGriefing, PullPrevention e ImplantFix deixam de ficar escondidos numa aba única e passam a ter **card e configuração próprios** no painel (como os demais plugins), com status de saúde individual. São **9 plugins C++** listados. A configuração continua com **hot-reload** (edita e aplica em segundos, sem fechar o servidor). Chaves de configuração inalteradas; a migração re-organiza os dados automaticamente no primeiro boot.
- **Vitais — FPS real** — o painel passa a exibir **FPS** para ARK e Rust (o valor real reportado pelo servidor), em vez de "TPS". Minecraft e 7 Days seguem com TPS (tick real).
- **CPU, RAM e host/OS pelo plugin C++** — o coletor do servidor passa a fornecer CPU/RAM do processo e informações de host/SO, inclusive para servidores gerenciados externamente (ASM).
- **Correções nos logs do Discord** — o assassino nas mortes de jogador agora mostra o **nome real** da criatura (antes "Desconhecido"); "killed" que restava em inglês vira **"abatido"**; e o título do log de tribo no canal geral vira **"Registro de Tribo"** (desambigua do relay privado por tribo).
- **Anti-grief: dano a jogador offline agora em ASA** — a proteção de dano ao corpo de jogadores deslogados passa a cobrir ARK: Survival Ascended, além do Evolved.
- **Reinícios agendados e restart no ASM (Windows)** — servidores gerenciados pelo Ark Server Manager agora podem ser reiniciados/parados pelo painel via RCON (SaveWorld + DoExit), contando com o auto-restart do próprio ASM para religar. Antes o painel dependia do `arkmanager` (Linux), que não existe no Windows.
- **Servidor instalado pelo BrutusForge** — passa a nascer no modo gerenciado (o painel supervisiona o processo), destravando start/stop/restart e métricas de CPU/RAM. Servidores importados de um gerenciador externo (ASM) seguem no modo externo.
- **Recompensa de voto (ARK-Servers) multi-servidor** — a checagem de voto passa a considerar **todas** as listagens ativas do ARK-Servers e recompensa quem votou em qualquer uma delas (antes só a primeira listagem era consultada).
v1.0.3103GitHub ↗
## [Correções do painel: backups, portas e "Dar Produto"] - 2026-07-12
Correções e melhorias no painel após religar os servidores. Build: **1.0.3103**. Validação: gate FAST verde (Prisma, domain/contracts, biome, guardrails, testes API/Web/Bot/Domain, build turbo).
- **Backups** — o SaveWorld automático (RCON a cada 30min) agora tem o toggle **"SaveWorld automático"** na configuração de Backup: desative quando os saves já são geridos externamente (ex.: ASM/arkmanager) para evitar redundância e falhas. Registros de backup **com falha exibem o motivo** e podem ser **excluídos** (registro + arquivo), tanto no detalhe do servidor quanto em Manutenção.
- **Servidores** — as **portas configuradas** (Game/Query/RCON) aparecem no card da lista, e o detalhe ganhou um card **"Conexão"** com Host, IP público e todas as portas (antes só apareciam ao editar).
- **Jogadores** — a ação **"Dar Produto"** foi adicionada ao menu da lista de Jogadores (antes só no detalhe), com seletor de servidor identificável (mapa/chave) e layout corrigido; a coluna de ações passou a ser nomeada.
v1.0.3095GitHub ↗
Painel mais limpo e usavel: botao de voltar nos detalhes do cluster; seletores de servidor agora identificam o mapa/slug (nao mais nomes iguais); notificacoes clicaveis que mostram o motivo. Alertas mais inteligentes: servidor desligado vira aviso (nao mais 'critico'); queda inesperada continua critica. A dashboard virou um resumo enxuto (contadores + alertas) e o CPU/RAM/TPS ao vivo passou para a lista de Servidores.
v1.0.3086GitHub ↗
Correção do backup: agora compacta apenas os saves do servidor (world + configs) em .tar.gz, deixando de copiar os assets do jogo e a engine. Backups muito menores e mais rápidos, sem tarar o servidor inteiro.
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).