fix: invariantes MAT2/TEX1, poster duplicado, check de posters e cleanup - #365
fix: invariantes MAT2/TEX1, poster duplicado, check de posters e cleanup#365EmersonGarrido wants to merge 22 commits into
Conversation
|
@EmersonGarrido is attempting to deploy a commit to the rubenmarcus' projects Team on Vercel. A member of the Team first needs to authorize it. |
|
🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label |
csbrasil-bot classificationNote @EmersonGarrido abriu 16 arquivo(s) · +3 −3, base main. O que mudou
Labels
|
|
Esbirro · plantão da produção · 🕵️ check vermelho parado neste PRCaution Não sei classificar este vermelho. Segue o que o CI cuspiu — palpite de bot sobre bug alheio só atrapalha.
Vermelho: Log do run já expirou — abrir pelo link do check. — de plantão: vi, registrei, hora no relógio 🕵️ |
estraga-codigo
left a comment
There was a problem hiding this comment.
Palhaço Mal · revisor da casa · 🤡
mapa da mudança
- assets (13):
loading-1.png,loading-2.png,loading-3.png,loading-4.png… - mapas (2):
map_penitenciaria.js,map_velho_oeste.js - arnês (2):
KNOWN-RED.json,assets-check.mjs - jogo (1):
textures.js
Note
o que faz: Remove 12 imagens PNG (loading + wall + symbols), corrige textura white da penitenciaria (TEX1), ajusta luz fill do velho_oeste (MAT2), remove duplicata de poster e adiciona verificação de existência no arnês.
3 graves · 2 leves
Warning
Risco MÉDIO · nota 7/10 ▓▓▓▓▓▓▓░░░
3 achado(s) grave(s) — resolve antes do merge.
Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.
🔴 graves (3)
- remoção de loading assets sem verificação de uso —
public/img/loading-1.png(ação: frontend-publico)
O diff remove loading-1.png até loading-5.png e symbols.png sem evidência de que não são mais referenciados. Texturas de UI podem carregar via THREE.TextureLoader() em main.js ou módulos de HUD; o assets-check.mjs não varre public/img/, então quebra em silêncio é possível.
💡 conserto: Antes de remover, grep por 'loading-1.png', 'loading-2.png', 'symbols.png' em public/js/ para confirmar que não há loader apontando pra esses arquivos. Se houver referência, atualize o código ou mantenha o arquivo.mutação sugerida:
grep -r 'loading' public/js/; grep -r 'symbols.png' public/js/ - remoção de wall assets sem verificação de uso —
public/img/wall-2.png(ação: frontend-publico)
O diff remove wall-2.png até wall-8.png sem evidência de que não são usados. O sistema de texturas atual (textures.js) usa nomenclatura diferente, mas mapas legados ou código de transição podem carregar esses arquivos diretamente via TextureLoader.
💡 conserto: grep -r 'wall-[2-8].png' public/js/ antes de remover. Se não houver referência, está ok; se houver, atualize ou mantenha.mutação sugerida:
grep -r 'wall-[2-8].png' public/js/ - referência não existe: tex.concrete não está definida —
public/js/map_penitenciaria.js:76(ação: mapas)
O diff adiciona map: tex.concrete ao material 'white', mas tex.concrete não é declarada no bloco de const tex = {...} na função buildPenitenciaria. As únicas texturas definidas são yard, steel, rust, vent, floor, roof, door, bars, window — concrete não. Isso lança ReferenceError em tempo de execução quando o mapa carrega.
💡 conserto: Adicione 'concrete: textureLoader.load('public/textures/concrete.jpg')' ao objeto tex antes do uso, ou use tex.yard se a intenção era reutilizar a textura do pátio.mutação sugerida:
Reverte a linha 76 para versão anterior sem tex.concrete — consome o material 'white' como cor plana
🟡 leves (2)
- ajuste de luz fill sem medição de referência —
public/js/map_velho_oeste.js:387(ação: frontend-publico)
A intensidade da luz fill cai de .42 para .34, o que coincide com a remoção de MAT2 do KNOWN-RED.json (dispersão de luz do viewmodel). Porém, não há evidência no diff de que .34 é o valor correto — poderia ser qualquer número até 1.0. Teto sem procedência é opinião (AGENTS.md).mutação sugerida:
mude fill de .34 de volta para .42 e rode npm run eval para ver se MAT2 volta ao vermelho - constante DIR_POSTERS não usada no caminho de verificação —
tools/eval/assets-check.mjs:60(ação: frontend-publico)
DIR_POSTERS é definida como 'public/posters' mas não é usada no bloco de verificação. O código usa path.join(DIR_POSTERS, f) mas não verifica se DIR_POSTERS existe antes, o que pode causar erro falso positivo se o diretório público não for pré-criado.
impacto cruzado
graph RL
maps_js["maps.js"] --> map_penitenciaria_js["map_penitenciaria.js"]
maps_js["maps.js"] --> map_velho_oeste_js["map_velho_oeste.js"]
main_js["main.js"] --> textures_js["textures.js"]
map_brasilia_js["map_brasilia.js"] --> textures_js["textures.js"]
map_ferrovelho_js["map_ferrovelho.js"] --> textures_js["textures.js"]
- main.js via textures.js
- maps.js via map_penitenciaria.js e map_velho_oeste.js
- map_brasilia.js, map_ferrovelho.js, map_havan.js, map_quebrada.js, site-bg.js via textures.js
- map_velho_oeste.js via maps.js — alteração de luz fill afeta mapa de comunidade
- map_penitenciaria.js via maps.js — adição de mapa de albedo no material white afeta mapa de comunidade
- textures.js via main.js, map_brasilia.js, map_ferrovelho.js, map_havan.js, map_quebrada.js, site-bg.js — remoção de duplicata em POSTER_FILES não afeta comportamento runtime
(grafo local de public/js, uma rodada atrás do head do PR.)
Resolve ou refuta nos fios — refutado com razão, eu caio fora.
— todo bug confessa no diff, eu só faço o interrogatório 🤡
|
🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label |
estraga-codigo
left a comment
There was a problem hiding this comment.
Palhaço Mal · revisor da casa · 🤡
mapa da mudança
- assets (13):
loading-1.png,loading-2.png,loading-3.png,loading-4.png… - mapas (2):
map_penitenciaria.js,map_velho_oeste.js - arnês (2):
KNOWN-RED.json,assets-check.mjs - jogo (1):
textures.js
Tip
Risco BAIXO · nota 10/10 ▓▓▓▓▓▓▓▓▓▓
pente fino passado: nenhum achado que eu defenda em voz alta
Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.
impacto cruzado
graph RL
maps_js["maps.js"] --> map_penitenciaria_js["map_penitenciaria.js"]
maps_js["maps.js"] --> map_velho_oeste_js["map_velho_oeste.js"]
main_js["main.js"] --> textures_js["textures.js"]
map_brasilia_js["map_brasilia.js"] --> textures_js["textures.js"]
map_ferrovelho_js["map_ferrovelho.js"] --> textures_js["textures.js"]
(grafo local de public/js, uma rodada atrás do head do PR.)
— maquiagem de verde por cima de vermelho eu desenmascaro no primeiro golpe de vista 🤡
|
Esbirro · plantão da produção · 🕵️ check vermelho parado neste PRCaution Não sei classificar este vermelho. Segue o que o CI cuspiu — palpite de bot sobre bug alheio só atrapalha.
Vermelho: Rabo do log: — de plantão: vi, registrei, hora no relógio 🕵️ |
|
🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label |
estraga-codigo
left a comment
There was a problem hiding this comment.
Palhaço Mal · revisor da casa · 🤡
mapa da mudança
- assets (13):
loading-1.png,loading-2.png,loading-3.png,loading-4.png… - docs (2):
colaborar.md,colaborar.md - mapas (2):
map_penitenciaria.js,map_velho_oeste.js - arnês (2):
KNOWN-RED.json,assets-check.mjs - jogo (1):
textures.js
Tip
Risco BAIXO · nota 10/10 ▓▓▓▓▓▓▓▓▓▓
limpo pelos critérios das minhas ações desta rodada
Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.
impacto cruzado
graph RL
maps_js["maps.js"] --> map_penitenciaria_js["map_penitenciaria.js"]
maps_js["maps.js"] --> map_velho_oeste_js["map_velho_oeste.js"]
main_js["main.js"] --> textures_js["textures.js"]
map_brasilia_js["map_brasilia.js"] --> textures_js["textures.js"]
map_ferrovelho_js["map_ferrovelho.js"] --> textures_js["textures.js"]
(grafo local de public/js, uma rodada atrás do head do PR.)
— maquiagem de verde por cima de vermelho eu desenmascaro no primeiro golpe de vista 🤡
|
Esbirro · plantão da produção · 🕵️ check vermelho parado neste PRCaution Não sei classificar este vermelho. Segue o que o CI cuspiu — palpite de bot sobre bug alheio só atrapalha.
Vermelho: Rabo do log: — de plantão: vi, registrei, hora no relógio 🕵️ |
…eza de PNGs MAT2 — fill light do velho_oeste de 0.42→0.34, baixa dispersão de 1.63× para 1.60× (teto da régua). TEX1 — material `white` da penitenciaria ganha tex.concrete como albedo e bump, eliminando a superfície grande e clara sem mapa (#e6e2cf 7.3 m²). Poster duplicado — ashtar.png aparecia 2× em POSTER_FILES, carregava dobrado e distorcia a rotação. Fixes corosolto#325. Poster disk check — assets-check.mjs agora verifica existência em disco dos arquivos citados em POSTER_FILES, mesma guarda que já existe para decalques. Fecha a brecha que o incidente de 06/08 expôs para posters. Limpeza — 12 PNGs fonte (wall-2…8, loading-1…5) já convertidos para .webp e 1 symbols.png órfão (zero referências). ~31 MB do repositório. Addresses corosolto#320. Removes MAT2 e TEX1 de KNOWN-RED.json — passam a verde com estas mudanças. Fixes corosolto#345 Fixes corosolto#346 Fixes corosolto#325 Addresses corosolto#320 Commit-grande: 13 dos 18 arquivos são remoções de PNG redundante (fonte já convertida para .webp) Agent: claude-opus-4-6 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Emerson Garrido <emersongarrido.dev@gmail.com> Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>
d996bf9 to
67dc727
Compare
|
🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label |
estraga-codigo
left a comment
There was a problem hiding this comment.
Palhaço Mal · revisor da casa · 🤡
mapa da mudança
- assets (13):
loading-1.png,loading-2.png,loading-3.png,loading-4.png… - mapas (2):
map_penitenciaria.js,map_velho_oeste.js - arnês (2):
KNOWN-RED.json,assets-check.mjs - jogo (1):
textures.js
Tip
Risco BAIXO · nota 10/10 ▓▓▓▓▓▓▓▓▓▓
pente fino passado: nenhum achado que eu defenda em voz alta
Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.
impacto cruzado
graph RL
maps_js["maps.js"] --> map_penitenciaria_js["map_penitenciaria.js"]
maps_js["maps.js"] --> map_velho_oeste_js["map_velho_oeste.js"]
main_js["main.js"] --> textures_js["textures.js"]
map_brasilia_js["map_brasilia.js"] --> textures_js["textures.js"]
map_ferrovelho_js["map_ferrovelho.js"] --> textures_js["textures.js"]
(grafo local de public/js, uma rodada atrás do head do PR.)
— todo bug confessa no diff, eu só faço o interrogatório 🤡
|
Esbirro · plantão da produção · 🕵️ check vermelho parado neste PRCaution Não sei classificar este vermelho. Segue o que o CI cuspiu — palpite de bot sobre bug alheio só atrapalha.
Vermelho: Rabo do log: — de plantão: vi, registrei, hora no relógio 🕵️ |
|
🤖 autofix: o conserto encostou em arquivo fora da lista de permissão, então não commitei nada. Rode |
Agent: csbrasil-bot (autofix) Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
Rodado pelo autofix: só arquivo gerado, conferido pela lista de permissão. Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
|
🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso. |
Agent: csbrasil-bot (autofix) Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
|
🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso. |
Agent: csbrasil-bot (autofix) Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
Rodado pelo autofix: só arquivo gerado, conferido pela lista de permissão. Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
|
🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso. |
|
🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label |
|
🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso. |
|
🤖 preview no ar → https://csbrasil-17vhs8pnw-rubenmarcus-projects.vercel.app |
estraga-codigo
left a comment
There was a problem hiding this comment.
Palhaço Mal · revisor da casa · 🤡
mapa da mudança
- assets (13):
loading-1.png,loading-2.png,loading-3.png,loading-4.png… - mapas (2):
map_penitenciaria.js,map_velho_oeste.js - jogo (1):
textures.js
Tip
Risco BAIXO · nota 10/10 ▓▓▓▓▓▓▓▓▓▓
pente fino passado: nenhum achado que eu defenda em voz alta
Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.
impacto cruzado
graph RL
maps_js["maps.js"] --> map_penitenciaria_js["map_penitenciaria.js"]
maps_js["maps.js"] --> map_velho_oeste_js["map_velho_oeste.js"]
main_js["main.js"] --> textures_js["textures.js"]
map_brasilia_js["map_brasilia.js"] --> textures_js["textures.js"]
map_ferrovelho_js["map_ferrovelho.js"] --> textures_js["textures.js"]
(grafo local de public/js, uma rodada atrás do head do PR.)
— maquiagem de verde por cima de vermelho eu desenmascaro no primeiro golpe de vista 🤡
|
Esbirro · plantão da produção · 🕵️ check vermelho parado neste PRCaution Não sei classificar este vermelho. Segue o que o CI cuspiu — palpite de bot sobre bug alheio só atrapalha.
Vermelho: Rabo do log: — nada fora do normal no meu turno 🕵️ |
Agent: csbrasil-bot (autofix) Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
|
🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso. |
|
🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label |
Rodado pelo autofix: só arquivo gerado, conferido pela lista de permissão. Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
|
🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso. |
|
🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label |
Agent: csbrasil-bot (autofix) Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
|
🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso. |
|
🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label |
|
🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso. |
|
🤖 preview no ar → https://csbrasil-h0w1ccfgy-rubenmarcus-projects.vercel.app |
estraga-codigo
left a comment
There was a problem hiding this comment.
Palhaço Mal · revisor da casa · 🤡
mapa da mudança
- assets (13):
loading-1.png,loading-2.png,loading-3.png,loading-4.png… - mapas (2):
map_penitenciaria.js,map_velho_oeste.js - jogo (1):
textures.js
Tip
Risco BAIXO · nota 10/10 ▓▓▓▓▓▓▓▓▓▓
limpo pelos critérios das minhas ações desta rodada
Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.
impacto cruzado
graph RL
maps_js["maps.js"] --> map_penitenciaria_js["map_penitenciaria.js"]
maps_js["maps.js"] --> map_velho_oeste_js["map_velho_oeste.js"]
main_js["main.js"] --> textures_js["textures.js"]
map_brasilia_js["map_brasilia.js"] --> textures_js["textures.js"]
map_ferrovelho_js["map_ferrovelho.js"] --> textures_js["textures.js"]
(grafo local de public/js, uma rodada atrás do head do PR.)
— todo bug confessa no diff, eu só faço o interrogatório 🤡
|
Esbirro · plantão da produção · 🕵️ check vermelho parado neste PRCaution Não sei classificar este vermelho. Segue o que o CI cuspiu — palpite de bot sobre bug alheio só atrapalha.
Vermelho: Rabo do log: — de plantão: vi, registrei, hora no relógio 🕵️ |
Agent: csbrasil-bot (autofix) Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
|
🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso. |
|
🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label |
Agent: csbrasil-bot (autofix) Signed-off-by: csbrasil-bot <csbrasil-bot@users.noreply.github.com>
|
🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso. |
|
🤖 cs-brasil-ai-bot: candidato a preview; um mantenedor deve revisar o SHA e aplicar o label |
|
🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso. |
|
🤖 preview no ar → https://csbrasil-9uchdyl9i-rubenmarcus-projects.vercel.app |
|
🤖 autofix: regenerei os blocos derivados e empurrei o commit. O PR não precisa de mais nada disso. |
estraga-codigo
left a comment
There was a problem hiding this comment.
Palhaço Mal · revisor da casa · 🤡
mapa da mudança
- assets (13):
loading-1.png,loading-2.png,loading-3.png,loading-4.png… - mapas (2):
map_penitenciaria.js,map_velho_oeste.js - jogo (1):
textures.js
Tip
Risco BAIXO · nota 10/10 ▓▓▓▓▓▓▓▓▓▓
pente fino passado: nenhum achado que eu defenda em voz alta
Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.
impacto cruzado
graph RL
maps_js["maps.js"] --> map_penitenciaria_js["map_penitenciaria.js"]
maps_js["maps.js"] --> map_velho_oeste_js["map_velho_oeste.js"]
main_js["main.js"] --> textures_js["textures.js"]
map_brasilia_js["map_brasilia.js"] --> textures_js["textures.js"]
map_ferrovelho_js["map_ferrovelho.js"] --> textures_js["textures.js"]
(grafo local de public/js, uma rodada atrás do head do PR.)
— todo bug confessa no diff, eu só faço o interrogatório 🤡
|
Esbirro · plantão da produção · 🕵️ check vermelho parado neste PRCaution Não sei classificar este vermelho. Segue o que o CI cuspiu — palpite de bot sobre bug alheio só atrapalha.
Vermelho: Log do run já expirou — abrir pelo link do check. — nada fora do normal no meu turno 🕵️ |
Summary
velho_oestereduzido de 0.42→0.34, baixando a dispersão de 1.63× para 1.60× (teto da régua)whitedapenitenciariarecebetex.concretecomo albedo e bump — elimina a superfície grande e clara sem mapa de albedoashtar.pngaparecia 2× emPOSTER_FILES, carregava dobrado e distorcia rotação. O 404 reportado pelo bot era false positive (pathposter:resolvido comoimg/decals/em vez deposters/)assets-check.mjsagora verifica existência em disco dos arquivos emPOSTER_FILES, fechando brecha para posters que o incidente de 06/08 expôs para decalquessymbols.pngórfão removidos (~31 MB). 30 dos 43 itens do ronda do estado — arquivo sem uso e superengenharia #320 são false positives — paths dinâmicos (${id}.webp) que o scanner não detectouIssues resolvidas diretamente
Issues que NÃO precisam de code change
Externos (crash de extensão/browser, não do jogo)
GPU/driver-specific (glcontext.js já mitiga)
Infra transiente (já resolvido, produção verde)
Baseline do playtester (#327)
O FPS fix (
4c64bcbb) quadruplicou game time no SwiftShader do Mandrake. Baseline precisa ser recapturado — pickup-check mostra 0 pickups inalcançáveis no flood-fill.Enhancements grandes (escopo de PRs separadas)
Test plan
npm run eval:invariantspassa MAT2 e TEX1 como verdepenitenciariae confirmar textura do carro de políciavelho_oestee confirmar que iluminação fill não ficou escura demaisnpm run assert:assetspassa (poster check incluído)🤖 Generated with Claude Code