Voltar
Releases

Changelog

Atualizado em 2026-04-21

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.3361GitHub ↗
## [Correção do login no launcher (hotfix)] - 2026-07-22 - **Corrige o login que ficava voltando para a tela de entrar** depois da última atualização, quando o painel é aberto pelo launcher (endereço local `localhost:3000`) com o domínio público configurado. A nova etapa final do login (uma chamada interna do próprio app) estava sendo barrada pela política de origem porque o app local não constava na lista do domínio. Agora a **origem local do launcher é sempre confiada** — como já acontecia com o app empacotado — então o login conclui normalmente. Isso não afrouxa a proteção: um site externo continua bloqueado (a origem dele nunca é `localhost`). Validação: `pnpm validate` verde. Atualização in-place pelo auto-updater. ---
v1.0.3360GitHub ↗
## [Login em uma etapa só + fim do spam do chat global] - 2026-07-22 - **O login no Discord agora entra de primeira, mesmo pelo domínio (HTTPS) dentro do app.** A tentativa anterior (cookies `SameSite=None; Secure`) não resolveu: o navegador embutido do launcher **descarta** os cookies temporários criados na ida para o Discord, então a validação da volta falhava e o painel pedia para autenticar de novo. Agora o sistema **não depende desses cookies** — a informação de segurança (origem + verificação anti-fraude) viaja **assinada dentro do próprio retorno do Discord**, junto com uma prova que só o navegador que iniciou o login possui. Funciona em qualquer navegador embutido, por HTTP local ou HTTPS de domínio, na primeira tentativa. - **Segurança do login reforçada:** a conclusão do login foi endurecida para impedir um golpe clássico de OAuth (fazer alguém logar, sem perceber, numa conta controlada por terceiros) — a etapa final agora só é aceita a partir do próprio painel, atrelada ao navegador que começou o processo. - **O chat global não repete mais a mesma mensagem várias vezes.** Quando a confirmação de entrega de uma mensagem entre servidores não chegava a tempo (ex.: conexão do plugin instável após um reinício da API), o sistema **reenviava a mesma mensagem** — e o plugin do jogo a exibia de novo a cada reenvio, fazendo o chat parecer "espamando". Agora o plugin **reconhece e ignora entregas repetidas do mesmo comando** (identificador único), então cada mensagem aparece **uma vez só**. A mesma proteção evita, por tabela, que um comando reenviado (por exemplo, entregar um item) seja executado em duplicidade. Validação: `pnpm validate` verde (API + Web + Bot + Domain + build) + revisão de segurança + build C++ (ASE + ASA). Atualização in-place pelo auto-updater. Lembretes: (1) o Discord precisa ter as URLs de retorno cadastradas (`http://localhost:3000/auth/callback` e a do seu domínio); (2) para o fix do chat valer nos servidores, rode Cluster → Plugins & Config → **"Atualizar todos"** e reinicie o ARK (isso também restabelece o canal de confirmação e elimina o reenvio na origem). ---
v1.0.3359GitHub ↗
## [Kits entregam os itens de verdade + tela de pedido mais clara] - 2026-07-22 - **Itens de kit agora chegam mesmo no inventário:** o comando de entrega de item exige o blueprint no formato completo do ARK (`Blueprint'/Game/.../X.X'`). Quando o item estava cadastrado só com o caminho (`/Game/.../X`), o jogo aceitava o comando mas **não criava o item** — e a entrega ficava marcada como "Entregue" sem o jogador receber nada. Agora o sistema **completa o formato do blueprint automaticamente** na entrega, então caminhos "crus" cadastrados nos produtos passam a funcionar. - **Tela do pedido:** o servidor de entrega agora aparece com o **nome + mapa** (em vez do id interno), e a lista de entregas **atualiza sozinha** enquanto houver entrega pendente (não precisa mais dar F5). Validação: `pnpm validate` verde. Atualização in-place pelo auto-updater. (Observação: pedidos já marcados como "Entregue" com blueprint antigo não reenviam sozinhos — reentregue o kit para o item chegar com o formato corrigido.) ---
v1.0.3355GitHub ↗
## [Login sem precisar autenticar duas vezes] - 2026-07-22 - **Corrigido o login que às vezes exigia autenticar no Discord 2×:** o diagnóstico apontou que os cookies temporários do login (usados para validar a volta do Discord) não sobreviviam ao redirecionamento quando o painel é acessado por HTTPS (domínio) dentro do app. Agora, sob HTTPS, esses cookies usam `SameSite=None; Secure`, então a 1ª autenticação já entra direto. Em acesso local (HTTP) o comportamento anterior é mantido. Validação: `pnpm validate` verde. Atualização in-place pelo auto-updater. ---
v1.0.3353GitHub ↗
## [Correções de interface do painel agora entram de fato no empacotamento] - 2026-07-22 - **As correções de telas do painel voltam a chegar até você:** um problema no empacotamento fazia o painel ser publicado a partir de um **cache antigo** de algumas telas — por isso a janela de **"Dar produto"** (e outros ajustes de modais) continuava cortando o conteúdo mesmo já tendo sido corrigida no código. Agora o empacotamento força uma **reconstrução limpa** do painel, então as correções de modal (janela de Dar produto sem corte, textos longos de cluster/servidor/ID sem corte) finalmente entram no seu instalador. - **Diagnóstico do login em duas etapas:** adicionamos um registro interno que aponta a causa exata daquele login que às vezes exige autenticar 2×, para corrigirmos com precisão na sequência. Validação: `pnpm validate` verde. Atualização in-place pelo auto-updater. ---
v1.0.3350GitHub ↗
## [Chat global resiliente a updates e "Reenviar" completa o pedido] - 2026-07-21 - **O chat global não cai mais quando você atualiza o launcher:** corrigimos a reconexão do plugin com o painel. Antes, se você atualizasse com os servidores **online**, o WebSocket do plugin não reconectava após a API reiniciar — e o chat global "sumia" em **todos** os servidores até reiniciar o jogo (os servidores também ficavam marcados como Offline no painel). Agora o plugin reconecta sozinho (e cai para o modo HTTP se o WebSocket falhar). ⚠️ Para esta correção valer, depois de atualizar o launcher: **atualize os plugins dos servidores** (Cluster → Plugins & Config → "Atualizar todos") e **reinicie os servidores ARK** uma vez. - **"Reenviar Entrega" agora completa o pedido inteiro:** se um pedido antigo entregou só parte (por exemplo, só os pontos de um kit), o **Reenviar** passa a **criar e entregar também os itens que faltaram** — sem duplicar o que já foi entregue. Pedidos novos já vinham completos; isto recupera os pedidos parciais antigos. Validação: `pnpm validate` verde + revisão de código. O fix do chat exige atualizar os plugins dos servidores + reiniciar; o resto é in-place pelo auto-updater. ---
v1.0.3347GitHub ↗
## [Entrega de produtos corrigida e ajuste de modais] - 2026-07-21 - **Entrega de produtos corrigida (importante):** as entregas automáticas do painel estavam ficando presas em **"Aguardando"** e nunca completavam — uma falha na fila de entrega que afetava todos os caminhos: o **"Dar produto"** do admin, o **kit de boas-vindas**, a **compra por pontos** e a **entrega após pagamento aprovado**. Agora as entregas são enfileiradas e processadas corretamente. Entregas que ficaram presas voltam a ser entregues ao clicar em **"Reenviar Entrega"** (assim que o servidor estiver online). - **Botão "Reenviar Entrega" volta a funcionar:** ele dava erro e não reenviava; agora re-enfileira a entrega já existente em vez de tentar recriá-la. - **Sem entrega em dobro:** reforço que garante que uma mesma entrega nunca é executada duas vezes (por exemplo, ao clicar "Reenviar" mais de uma vez), evitando pontos ou itens duplicados. - **Janelas (modais) que cortavam conteúdo:** a janela de **"Dar produto"** não corta mais os campos; e textos longos (nomes/slug de cluster, caminhos de arquivo, IDs de jogador) deixam de ser cortados dentro das janelas do painel. Validação: `pnpm validate` verde (API + Web + Bot + Domain + build) e revisão de código. Atualização in-place pelo auto-updater. ---
v1.0.3342GitHub ↗
## [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.3340GitHub ↗
## [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.3327GitHub ↗
## [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. ---
Portalv0.1.0licensing + 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 em customer.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.txt e 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).