▶ JOGAR
versão em produção · vNão

Changelog

Tudo que mudou, versão por versão. A versão em produção é a vNão. O arquivo completo vive em CHANGELOG.md no repositório - esta página é ele, renderizado.

vNão · lançado — 2026-09-06#

Adicionado

  • Contador central de SEQUÊNCIA mostra os abates da vida atual confirmados pelo jogo/servidor, com identidade visual do CSBrasil; morte, round e reconexão o zeram sem apagar o total da partida. Régua eval:killstreak cobre SP e MP com seis mutantes.
  • Contador de ABATES do jogador no HUD, na coluna de estado dele: algarismo grande com rótulo miúdo, conta a PARTIDA (não o abate do time nem o da rodada) e não zera na virada de round — antes o número pessoal só existia atrás do TAB. Régua eval:abateshud com quatro mutantes, no check:fast.
  • Sertão da Treta substitui o Velho Oeste: casario de taipa, Caatinga, Canudos, calango quadrúpede, aves, cabras e galinha com pintinhos. Preview real com vídeo silencioso ao passar o mouse; criação com caminhada e pausas. O memorial de Padre Cícero permanece fora desta entrega.
  • Camada operacional (tools/ops/, npm run ops:diag): o jogo diagnostica boot, deploy, assets no edge, APIs, telemetria, ranking e partida sintética e explica cada achado com causa provável, evidência, impacto e próximo passo; separa "tecnicamente verde" de "pronto para lançamento". Mutantes em ops:selftest e unidades em ops:test, os dois no check:fast.
  • public/js/ops.js: sinais da sessão no navegador (marcos de boot, FPS em partida, falhas de carga, contexto WebGL, erros de partida, abandono) expostos em window.__csbOps e como migalhas do relatório de erro — sem endpoint novo, sem desenhar nada.
  • Runbook docs/runbooks/operacao-autonoma.md: como diagnosticar, recuperar por classe de achado e reverter site, edge, backend e banco.
  • npm run ops:aquecer e o passo no prod-watch.yml: depois do purge de cada deploy, o edge é aquecido com os módulos e todos os assets que a produção pede (111 MISS de 112 logo após a alpha.224 → HIT).
  • ops-diag.yml: a diagnose com navegador roda a cada hora e vira issue ops-diag em vermelho; portao-browser.yml passa a rodar eval:boot e as provas de navegador da camada operacional em PR que toca o boot.
  • O beacon de /api/perf leva o resumo do ops.js (boot, FPS p50/p5, falhas de carga, sessão anterior) e o relatório de crash diz onde a sessão anterior parou; a sonda de navegador usa a GPU do Mac sozinha e o elenco é sondado pelo glbchars.js que a produção serve.

