▶ 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 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

  • 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.0.0-alpha.246 · 2026-09-09#

Mudado

  • feat(míticos): time Mítico completo — 9 personagens jogáveis (#570)
  • chore(docs): regenera bloco derivado (autofix)
  • fix(deps): lockfile idêntico ao da main, sem npm install por cima
  • fix(deps): regenera o lockfile inteiro para o npm ci do CI voltar a instalar
  • fix(deps): npm audit fix zera as 5 vulnerabilidades que travavam o portão
  • feat(miticos): Caipora entra no lugar da Cuca e o time fecha em 9
  • docs(miticos): a última tentativa da Cuca — 333,4 - 187,0, e ainda não passa
  • feat(miticos): Saci e Zumbi entram consertados, e os avatares viram retrato de verdade
  • fix(regua): a revisão de browser cravava o elenco de M de ontem
  • docs(miticos): Saci é de uma perna, e a viabilidade foi medida antes de decidir
  • feat(miticos): auditoria visual do dono aprova os 7, e a mídia órfã sai do disco
  • fix(miticos): tira os webm de render que a folha de contato deixou para trás
  • fix(miticos): mídia do Lampião regerada do modelo novo, e o enquadramento certo
  • docs(miticos): a regeração da Cuca piorou, e BUG-150 registra o número
  • chore(miticos): tira scratchpad e a costura de peso que não entrou, e registra BUG-150
  • feat(miticos): time Mítico vai de 1 para 7 personagens jogáveis
  • feat(miticos): CHR7 pega quem flutua, aterramento vira genérico e Zumbi ganha clipe próprio
  • docs(miticos): fecha BUG-147 e registra o placar real do portão
  • fix(audio): Lobisomem entra no perfil físico, e comentários voltam ao orçamento
  • fix(miticos): a tela de carregamento respeitava só cinco facções
  • feat(regua): CHR7 — nenhuma malha atravessa o chão na pose assentada
  • chore(docs): bloco derivado e evidência de layout do Lajes
  • fix(menu): portão de browser volta a rodar e o badge de modo troca o painel inteiro
  • fix(miticos): tira do clipe os ossos de curl e devolve o portão de seleção
  • fix(miticos): devolve os retratos de resultado aprovados do Lobisomem
  • fix(miticos): integrate lobisomem assets and review
  • chore(docs): regenera bloco derivado (autofix)
  • chore(docs): regenera bloco derivado (autofix)
  • docs: regenera índices após candidato Mítico
  • feat(miticos): integra Lobisomem como candidato isolado
  • feat(miticos): adiciona mídia aprovada do Lobisomem
v2.0.0-alpha.245 · 2026-09-09#

Mudado

  • fix(sertao): libera carroças e casas dos respawns (#559)
  • docs(sertao): vincula draft pr 559
  • docs(sertao): registra correcao pos-merge
  • fix(sertao): libera carrocas e casas dos respawns
  • test(sertao): reproduz rejeicao pos-merge
v2.0.0-alpha.244 · 2026-09-09#

Mudado

  • fix(deps): desbloquear auditoria dos PRs (#571)
  • fix(deps): atualizar smol-toml seguro
  • fix(deps): corrigir auditoria do build
v2.0.0-alpha.243 · 2026-09-09#

Mudado

  • docs(áudio): registra bloqueio do rollback F/U (#531)
  • docs(viewmodels): registrar bloqueio da recarga M4 (#534)
  • feat(audio): comparativo A/B v7×v8 e rollback determinístico de F/U
  • docs(audio): fontes das vozes antigas de F/U localizadas fora do Git
  • docs(audio): corrige cobertura do rollback de vozes
  • docs(viewmodels): registrar diagnóstico da recarga M4
  • docs(audio): bloqueio do rollback de vozes de Funkeiros e Tribos Urbanas
v2.0.0-alpha.242 · 2026-09-08#

Mudado

  • feat(escadao): abre duas janelas e casas jogáveis no mirante (#529)
  • chore(escadao): regenerar layout de grafites
  • feat(escadao): abrir casas dos dois lados
  • test(escadao): exigir janelas na mesma sala
  • test(escadao): registrar baseline vermelha das casas
  • docs(escadao): regenera blocos derivados após encurtar comentários
  • style(escadao): comentários da casa central dentro do orçamento de 2 linhas
  • docs(escadao): regenera blocos derivados após o commit da régua
  • docs(escadao): registra a rodada da casa central e o falso positivo
  • test(escadao): régua da casa central exercendo a branch GLB_ON
  • fix(escadao): shell procedural autoritativo na casa central da laje
  • docs(escadao): fecha portoes de push e mede nao-regressao da rota
  • docs(escadao): registra checkpoint de publicacao
  • docs(escadao): registra evidências e limites do PR 529
  • fix(escadao): valida janelas e cobertura a partir do corpo real
  • chore(docs): regenera bloco derivado (autofix)
  • chore(docs): regenera bloco derivado (autofix)
  • feat(escadao): cria abrigo disputável no mirante
  • chore(docs): regenera bloco derivado (autofix)
  • feat(escadao): abre janela da casa para a rua
v2.0.0-alpha.241 · 2026-09-08#

Mudado

  • feat(sertao): finaliza casas, fauna e por do sol com reguas WebGL (#526)
  • chore(docs): sincroniza indices finais do Sertao
  • style(sertao): reduz comentarios de implementacao
  • test(sertao): reposiciona mutante de folga
  • fix(sertao): abre gargalo da rota oeste
  • perf(sertao): agrupa interiores e mede contraste
  • fix(sertao): abre fuga lateral nas casas dos spawns
  • chore(docs): regenera bloco derivado (autofix)
  • docs(sertao): fecha BUG-91 no ledger e regenera blocos gerados
  • test(sertao): verifica captura offline do BUG-91 por raio no enquadramento
  • test(sertao): contrato de interiores estendido às casas dos spawns
  • fix(sertao): platibanda-1 e pedra-7 viram interiores jogáveis (BUG-91)
  • fix(sertao): colisor da carroça espelha a geometria visível (BUG-91)
  • test(sertao): régua das carroças WA1-WA4 reprova o HEAD
  • docs(sertao): registra BUG-91, rejeição humana das carroças e casas fechadas
  • docs(sertao): registra IN7 e restaura limitações pendentes
  • test(sertao): expõe resultado do mutante bolsao
  • test(sertao): cobre mutante bolsao no check de interiores
  • docs(sertao): fecha ledger das casas da praça
  • fix(sertao): preserva folga dos obstáculos fora das casas
  • chore(docs): inclui ferramentas offline no inventário versionado
  • chore(docs): sincroniza índices da validação offline
  • fix(sertao): libera circulação e fecha frestas nas casas
  • chore(docs): regenera bloco derivado (autofix)
  • chore(docs): regenera bloco derivado (autofix)
  • feat(sertao): abre casas da praça ao combate
v2.0.0-alpha.240 · 2026-09-08#

Mudado

  • fix(audio): prevent zero exponential envelopes (#552)
  • chore(docs): regenera bloco derivado (autofix)
  • fix(audio): prevent zero exponential envelopes
v2.0.0-alpha.239 · 2026-09-07#

Mudado

  • feat(combate): contador de abates, headshot em 1ª pessoa e bot de faca que joga de faca (#536)
  • chore(docs): regenera bloco derivado (autofix)
  • docs(handoff): fecha o ledger com o que foi medido, o que ficou vermelho e o que falta
  • chore(docs): regenera bloco derivado (autofix)
  • docs(gerado): sincroniza índices após feedback de combate
  • docs(combate): registra evidência e mutantes dos três defeitos
  • docs(combate): enxuga o comentário de _meleeRange
  • fix(combate): bot de faca fecha e golpeia; HANDOFF sem build verde falso
  • feat(combate): contador de abates no HUD, headshot em 1ª pessoa e bot de faca
v2.0.0-alpha.238 · 2026-09-06#

Mudado

  • perf(amazonia): reduz custo 8x8 e vira escada do respawn (#527)
  • chore(amazonia): regenera blocos pós-merge e encurta comentário da estação A
  • docs(amazonia): registra validação pós-merge
  • docs(amazonia): registra resolução dos conflitos
  • fix(amazonia): abre as cabeças da ponte norte e fecha a VM14
  • docs(amazonia): fecha relatório 8x8 com A/B, mutantes e portões
  • docs(amazonia): atualiza scripts e blocos gerados
  • docs(amazonia): atualiza recibo final da simulação
  • test(amazonia): fortalece a simulação final
  • docs(amazonia): atualiza blocos gerados e ledger final
  • test(amazonia): integra réguas de visão e escadas no portão
  • perf(amazonia): acelera visão dos bots e valida todas as escadas
  • chore(docs): regenera bloco derivado (autofix)
  • chore(docs): regenera bloco derivado (autofix)
  • fix(amazonia): otimiza rota 8x8 e vira escada B
v2.0.0-alpha.237 · 2026-09-06#

Mudado

  • feat(combat): add bounded AWP penetration (#535)
  • feat(combat): add bounded AWP penetration
v2.0.0-alpha.236 · 2026-09-06#

Mudado

  • fix(sertao): restaura grafo de módulos do preview (#525)
  • chore(docs): regenera bloco derivado (autofix)
  • fix(sertao): separa revisão de mídia do preview

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