Changelog
Everything that changed, version by version. Production is vNão. The full file lives in CHANGELOG.md in the repository - this page is that file, rendered.
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:killstreakcobre 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:abateshudcom quatro mutantes, nocheck: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 emops:selfteste unidades emops:test, os dois nocheck: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 emwindow.__csbOpse 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:aquecere o passo noprod-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 issueops-diagem vermelho;portao-browser.ymlpassa a rodareval:boote as provas de navegador da camada operacional em PR que toca o boot.- O beacon de
/api/perfleva o resumo doops.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 peloglbchars.jsque 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:botfacacom três mutantes, nocheck: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:replaycampassou 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:bootvoltou a rodar: a fixture doboot-check.mjsancorava 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/onlinee/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 distinguecityparado compresenceviva (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=1a 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)
Versions older than v2.0.0-alpha.299 live in CHANGELOG.md.

