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
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
J sem nada para acertar mergulha (tryDive); degrau no inimigo (evento stomp) faz cambalear; teste de C+J no ar
corpo no ar não patina deitado — o chão não empurra o ponto do corpo acima da altura de pouso
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
trava distingue timeout de RPC do vitest (carga) de falha de teste; varredura mostra o começo do erro
varredura rápida da trava com câmera parada (CAM=fixed também nos elementos); --full com a câmera real
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
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
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
docs(render): respostas ao integrador — 809 draws era o quadro de aquecimento, stats da física, 13 programas = reflexo da rua molhada, setCamHole
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
fix(camera): mira enquadra o grupo inteiro e câmera encostada na parede sobe por cima da cabeça
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
test(rubro-arena): trava distingue timeout de RPC do vitest (carga) de falha de teste; varredura mostra o começo do erro
perf(camera): oclusão das malhas mescladas por BVH (73 → ~2 ms por quadro), leque a 30 Hz, buraco só em volta do Kavo
perf(colisão): a verificação de entalado vem da convergência do próprio solver (sem shapecast extra por sub-passo)
docs(rubro-arena): tests/README com o e2e de uma abertura só
test(rubro-arena): varredura rápida da trava com câmera parada (CAM=fixed também nos elementos); --full com a câmera real
docs(rubro-arena): pedido testes §7 com a medida (60 Mesh.raycast e 266 mil triângulos por quadro)
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
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
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
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
fix(mundo): setas da câmera no HUD, café em lata na geladeira, fala livre que varia, pastas antigas fora do painel
feat(main): setas de ameaça fora da tela no HUD (camRig.offscreen); contrato com manualYawTotal e offscreen
refactor(main): passo fixo em src/loop.ts (stepFixed), o mesmo que o rig de integração roda; __rubro.mode
fix(camera): segue atrás em qualquer direção, só o giro manual move a tecla, paredes sem tranco, mira enquadra a luta
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
perf(mundo): máquinas e gachapons em atlas — 113 → 18 draws, 76 → 10 materiais no interact (render #6b)
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
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
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
docs(mundo): pedidos ao integrador — camada de jogo, título, trem no relógio do jogo, porta, HUD de combate, opções de desempenho
fix(movimento): corpo nunca termina dentro de geometria, um dono só para bordas, parkour com intenção (AC) e caminhos varridos
fix(mundo): pedidos do movimento e do integrador — bicicletas colidem, frestas fechadas, rota da máquina e do AC, dicas no contexto
fix(main): gameTime declarado antes do input.setClock — o dist não iniciava (TDZ)
feat(combate): J sem nada para acertar mergulha (tryDive); degrau no inimigo (evento stomp) faz cambalear; teste de C+J no ar
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)
test(rubro-arena): varredura de parkour na rua real (preso/dentro) + tabela de movimento com os alvos do dono
docs(render): URGENTE — dist não inicia (TDZ de gameTime em main.ts:67 × input.setClock)
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
fix(mundo): áudio suspende com a janela fora de foco (render #6c); import não usado no teste
fix(mundo): ondas em rodadas, objetivo sempre na tela, tutorial de verbos, setas de ameaça, áudio, painel versionado
fix(main): erro fatal só antes do título; trem e passagem param com o menu aberto
test(rubro-arena): câmera na rua real com Input/Player/CameraRig reais (camera #1 #2 #3)
fix(inimigos): corpo no ar não patina deitado — o chão não empurra o ponto do corpo acima da altura de pouso
docs(render): estado dos pedidos (feitos: harness, perf, boot, contrato, noren, luz da máquina, warmup das FX/inimigos) + risco do unhandledrejection
test(rubro-arena): loja com as classes reais na rua de Tóquio (mundo #1 #2 #3 #4, combate #3, #6 com bot)
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)
test(combate): Vanish com e sem safePlace, tiro aparado volta ao atirador; pedidos de ligação para o integrador e o mundo
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ç
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
fix(combate): onomatopeia legível (só golpe forte, ao lado e acima, nunca cobre o inimigo) + testes dos itens 9, 15, 22, 24
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
fix(combate): fase 1 — combo, defesa, tempo por canal, física de grupo e IA
fix(mundo): catálogo único, loja inteira no caixa e na Sra. Hoshino, cesta da prateleira, save versionado
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
fix(main): teclas no relógio de jogo (input.setClock) e aviso do Shift com a mira no Tab
fix(input): janelas de tecla no relógio de jogo, rótulos pelo layout, mira sem Teclas de Aderência
chore(rubro-arena): contrato — ClothOpts.map/uvRect (noren com letras)
build(render): dist vira pasta estática — Jolt e recast em .wasm (streaming + cache), fontes locais, tela de carregamento no 1º quadro
chore(rubro-arena): contrato — IPlayer2.safePlace (teleporte que nunca entra na parede)
chore(rubro-arena): fase 1 — contrato fixo (BuffId, refreshLimits, mass, manualYawDelta, eventos) e regras de dono