Churros Fantasy · fase 1 · ao vivo

Os agentes trabalhando

Atualiza sozinho a cada 30 s. Dados tirados do branch feat/churros-fantasy-fase1, dos arquivos que cada agente está editando e dos testes que estão rodando. Plano completo: churros-fantasy.apps.art-and-see.com

5/7agentes que terminaram
56commits na fase 1
0arquivos em edição agora
19testes e simulações rodando
🥊

Combate e inimigos

combo no ar, esquiva perfeita, física de grupo, Vanish seguro, onomatopeia que não tapa

terminou
Mexeu por último
src/enemies/fase1.test.ts · há 54 min
Rodando agora
—
Arquivos em edição
0
Pedidos ao integrador
há 1.2 h
  1. direção + L no mesmo quadro esquiva (teclas cruas, relativas à câmera); próximo J depois da Explosão < 0,2 s; troca de alvo prefere ±100° da
  2. J sem nada para acertar mergulha (tryDive); degrau no inimigo (evento stomp) faz cambalear; teste de C+J no ar
  3. corpo no ar não patina deitado — o chão não empurra o ponto do corpo acima da altura de pouso
  4. onomatopeia legível (só golpe forte, ao lado e acima, nunca cobre o inimigo) + testes dos itens 9, 15, 22, 24
🦗

Movimento e parkour

controlador do Jolt, não travar nos prédios, subir só quando você pede, mergulho com tecla

trabalhando agora
Mexeu por último
src/player/parkour/index.ts · há 6 min
Rodando agora
timeout 3000 npx vite-node --config movimento-sim/vite.sim.config.mjs movimento-sim/run-el
npm exec vite-node --config movimento-sim/vite.sim.config.mjs movimento-sim/run-elements.t
Arquivos em edição
0
Pedidos ao integrador
há 1.3 h
  1. borda em ângulo achada pela normal da parede (até ~66°), pré-checagem no ar alcança parede a 60°, ponto final de pé checado com o corpo inte
  2. movimento novo avança já no 1º passo, assistência de aproximação segura ≥ 1 quadro, alcance de 1,55 m andando até o obstáculo, pulo de subid
  3. pulo com o stick num obstáculo escalável é pedido de subir; assistência de aproximação sem engolir o Espaço; subir por cima sem as duas mãos
  4. corpo nunca termina dentro de geometria, um dono só para bordas, parkour com intenção (AC) e caminhos varridos
🎥

Câmera e teclas

câmera que volta para as costas, Q/E só na câmera, sem pulos perto da parede

terminou
Mexeu por último
src/input.ts · há 6 min
Rodando agora
—
Arquivos em edição
0
Pedidos ao integrador
há 58 min
  1. mira enquadra o grupo inteiro e câmera encostada na parede sobe por cima da cabeça
  2. oclusão das malhas mescladas por BVH (73 → ~2 ms por quadro), leque a 30 Hz, buraco só em volta do Kavo
  3. segue atrás em qualquer direção, só o giro manual move a tecla, paredes sem tranco, mira enquadra a luta
  4. janelas de tecla no relógio de jogo, rótulos pelo layout, mira sem Teclas de Aderência
🏪

Mundo, loja, atendente, interface e som

loja inteira, preço único, save com novo jogo, rodadas com fim, missão na tela, setas de ameaça