Corrigido

  • O Campinho da Quebrada ganha cobertura nos dois portões e nas laterais, placar de várzea e navegação contínua nas quinas, preservando duas rotas separadas em CTF e partidas 5x5/8x8.
  • Funkeiros e Tribos Urbanas voltam a usar somente os pools de voz históricos da v7. As 36 falas Gemini rejeitadas deixam de ser alcançáveis pelos resolvers de evento, rádio e seleção; se o pack contiver apenas takes novos sem aprovação, o runtime fica em silêncio. Voz genérica, Web Speech e música removida continuam ausentes.
  • Lobisomem Mítico deixa de puxar aliados de outras facções, passa a resolver M nas telas de inspeção, usa luva M distinta no viewmodel, ganha animação própria com pés no chão e volta a publicar os retratos de resultado aprovados, que tinham saído do quadro medido no elenco.
  • O pack integrado do Lobisomem passa a servir os clipes próprios na sequência do runtime, com o fallback compartilhado preservado só para comparação e regressão.
  • No Sertão, as três carroças deixam passagem pelos dois flancos e as cinco casas diante dos respawns passam a ter porta, saída lateral, janela com revide e navegação intencional para bots.
  • As casas abertas da Praça da Matriz no Sertão preservam cobertura nas laterais das janelas, circulação interna livre e passagem dos bots junto aos esteios.
  • Em rodada de FACA os bots passam a jogar de faca: fecham até o alcance real da arma (medido 5,98 m e zero golpes em 60 s antes; 1,24 m, 18 golpes e 9 abates depois) e o golpe sai como faca — sem traçante, fogacho de cano nem som de tiro. A banda de distância de arma de fogo continua valendo na rodada normal. Régua eval:botfaca com três mutantes, no check:fast.
  • O headshot do jogador não arranca mais a câmera da primeira pessoa: a replay orbital e o hit-stop do #364 saíram, e o abate continua contando com hitmarker, dano, killfeed e locutor. Régua eval:replaycam passou a medir o contrário, com quatro mutantes.
  • Single Player voltou a abrir o submenu de MATA-MATA e CAPTURE A BANDEIRA (CTF), que segue para a seleção de mapas com o modo escolhido.
  • eval:boot voltou a rodar: a fixture do boot-check.mjs ancorava na assinatura antiga de _startGame (mudada no #489) e reprovava antes de medir; agora ancora no nome da função.
  • Os contadores do menu (/api/online e /api/map-plays) tentam de novo no cold start do backend (503 na primeira chamada, medido 06/09) em vez de ficar vazios.
  • O proxy da rede de segurança do site repassa a geo da borda (x-vercel-ip-*); a diagnose distingue city parado com presence viva (ingestão parada, corosolto/backend#22) de "ninguém jogou".
  • O build privado volta a carregar os 16 anúncios Fish, as 36 falas finais dos nove Funkeiros e somente as oito músicas aprovadas do menu.
  • Palhaços e Funkeiros sem take próprio deixam de tocar dublagem genérica; os Funkeiros preservam somente as 36 falas aprovadas.
  • A primeira fala de kill não é mais bloqueada por uma seleção ou chamada de rádio imediatamente anterior.
  • O empacotador limpa saídas anteriores e reconhece uma AWP CC0 catalogada sem confundi-la com áudio legado pelo nome.
  • Tiros ficam abaixo das vozes e a contingência original restaura falas, rounds e kill streaks em single-player e multiplayer.
  • O multiplayer reconhece inputs por sequência e suaviza correções sem apagar movimento pendente.
  • Arma, slots, pente, reserva e recarga passam a ser autoritativos no protocolo snapshot v4.
  • Trocas de arma remotas remontam a malha visível; clientes lentos não acumulam snapshots obsoletos.
  • A qualidade envia magnitude das correções para diagnóstico por sessão e round.
  • Multiplayer não vaza mais para a partida single-player depois de voltar ao menu.
  • O primeiro spawn e o respawn online obedecem imediatamente à posição autoritativa.
  • Captura de bandeira passa a receber placar, progresso, donos e relógio pelo snapshot v3.
  • Slots abandonados voltam à IA e as salas oficiais passam de 5v5 para 4v4.
  • O catálogo in-game usa a mesma versão v8 do pacote de áudio baixado no build.
v2.1.0-alpha.8 · 2026-09-28#

Mudado

  • Move docs internas para o repo privado progress (#698)
  • Limpa docs internas e cliente Godot da árvore pública
v2.1.0-alpha.7 · 2026-09-28#

Mudado

  • fix(vm): liberar a mira ADS no catálogo padrão (#693)
  • docs(vm): sincronizar blocos gerados da fábrica
  • test(vm): estabilizar capturas ADS dos Funkeiros
  • test(vm): medir catálogo da fábrica em 3:2 e 16:9
  • fix(vm): abrir ADS no catálogo da fábrica
  • fix(vm): abrir janela central de mira na fábrica
v2.1.0-alpha.6 · 2026-09-28#

Mudado

  • docs(geo): estado real de 28/09 e ordem revisada do runbook geo (#691)
  • docs(geo): estado real de 28/09 e ordem revisada — redeploy do client virou obrigatório
v2.1.0-alpha.5 · 2026-09-28#

Mudado

  • feat: lançar hub e armas com ADS legível, MGX5 e SVD restaurada (#670)
  • fix: cobrir navegação da nova home nos portões
  • fix: alinhar ADS das armas e atualizar réguas visuais
  • fix(viewmodel): restore SVD silhouette and AWP reload
  • fix(viewmodel): clear ADS sight picture on all weapons
  • docs: refresh generated ADS gate counts
  • wip(viewmodel): widen ADS view across camera modes
  • fix(viewmodel): make MGX5 scope functional
  • feat(ui): make hub default and finish multiplayer flow
  • docs(re-ui): registrar merge da câmera e tutorial MP
  • docs(game): ensinar multiplayer e corrigir texto obsoleto
  • docs(re-ui): registrar lane de lançamento e sincronizar docs gerados
  • docs(ui): registrar checkpoint e pendências do hub
  • feat(ui): reorganizar hub e dar URLs compartilháveis às seções
  • feat(ui): montar prévia do hub da home com abas e personagem
  • fix(ui): preencher wallpapers da home em qualquer proporção
v2.1.0-alpha.4 · 2026-09-27#

Mudado

  • feat(ranking): reativar ranking único por pontos sem alterar a home (#663)
  • docs(ranking): record guarded API merge
  • fix(ranking): render badge in protected Vercel deployment
  • chore(docs): regenera bloco derivado (autofix)
  • docs(ranking): checkpoint alpha.2 gates and production env
  • docs(ranking): resume after weapons release base
  • docs(ranking): wait for weapons merge before release
  • chore(docs): regenera bloco derivado (autofix)
  • chore(docs): regenera bloco derivado (autofix)
  • docs(ranking): checkpoint API nodes and Vercel dependency
  • docs(ranking): sync generated symbol index
  • docs(ranking): checkpoint database and image builds
  • feat(ranking): prepare isolated points release without hub UI
v2.1.0-alpha.3 · 2026-09-27#

Mudado

  • feat(camera): terceira pessoa visível no HUD e configurações (#668)
  • chore(docs): regenera bloco derivado (autofix)
  • docs(camera): regenera métricas e arquitetura
  • feat(camera): expõe três modos e restaura mãos da fábrica
v2.1.0-alpha.2 · 2026-09-27#

Mudado

  • viewmodel: mãos novas da fábrica por padrão nas 26 armas (#669)
  • viewmodel: publicar manifesto do Blob privado
  • docs: registrar check vm completo verde
  • docs: registrar build privado e portão de hashes
  • viewmodel: permitir build com runtime privado conferido
  • viewmodel: registrar aceite visual exato para lançamento
  • docs: distinguir alertas visuais de armas reprovadas
  • viewmodel: validar manifesto Blob no CI sem binários privados
  • test(viewmodel): verifica rotas efetivas no Astro
  • test(viewmodel): remede placar 16x9 sem novas dividas
  • test(viewmodel): remede placar 3x2 do lancamento
  • test(viewmodel): cobre lançamento padrão das famílias
  • docs(viewmodel): registra lançamento padrão e entrega privada
  • feat(viewmodel): ativa mãos novas por padrão sem flags
v2.1.0-alpha.1 · 2026-09-27#

Mudado

  • viewmodel: fábrica de armas integrada (26 armas + mãos por time), atrás do VM_LAUNCH — v2.1.0 (#667)
  • docs(vm): registra PR substituto com DCO regularizado
  • chore(docs): regenera bloco derivado (autofix)
  • viewmodel: integra árvore da fábrica com autoria regularizada
v2.1.0-alpha.0 · 2026-09-26#

Adicionado

  • Fábrica de armas do viewmodel: as 26 armas em primeira pessoa (24 produtos da fábrica a partir do pack KINEMATION, variantes e plano B; AK golden aprovada com ADS alinhado), mãos por time nos três rigs de braço e as réguas da fábrica. Tudo atrás da chave VM_LAUNCH (desligada): sem ?vmauthored=1 a produção segue no viewmodel legado. Bump de minor pedido pelo dono para marcar a linha 2.1.
v2.0.0-alpha.300 · 2026-09-26#

Mudado

  • fix(mp): cliente recusa mapa parado servido por nó desatualizado (#662)
  • fix(mp): cliente recusa mapa parado servido por no desatualizado
v2.0.0-alpha.299 · 2026-09-26#

Mudado

  • feat(mapas): estaciona 7 mapas para retrabalho e abre a oficina (?oficina=1) (#659)
  • fix(arnes): serve.mjs morria no primeiro request e levava o portao junto
  • chore(docs): regenera derivados apos o merge do autofix
  • chore(docs): regenera blocos derivados depois da remocao do wall-27
  • chore(arte): apaga de vez o wallpaper da Cuca — a personagem nao existe no elenco
  • chore(docs): regenera bloco derivado (autofix)
  • feat(mapas): estaciona 7 mapas para retrabalho e abre a oficina (?oficina=1)

Versões anteriores à v2.0.0-alpha.299 estão no CHANGELOG.md.