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.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).
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).
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).