terminou
Mexeu por último
src/tuning.ts · há 55 min
Rodando agora
—
Arquivos em edição
0
Pedidos ao integrador
há 54 min
  1. setas da câmera no HUD, café em lata na geladeira, fala livre que varia, pastas antigas fora do painel
  2. máquinas e gachapons em atlas — 113 → 18 draws, 76 → 10 materiais no interact (render #6b)
  3. pedidos do movimento e do integrador — bicicletas colidem, frestas fechadas, rota da máquina e do AC, dicas no contexto
  4. áudio suspende com a janela fora de foco (render #6c); import não usado no teste
⚡

Imagem, desempenho e carregamento

“carregando” na hora, física em arquivo à parte, sem engasgo no 1º golpe, menos peso por quadro

trabalhando agora
Mexeu por último
scripts/perf/check-dist.mjs · há 13 min
Rodando agora
/bin/bash -c source /home/codespace/.claude/shell-snapshots/snapshot-bash-1792427654544-44
Arquivos em edição
0
Pedidos ao integrador
há 12 min
  1. aquecimento em 2 fases (materiais originais, depois os clones do pontilhado de TODA malha elegível) — o clone trocado escondia o original do
  2. aquecimento inclui o passe do reflexo da rua molhada (chuva 0.6 por padrão: 13 programas compilavam no 1º quadro de jogo); setCamHole (burac
  3. scripts check, check:fast, test:integration, sim:parkour(:full) (pedido testes #1)
  4. CSS do jogo embutido no index.html (1ª pintura sem esperar outro arquivo) + scripts de medição em scripts/perf (census, boot, sizes, parse)
🧪

Testes e trava

um teste com as peças reais para cada costura que quebrou; nada passa sem verde

terminou
Mexeu por último
tests/check.mjs · há 17 min
Rodando agora
/bin/bash -c source /home/codespace/.claude/shell-snapshots/snapshot-bash-1792422243468-lc
/bin/bash -c source /home/codespace/.claude/shell-snapshots/snapshot-bash-1792422243468-lc
Arquivos em edição
0
Pedidos ao integrador
há 27 min
  1. trava distingue timeout de RPC do vitest (carga) de falha de teste; varredura mostra o começo do erro
  2. varredura rápida da trava com câmera parada (CAM=fixed também nos elementos); --full com a câmera real
  3. o rig roda o stepFixed de src/loop.ts (o mesmo passo do main.ts) + pollInput, interpolação, zonas e a camada de jogo (boot dos golpes); smok
  4. e2e numa abertura só do navegador (tests/e2e/fase1.mjs: smoke + perf + movimento); smoke/perf/movement exportam suas funções; check --e2e us
🔍

Diagnóstico do parkour preso

mede na rua real onde e quantas vezes o Kavo trava

terminou
Mexeu por último
—
Rodando agora
—
Arquivos em edição
0
Pedidos ao integrador
—

Nenhum commit ainda.

Todos os commits

  1. fix(parkour): borda em ângulo achada pela normal da parede (até ~66°), pré-checagem no ar alcança parede a 60°, ponto final de pé checado com o corpo inteiro (e
  2. docs(render): respostas ao integrador — 809 draws era o quadro de aquecimento, stats da física, 13 programas = reflexo da rua molhada, setCamHole
  3. fix(render): aquecimento em 2 fases (materiais originais, depois os clones do pontilhado de TODA malha elegível) — o clone trocado escondia o original do compil
  4. fix(camera): mira enquadra o grupo inteiro e câmera encostada na parede sobe por cima da cabeça
  5. fix(parkour): movimento novo avança já no 1º passo, assistência de aproximação segura ≥ 1 quadro, alcance de 1,55 m andando até o obstáculo, pulo de subida agar
  6. test(rubro-arena): trava distingue timeout de RPC do vitest (carga) de falha de teste; varredura mostra o começo do erro
  7. perf(camera): oclusão das malhas mescladas por BVH (73 → ~2 ms por quadro), leque a 30 Hz, buraco só em volta do Kavo
  8. perf(colisão): a verificação de entalado vem da convergência do próprio solver (sem shapecast extra por sub-passo)
  9. docs(rubro-arena): tests/README com o e2e de uma abertura só
  10. test(rubro-arena): varredura rápida da trava com câmera parada (CAM=fixed também nos elementos); --full com a câmera real
  11. docs(rubro-arena): pedido testes §7 com a medida (60 Mesh.raycast e 266 mil triângulos por quadro)
  12. test(rubro-arena): o rig roda o stepFixed de src/loop.ts (o mesmo passo do main.ts) + pollInput, interpolação, zonas e a camada de jogo (boot dos golpes); smoke
  13. fix(movimento): pulo com o stick num obstáculo escalável é pedido de subir; assistência de aproximação sem engolir o Espaço; subir por cima sem as duas mãos; Es
  14. fix(combate): direção + L no mesmo quadro esquiva (teclas cruas, relativas à câmera); próximo J depois da Explosão < 0,2 s; troca de alvo prefere ±100° da frent
  15. fix(render): aquecimento inclui o passe do reflexo da rua molhada (chuva 0.6 por padrão: 13 programas compilavam no 1º quadro de jogo); setCamHole (buraco de po
  16. fix(mundo): setas da câmera no HUD, café em lata na geladeira, fala livre que varia, pastas antigas fora do painel
  17. build(render): scripts check, check:fast, test:integration, sim:parkour(:full) (pedido testes #1)
  18. feat(main): setas de ameaça fora da tela no HUD (camRig.offscreen); contrato com manualYawTotal e offscreen
  19. refactor(main): passo fixo em src/loop.ts (stepFixed), o mesmo que o rig de integração roda; __rubro.mode
  20. fix(camera): segue atrás em qualquer direção, só o giro manual move a tecla, paredes sem tranco, mira enquadra a luta
  21. test(rubro-arena): e2e numa abertura só do navegador (tests/e2e/fase1.mjs: smoke + perf + movimento); smoke/perf/movement exportam suas funções; check --e2e usa
  22. perf(mundo): máquinas e gachapons em atlas — 113 → 18 draws, 76 → 10 materiais no interact (render #6b)
  23. test(rubro-arena): trava node tests/check.mjs (tsc + unidade + integração + varredura de parkour, tabela verde/vermelha), README dos testes, pedidos do agente d
  24. feat(main): camada de jogo do mundo — rodadas com fim e respiro, objetivo, tutorial, setas; título com Enter/clique; trem no relógio do jogo; porta abre para in
  25. test(rubro-arena): movimento (#1 #2 #4 #5, Vanish na fachada real) e física de grupo (boliche, massa) com classes reais; catálogo com fallback para o código ant
  26. docs(mundo): pedidos ao integrador — camada de jogo, título, trem no relógio do jogo, porta, HUD de combate, opções de desempenho
  27. fix(movimento): corpo nunca termina dentro de geometria, um dono só para bordas, parkour com intenção (AC) e caminhos varridos
  28. fix(mundo): pedidos do movimento e do integrador — bicicletas colidem, frestas fechadas, rota da máquina e do AC, dicas no contexto
  29. fix(main): gameTime declarado antes do input.setClock — o dist não iniciava (TDZ)
  30. feat(combate): J sem nada para acertar mergulha (tryDive); degrau no inimigo (evento stomp) faz cambalear; teste de C+J no ar
  31. test(render): scripts/perf/check-dist.mjs — uma passada de navegador no dist/ (boot sem erro, programas não crescem depois do aquecimento, custo do quadro)
  32. test(rubro-arena): varredura de parkour na rua real (preso/dentro) + tabela de movimento com os alvos do dono
  33. docs(render): URGENTE — dist não inicia (TDZ de gameTime em main.ts:67 × input.setClock)
  34. feat(main): pedidos do movimento — trava de direção pela câmera, degrau no inimigo, cápsula Jolt no passo fixo, parkour escaneado 1×, um pendurado só, câmera no
  35. fix(mundo): áudio suspende com a janela fora de foco (render #6c); import não usado no teste
  36. fix(mundo): ondas em rodadas, objetivo sempre na tela, tutorial de verbos, setas de ameaça, áudio, painel versionado
  37. fix(main): erro fatal só antes do título; trem e passagem param com o menu aberto
  38. test(rubro-arena): câmera na rua real com Input/Player/CameraRig reais (camera #1 #2 #3)
  39. fix(inimigos): corpo no ar não patina deitado — o chão não empurra o ponto do corpo acima da altura de pouso
  40. docs(render): estado dos pedidos (feitos: harness, perf, boot, contrato, noren, luz da máquina, warmup das FX/inimigos) + risco do unhandledrejection
  41. test(rubro-arena): loja com as classes reais na rua de Tóquio (mundo #1 #2 #3 #4, combate #3, #6 com bot)
  42. perf(render): CSS do jogo embutido no index.html (1ª pintura sem esperar outro arquivo) + scripts de medição em scripts/perf (census, boot, sizes, parse)
  43. test(combate): Vanish com e sem safePlace, tiro aparado volta ao atirador; pedidos de ligação para o integrador e o mundo
  44. feat(main): pedidos do combate — teclas lidas antes do tick, física no relógio do mundo, trem empurra para longe, golpes aprendidos salvos, getPlayer sem alocaç
  45. feat(main): boot em etapas com barra, física antes do título, aquecimento de shaders, erro visível, inimigos suavizados, pisão e explosão empurram objetos
  46. fix(combate): onomatopeia legível (só golpe forte, ao lado e acima, nunca cobre o inimigo) + testes dos itens 9, 15, 22, 24
  47. perf(render): aquecimento de shaders, pós em 10 passes (era 15), DPR real, perda de contexto, quadro limitado no título; tecido com textura e que dorme; rastro
  48. fix(combate): fase 1 — combo, defesa, tempo por canal, física de grupo e IA
  49. fix(mundo): catálogo único, loja inteira no caixa e na Sra. Hoshino, cesta da prateleira, save versionado
  50. test(rubro-arena): integração com as classes reais (combate #1 #2 #4 #5 #6 #7) + harness e2e (pasta dist/, __place zera a linha, borda SM64 × hang, perf com dra
  51. fix(main): teclas no relógio de jogo (input.setClock) e aviso do Shift com a mira no Tab
  52. fix(input): janelas de tecla no relógio de jogo, rótulos pelo layout, mira sem Teclas de Aderência
  53. chore(rubro-arena): contrato — ClothOpts.map/uvRect (noren com letras)
  54. build(render): dist vira pasta estática — Jolt e recast em .wasm (streaming + cache), fontes locais, tela de carregamento no 1º quadro
  55. chore(rubro-arena): contrato — IPlayer2.safePlace (teleporte que nunca entra na parede)
  56. chore(rubro-arena): fase 1 — contrato fixo (BuffId, refreshLimits, mass, manualYawDelta, eventos) e regras de dono