Conta, login e sessões
- Configurado sim
- Funcional sim
- Validado com dados reais sim (uso interno)
- Aprovado para vender não
limites contra abuso ativos; recuperação de senha por e-mail ainda não (B8)
Esta página é o acompanhamento. Para usar o sistema, abra o FUTsway.
Abrir o FUTsway dnaplay.200-141-24-170.sslip.io
O que está configurado, o que funciona, o que já foi validado com partidas reais e o que pode ser vendido.
Corte: 2026-10-30 (horário de Brasília). Este quadro vale mais que PDFs e apresentações antigas.
limites contra abuso ativos; recuperação de senha por e-mail ainda não (B8)
identidade do arquivo, conclusão sem corrida, vídeo conferido na conclusão, limpeza de hora em hora
só vídeos públicos; sem download. 27/10: o YouTube passou a bloquear a página para o servidor ("confirme que não é um robô"); a duração agora é lida pelo player oficial no navegador do usuário
mesma validação pública da referência; sem quadros guardados como prova (avisado no relatório)
148 fundamentos; relatório só com os escolhidos; estimativa calibrada com poucas análises
nunca afirma botão; sem overlay, no máximo “provável”; a EA não publica o mapa completo fora do jogo
leitura do placar virou opcional; nada pago antes de “Iniciar análise”
só fundamentos com 3+ lances de cada lado; contagens, nunca percentual; US$ 0,02–0,03 por comparação
estimativa calibrada a partir de 5 análises por parte; formato com vídeo liberado em 26/10 (linha abaixo)
refaz só diagnóstico, verificação e recomendações
memória com evidência, padrões e cobertura em contagens
US$ 0,01–0,03 por pergunta; recuperação simples (sem busca semântica)
itens da seção 9 sem fonte ficaram de fora (lista em KNOWN_LIMITATIONS.md)
placar do FC 26 é empilhado (1º em cima); amostra pequena; arquivo enviado testado só em teste automático (sem partida real em arquivo ainda)
contêiner com privilégios mínimos
fato observado só com quadro gravado; segunda leitura ≈ US$ 0,007 por 8 lances
sem e-mail de confirmação (B8); retenção de 7 dias nos backups
ligar só antes de abrir para clientes
CSP permite script inline do próprio site (limitação do Next com pré-renderização)
gemini-4-argon + gemini-3.8-flash; 1ª análise: 2 min 46 s, US$ 0,24
claude-sonnet-5-5; só roda quando há pares para comparar
pipeline executa ≠ diagnóstico correto: falta a E3 (partidas reais do Rotcha) e a anotação humana
falta só a partida real enviada por arquivo (critério do Wellington para fechar a E13). Opcional: voz da ElevenLabs (B6; com a chave entra sozinha no lugar da do Google). Aula por link não gera arquivo (nunca baixamos do YouTube). Aula pronta guarda só o MP4 e as legendas (≈ 1,7 MB por minuto de aula)
caminho por arquivo ainda sem partida real; aulas MP4 de antes de 26/10 no player simples; iPhone: volume só pelo aparelho
E15 em validação: falta a ficha do Rogério (≥ 20 conferidas, ≥ 80 % certas, zero jogador errado/mecânica inexistente) e uma partida real por arquivo para as linhas de passe desenhadas
por link a aula do pro continua sem desenho (sem visão por link); partida real de pro por arquivo ainda não analisada (o passe aproveitado medido só aparece com arquivo); controle virtual é sempre "comando provável"
marca na interface é "Inteligência Central" (FUTSway a confirmar); aula com item ensinado ainda não provada na produção
a meta da ficha (≥ 25 cenas medidas) não foi atingida: depende de melhorar a visão (detecção da bola e do time) nestes vídeos de transmissão
o endereço do site continua o provisório até haver domínio; nomes com "DNA" do Wellington mantidos até ele decidir; nome interno do banco/volumes ficou o antigo (invisível)
ajuste fino do detector bloqueado no notebook (Smart App Control); homografia é o próximo gargalo
áudio global e contradições entre materiais entraram (e356989)
migration 0029; filtro "favoritos" olha só a pasta atual
migration 0030; cota por Academy; retenção das gravações por validade
migration 0031; sem cobrança online (B3); teto por pergunta 0,10
migration 0032; só link do YouTube; clonagem de voz bloqueada
migration 0033; rótulo "DNA Live"
migration 0034; contas existentes = Personalizado; templates com 0 itens da Central até haver conhecimento ensinado ativo
migration 0035; domínio mental.* fora da seleção das análises; falas repetidas no resumo corrigidas; falta um trecho real de 5 min sem motivo
reanalisar depois exige reenviar
a tela de resultado diz "qualidade em validação"
reserva atômica no banco
sessões de teste em produção com vídeo público: dicas escritas e faladas, atraso médio 17–23 s, US$ 0,016–0,019 por minuto; falta a sessão real do Rotcha (E4); voz do navegador (provisória)
Stripe depende de CNPJ (B3); preços dependem do dono (B7)
Resend (B8)
2×/dia no servidor; vídeos incrementais (cada um copiado uma vez; 84 pastas/3,7 GB → 9/827 MB); notebook às 8h e 20h baixa só o que falta
Better Stack (1 min) depende do dono (D27)
hoje <ENDERECO_PRODUCAO>
placa de captura de verdade (lista, resolução, prévia, sem sinal, desconexão), Remote Play com passos oficiais, "Testar minha captura" grava o resultado sozinho
padrão gemini-4-argon; a decisão "aula x gameplay" ainda errou em 2 aulas reais (correção feita, não medida)
depende da recarga do Gemini para a primeira análise real
memória só com autorização; atraso e sincronia medidos no navegador
sem o Gemini e sem a Anthropic, nenhuma análise, aula, FS Live ou Ensinar IA roda até a recarga
Cada etapa passa por: implementar → corrigir falhas → testar → Wellington aprova.
docs/historico-futsway/FUTsway_Modelo_de_Negocio_v2.pdf) e, no sistema, o menu “FUTsway Live” (explicação, modos e preferências salvas). Responder também: antecipar o Live para logo após a Fase 2?docs/screenshots/31 a 39docs/screenshots/40 a 45docs/screenshots/46 a 51docs/screenshots/56 a 63, 67, 70, 71docs/screenshots/52 a 55, 57, 61, 64 a 66, 68, 69docs/screenshots/92 a 97docs/screenshots/98 a 115docs/screenshots/116 em diantedocs/screenshots/correcao-video-final-producao-com-som.mp4; prints 162–166.docs/screenshots/167–170docs/screenshots/72 a 91docs/screenshots/refinamento/ (computador e celular; aula do pro e agente na produção; pausa do MP4)docs/screenshots/inteligencia-central/https://futsway-acompanhamento.pages.dev; o link antigo leva para ela). Os nomes "Meu DNA", "DNA Intelligence", "DNA Agent" e "DNA Input Intelligence" ficaram como estavam: dizer se mudam e para quê.8b8aa1aa, "Agente de IA" sozinho); o diagnóstico foi pelo Gemini (Anthropic sem crédito) e não citou o agente. Repetir quando o crédito voltar (bloco 42).docs/screenshots/validacao-e23-e29/e23-*): pastas em 3 níveis, mover, favoritar, duplicar, busca, filtros, lista/grade; exclusão de análise que alimentou agente nos dois modos (121 → 95 itens no agente, fontes "análise excluída"). Obs.: o filtro "favoritos" olha só a pasta atual./academy/<apelido> no estilo catálogo (continuar assistindo, aulas individuais, biblioteca, recomendados, progresso, Coach IA). Duas Academies lado a lado não veem nada uma da outra; aluno B não abre a gravação do aluno A. Administração → Contas: excluir conta.e24-*): convites, aula por link e por arquivo, gravação de mentoria em 720p com validade, isolamento 5/5 (nem por link direto), "Excluir conta" (teste-terminal apagada).e25-*): benefício começou sozinho com a 1ª mentoria (uma vez só), limite de mensagens, respostas com camada e citação da mentoria, assinatura liberada por Pix e cancelada (o benefício não recomeça). As respostas foram pelo Gemini (reserva): com o crédito da Anthropic voltam ao Claude.e26-*): criado com tutorial público (5 itens com minuto e confiança), alimentado (11 itens), desfazer (versão nova), testar citando minutos. "Ensinar/Corrigir" devolvia erro sem o dono mudar nada: corrigido e publicado; falta conferir a versão de correção e o uso numa aula. Só vídeo por link.e27-*): 2 itens reais publicados pelo administrador e depois ocultos (a curadoria é do Wellington); parceiro sem permissão só sugere e o administrador aprova; parceiro com permissão publica direto.e28-*): conta nova vê o modal, "não mostrar" vale depois de sair e entrar, reabrir em Minha conta, Padrão aplica "FUTsway Equilibrado" e o DNA Live abre com ele; o modal sumia antes do "Pronto!" — corrigido e publicado. "Preencher com a Central" preencheu 0 itens porque a Central não tem conhecimento ensinado ativo (o da E17 está arquivado).e29-*): falas só com 2+ ocorrências e com o observado, silêncio em bola na área, intervalo mínimo, bloco "Disciplina competitiva"; custo por minuto 0,020 sem → 0,022 e 0,019 com o Mental Coach (dentro de +10 %); Central inalterada pelas preferências. Falas repetidas no resumo: corrigido e publicado. Falta um trecho real de 5 min sem motivo (os públicos sempre tiveram 2+ perdas).Documentos de alinhamento do projeto. Abra para ler ou baixar.
Modelo de negócio com o nome e a identidade FUTsway e o estado de hoje: o que está no ar, o que falta validar e os custos medidos.
Quais ferramentas e contas o FUTsway usa hoje (IAs pagas, servidor de produção), quando contratar as próximas e quanto custam.
Entrega principal do produto
No ar desde 26/10 (E13) nos três tipos; 3 aulas em produção com vídeos de teste e públicos (setas: 4 de 5 certas). Falta: a primeira partida real enviada por arquivo (o Rotcha gravar e enviar). Opcional: voz da ElevenLabs (hoje a voz é a do Google; com a chave, troca sozinha).
A aula é o que o jogador recebe de cada análise; o relatório escrito vem abaixo, como complemento. Arquivo enviado → aula em MP4 (o próprio vídeo com pausas nos lances, setas e círculos, câmera lenta, voz do treinador, lousa tática 3D, legendas; assistir e baixar). Link do YouTube → aula interativa (o mesmo roteiro, desenhos e voz sobre o player oficial; com referência, o pro abre no minuto do lance). Nos três tipos de análise; conferência automática das cenas
Pronta quando: uma partida real do próprio jogador, enviada por arquivo, processada e com a aula reproduzível (critério do Wellington)
No ar em produção, aguardando a aprovação do Wellington (E1).
repositório, arquitetura, banco, autenticação, design system, layout, dashboard, fluxo de nova análise, upload, armazenamento privado, fila
Pronta quando: usuário cria conta, envia dois vídeos, análise fica enfileirada e ingestão real roda
Encanamento real em produção desde 2026-10-23, aguardando partidas reais (E3).
eventos, timestamps, análise independente A/B, comparação contextual, evidências, relatórios estruturados
Pronta quando: só avança quando a análise real convencer: validado com partidas reais
V0 no ar no computador, aguardando a primeira sessão real do Rotcha (E4).
coach de IA durante a partida: captura da tela (PC ou placa de captura; YouTube na v1), análise em janelas, dicas por voz e texto nos modos discreto/equilibrado/intensivo/silencioso, resumo da sessão
Pronta quando: jogador compartilha a tela, joga uma partida inteira, recebe orientações por voz no modo escolhido com atraso declarado e ao fim vê o resumo; validado por jogadores reais
Base do meta e comandos confirmados conforme a EA publicar.
W1 Nova Análise v2: tipo (estudar um jogador, minha gameplay, comparar), lados pelo placar (um ou os dois), 148 fundamentos, profundidade, controle e comandos (hipótese), estimativa de custo · W2 agentes (pro, combinado, Meu DNA), biblioteca, memória com evidência, padrões, chat com citações · W3 comparação entre agentes (Meu DNA x Pro X, defesa atual x anterior, plano de treino) · W4 DNA Input Intelligence completo (comandos verificados por versão, Xbox) e base do meta FC 27 preenchida, reprocessamento
Pronta quando: agente responde com links para os lances; relatório só com os fundamentos pedidos; nada de percentual inventado
planos, pagamentos, créditos, admin, limites de plano, monitoramento, carga
Pronta quando: produção estável e cobrança funcionando
PROMPT_SUPER_AGENTES_FSLIVE_CONSOLES.mdPROMPT_SUPER_AGENTES_FSLIVE_CONSOLES.mdPROMPT_HOME_PUBLICA_PLAYER_FSLIVE.mdPROMPT_HOME_PUBLICA_PLAYER_FSLIVE.md (sessão cortada pelo limite de uso)PROMPT_VALIDACAO_PRODUCAO_E23_E29.mdPROMPT_HOME_ONBOARDING_MENTAL.mdPROMPT_HOME_ONBOARDING_MENTAL.mdPROMPT_HOME_ONBOARDING_MENTAL.mdPROMPT_ECOSSISTEMA_AGENTES_ACADEMY.mdPROMPT_VISAO_REAL.mdPROMPT_REBRAND_FUTSWAY.mdPROMPT_REBRAND_FUTSWAY.mdPROMPT_FINALIZACAO.mdPROMPT_REFINAMENTO_NOVA_ANALISE.mdPROMPT_CORRECOES_VIDEO_FINAL.mdPROMPT_PLAYER_AULA.md135–136.d114fc8: 16 % (16 GB), imagens 6,0 GB.aula.mp4, aula.srt, aula.vtt).limpar-imagens.sh (fica a versão no ar + 3 mais novas) e backup de antes do deploy só com os 3 mais novos.aulas inteira).DEPLOYMENT.md → “Disco”: medições, quanto cada aula ocupa (≈ 1,75 MB por minuto de aula MP4) e quando ampliar.PROMPT_VIDEO_AULA.md + complementos do RogérioPROMPT_OTIMIZACAO_NOVA_ANALISE.mdPROMPT_BLOCO_B_E_PENDENCIAS.md.env = 20, backup .env.bak-202610251149 com 5; linha de 25/10 em ai_budget_day com limit_usd=20; o web em execução lê 20). A linha de cada dia nasce com o valor do .env e é atualizada a cada reserva (BudgetRepo.reserve). Padrão 20 no código, no Compose e nos dois .env.example; docs/COST_MODEL.md atualizado.quadros/<usuário>/<análise>/; fato só com quadro gravado; YouTube = observação do modelo + segunda leitura cega (lotes de 8, modelo rápido, só os trechos); duração por duas fontes ("tempo incerto"); rótulo sempre no relatório (momentos e linha do tempo); migration 0016.account.export, zip de 24 h, auditado) e "Excluir minha conta" (senha, cascata + arquivos, auditoria sem dado pessoal, aviso de que não há e-mail); puxar-backup.ps1 com retenção de 7 dias; limpeza de quadros e zips órfãos; migration 0017.ENFORCE_PLAN_LIMITS=false; migration 0018. A revisão de segurança automática apontou que cancelar no fim ou reprocessar e falhar devolveria crédito já usado: corrigido (b63eff1).digests-implantados.log./api/csp-report (migration 0019); a revisão automática apontou caracteres de controle no log do relatório: corrigido.docs/privado/INVENTARIO.md (ignorado), marcadores nos docs, variáveis SISTEMA_URL/PROD_HEALTH_URL no GitHub, USER= no .secrets.e2e com Playwright, PostgreSQL, site em modo produção, fila e serviço em replay da gravação real e2e-fluxo./app/analises/<id inválido> dava erro 500 (agora 404); a confirmação da exclusão se desmarcava depois de senha errada (agora fica marcada); o Caddy não relia o Caddyfile no deploy (agora é recriado quando o arquivo muda).PROMPT_MODAL_CONFIG_VIDEO.mdPROMPT_W3_W4_COMPARACAO_META.mdcc6865c, 75126e7, 8d0672c): taxonomia 38 → 48 situações; catálogos versionados (config/fundamentos.json 148 fundamentos/8 categorias/5 seleções prontas, profundidade.json, controles.json); contratos FundamentalSelection, InputHypothesis, CostEstimate; análise do vídeo filtrada por fundamentos e profundidade, comandos como hipótese, “os dois” lados; estágios por tipo (estudar um jogador, minha gameplay, comparação; comparação dos dois lados da mesma partida); /v1/estimate; migration 0012; tela nova (tipo → vídeo/jogador → fundamentos → profundidade e controle → revisão com estimativa), relatório por fundamento, controle em Minha conta.85104a0, f91e202, e9ca13b): migration 0013 (agentes, fontes, memória, padrões, histórico, agent_comparisons para a W3, chat, orçamento do chat); motor de conhecimento (extração sem duplicar, padrões isolado/recorrente/divergente, cobertura em contagens, lacunas, evolução do Meu DNA); /v1/agents/chat; telas Meus Agentes, agente, chat, Salvar inteligência; Alimentar com vídeo (a análise entra no agente ao terminar).9e8987d): base do meta FC 27 v2 com rótulo/escopo/fundamentos; 10 itens de mecânica oficial das Pitch Notes da EA (https://www.ea.com/games/ea-sports-fc/fc-27/news/pitch-notes-fc27-gameplay-deep-dive, consultada em 25/10).e9ca13b, 296c5c8): a estimativa da revisão sumia ao enviar (o envio regravava a seleção; o banco devolve o JSON com as chaves em outra ordem e o cálculo de reserva rodava depois de entrar na fila). Agora a comparação ignora a ordem e o envio calcula antes; teste de regressão.95b00d5: contratos SideIdentification/TargetSide; POST /v1/stages/identify-sides (YouTube pela URL a 1 quadro/10 s, sem download; arquivo por 12 quadros do FFmpeg em 1280 px); analyze-video com target (prompt stage_video_side_rules.md, campo lado por lance; lance do adversário ou sem lado descartado e contado); comparação só entre lados alvo; verificação com lado_confere; vídeo que a IA não abre vira video_inaccessible.b22b355: migration 0011_lado_analisado (aditiva): videos.side_reading, videos.target_side. Desvio do prompt: em videos, não em analyses, porque cada vídeo tem o seu lado (D40).0178ce8: passo “Qual jogador a IA deve analisar?” / “Qual destes jogadores é você?”, corrigir siglas, leitura falha → digitar siglas, botão travado com o motivo, gameplay por link (oEmbed 401/403/404 recusa na hora), cabeçalho “Lado analisado” no relatório, links do YouTube para lances da gameplay por link.4df4bdb: o placar do EA FC 26 é empilhado (uma sigla em cima da outra), visto ao conferir os vídeos de teste; tudo passou de “esquerda/direita” para “1º/2º do placar” (contrato, prompt da leitura, tela, relatório).ARCHITECTURE.md), AI_PIPELINE.md, DATABASE.md, PRD.md (passos 3a/4a), KNOWN_LIMITATIONS.md, ESTADO.md (linhas novas), E5 em APROVACOES.md.e6abd3f: POST /v1/live/window (quadros de ~20 s → Gemini rápido com prompts/live_window.md → LiveWindowAnalysis → motor de decisão por modo com o estado vindo do site → Claude redige só as dicas faladas/exibidas com prompts/live_tip.md).2e1ef70, 8623f79, fecddac, f6ce57b, dc22f1f: sessão vira análise do tipo live (migration 0010_live_v0, aditiva); quadros 1/s por POST autenticado; dicas por Server-Sent Events (D39: o Next não aceita WebSocket nas rotas; POST + SSE passam pelo Caddy e reconectam sozinhos); teto por minuto LIVE_MAX_COST_PER_MINUTE_USD=0.05 (relógio do servidor) + orçamento diário (reserva atômica); tela /app/live com modo, fonte (PC/placa; YouTube "em breve"), prévia, dicas escritas e faladas (Web Speech API, voz provisória), atraso exibido; resumo no histórico (dicas com horário, o que se repetiu, custo por minuto, tokens, atraso médio); recuperação encerra sessões órfãs; sessão parada por 3 min encerra sozinha.b6db341: ROADMAP renumerado, referências atualizadas (docs, telas, página de acompanhamento; PDFs v2 com nota), etiqueta curta + detalhe nos cartões de fase da página (defeito do print do dono), E4 em APROVACOES.md, D39, AI_PIPELINE.md, B10, COST_MODEL.md, ESTADO.md.8623f79).5802e05: impressão digital do arquivo (migration 0009_upload_identidade, aditiva), início do envio numa transação (beginUpload), arquivo montado conferido, temporário único por parte, chave final própria de cada envio.80c07db, 81e0dce: limpeza de hora em hora (pg-boss storage.cleanup, minuto 17) e na subida; alerta de disco acima de 80 % no /api/health (o público vê só alerta: true); vigia externo falha e manda e-mail, vigia interno registra.ead3d2c: analysis com cap_drop: [ALL], no-new-privileges, read_only, /tmp em memória; FFmpeg com -timelimit.7fad621: docs/ESTADO.md + seção "Estado atual" na página de acompanhamento; PDFs v2 regerados apontando para o quadro; rolagem lateral no celular na seção de fases corrigida.1150509: ensaios em docs/TESTING.md; testar-restauracao.sh --pacote (só a cópia externa) com conferência de login.2b9a273: registrados em docs/SECURITY.md.scripts/reiniciar-producao.ps1..github/workflows/vigia-externo.yml: saiu o passo "Reiniciar pela API da Hostinger" (e a variável IP); o aviso por e-mail agora diz para reiniciar pelo painel.docs/SECURITY.md (decisão e motivo; não reintroduzir sem nova decisão) e docs/DEPLOYMENT.md (linha "Reinício do servidor": manual pelo painel); incidente de 23/10 atualizado..secrets/hostinger-api.txt já não existia nesta máquina; gh secret list não tem HOSTINGER_API_TOKEN (nunca foi cadastrado). Busca no projeto por HOSTINGER_API, reiniciar-producao, hostinger-api, developers.hostinger: só restam as menções históricas neste log (blocos 13 e 14), mantidas como registro.blindar-host.sh ganhou o passo do sudo (/etc/sudoers.d/<USUARIO_DEPLOY>, 0440, validado com visudo -c -f antes de instalar e visudo -c depois). Aplicado às 21:58 com docker run --rm -i --privileged --pid=host alpine:3 nsenter -t 1 -m -u -i -n -p -- bash -s.sudo -n true → ok; visudo -c → /etc/sudoers.d/<USUARIO_DEPLOY>: parsed OK; swapon --show → /swapfile file 4G 0B; kernel.panic = 10, kernel.hung_task_panic = 1, kernel.softlockup_panic = 1, vm.swappiness = 10; RuntimeWatchdogUSec=1min, RebootWatchdogUSec=5min, softdog carregado, /dev/watchdog0; journald Storage=persistent (/var/log/journal/…)./opt/futsway/.env: cópia .env.bak-202610232201 (0600) e troca para GEMINI_MODEL=gemini-4-argon, GEMINI_MODEL_FAST=gemini-3.8-flash; reservas sem mudança (padrão gemini-3.5-flash-lite,gemini-3.8-flash). Padrões do Compose e .env.example alinhados.gemini-4-argon US$ 2,00 / 10,00 (entrada/saída por 1 M tokens) até 30/11/2026, depois 4,00 / 20,00; gemini-3.8-flash e gemini-3.6-flash 0,75 / 3,75 até 31/12/2026, depois 1,50 / 7,50; gemini-3.5-flash-lite 0,30 / 2,50. Iguais aos já cadastrados; acrescentado o preço de cache (cache_read) em pricing.json.KNOWN_LIMITATIONS.md), D37 (ARCHITECTURE.md), SECURITY.md (sudo e por que o risco não muda: o <USUARIO_DEPLOY> já era do grupo docker), DEPLOYMENT.md, incidente (pendência do sistema resolvida).GeminiProvider real (URL do YouTube em fileData, arquivo pela Files API e apagado ao fim, triagem em resolução baixa, 2ª passada densa a 5 qps limitada por orçamento, 3 tentativas com espera crescente, modelos reserva), ClaudeProvider real (pares, diagnóstico, verificação, recomendações), regras determinísticas em stages.py, costs.py + config/pricing.json (fonte e data), prompts versionados em prompts/, gravação/reprodução (Cassette), endpoints /v1/stages/*.0006_resultados_ia (evidências por evento, índice de custo); custo por estágio somado (inclusive tentativas que falharam), gasto do dia por chamada (horário de Brasília), ResultsRepo./api/health com os dois provedores; vídeo do usuário servido com Range só para o dono. Aviso antigo "a análise com IA ainda não está ativa" removido do assistente (busca no projeto inteiro).ARCHITECTURE.md (D37), AI_PIPELINE.md (como cada estágio chama o modelo, regras, amostragem, falhas, limites), COST_MODEL.md (preços com fonte/data, guarda de orçamento), KNOWN_LIMITATIONS.md (B1 e B9 resolvidos, B4 continua, B11 novo, limites reais da API), ROADMAP.md (Fase 2 em andamento), APROVACOES.md (E3).docs/ARCHITECTURE.md (Vercel dispensada, Supabase e R2 adiados, Hetzner só como opção futura depois do upgrade da Hostinger, atendimento Crisp + WhatsApp Business → D36); B2 atualizado; histórico da página continua recolhido (título, data e quantidade de itens; detalhes em <details>).services/analysis/futsway_analysis/contracts/live.py): LiveWindowAnalysis (janela de 15–30 s, eventos dentro da janela, evidências existentes), LiveTip (texto até 160 caracteres, categoria, gravidade, rótulo, confiança, evidência obrigatória, momento do lance e da decisão, modo, entrega falada/exibida/pos_partida; hipótese nunca falada; simulação proibida; silencioso só pós-partida) e LiveSessionSummary. JSON Schemas exportados para packages/contracts/schemas e tipos TS gerados (LiveMode, TipSeverity, TipDelivery, CaptureSource exportados).services/analysis/futsway_analysis/live/decision.py, LiveCoach): gravidade e confiança mínimas por modo, intervalo mínimo entre falas (120/60/25 s), cooldown por categoria (300/180/90 s), sem repetir a mesma dica, no máximo uma fala por janela, lance com mais de 40 s não é falado, candidata sem evidência na janela é descartada; resumo com categorias recorrentes. 14 testes novos em tests/test_live.py, com entradas simuladas marcadas como FIXTURE.0005_live.sql com coach_settings, live_sessions, live_windows e live_tips (RLS forçada; políticas por usuário no Supabase); LiveRepo com userId obrigatório; 2 testes novos (isolamento entre usuários, dica sem evidência recusada)./app/live): explicação em linguagem de jogador (exemplos do Wellington), aviso "Disponível na Fase 6. Hoje você já pode deixar suas preferências salvas.", atraso declarado de 10–30 s ("quase em tempo real"), captura por plataforma, custo por minuto sem valores. Formulário que salva o modo preferido, a voz e o volume em coach_settings, também em Minha conta. Sem botão de iniciar sessão.PRD.md §11 (objetivo, jornada, modos com regra objetiva, captura, limites, métricas) e público; AI_PIPELINE.md (Módulo Live); ARCHITECTURE.md (D31–D35); DATABASE.md; COST_MODEL.md (Live por minuto com fator por modo, sem valores); KNOWN_LIMITATIONS.md (B10); ROADMAP.md (Fase 6, com a observação sobre antecipar para depois da Fase 2); APROVACOES.md (E2, aguardando aprovação).dist/docs/; 6 fases; E2 com link para a seção; o Live nas listas "o que já funciona / o que ainda não funciona".taxonomy.py (o pedido citava 37); D35 registra o número real.environment-banner.tsx, NEXT_PUBLIC_ENVIRONMENT no código, Dockerfile, Compose, gerar-env.sh e .env.example).0004_plano_gratuito_nome renomeia para "Gratuito" (só se o nome ainda for o original); teste novo no pacote db.deploy/demo/ → deploy/producao/; variável DEMO_HOST → APP_HOST (também no /opt/futsway/.env do servidor, com cópia de segurança apagada depois do deploy verde); workflow "Deploy demo (Hostinger)" → "Produção (Hostinger)" (.github/workflows/producao.yml); segredos DEMO_SSH_ → PROD_SSH_ (novos criados; antigos apagados depois do primeiro deploy verde); scripts/deploy-demo.ps1 → scripts/deploy-producao.ps1; .secrets/hostinger-demo.txt → .secrets/hostinger-producao.txt; nome do servidor futsway-demo → futsway; deploy key do GitHub futsway-demo → futsway-producao (mesma chave, só leitura); job do CI demo-compose → producao-compose, que agora garante que a página não tem a faixa. Chaves locais ~/.ssh/futsway_demo* mantidas (nome histórico, registrado em docs/DEPLOYMENT.md).docs/DEPLOYMENT.md. E1 em docs/APROVACOES.md aponta para "o sistema no ar".deploy/producao/backup.sh (pg_dump -Fc + uploads.tgz + SHA256SUMS, confere o dump, guarda 7 dias em <BACKUPS_SERVIDOR>); cron diário às 03:30 instalado por atualizar.sh, que também faz backup antes de cada atualização; deploy/producao/testar-restauracao.sh (restaura num banco temporário, compara contagens, apaga o temporário); scripts/backup-producao.ps1 copia o último backup para <BACKUPS_NOTEBOOK>\ e confere as somas (até existir o R2).README.md, docs/DEPLOYMENT.md (seção Produção: regras, backup, restauração, operação), docs/ARCHITECTURE.md (D30), docs/KNOWN_LIMITATIONS.md e docs/PRD.md sem "demonstrativo".14–19-demo-*) removidos da galeria; novos sem faixa: 14-producao-inicio.png, 15-producao-cadastro-celular.png, 16-producao-assinatura-celular.png.futsway-demo (Hostinger KVM 2, São Paulo, Ubuntu 24.04.5, IP <IP_PRODUCAO>). Acesso inicial pela chave ~/.ssh/futsway_demo cadastrada pelo dono no painel (sem senha root).bootstrap.sh passou a ter duas etapas: preparo (nome futsway-demo, usuário <USUARIO_DEPLOY> só com chave, Docker 29.9.2 + Compose v5.6.1, ufw 22/80/443, fail2ban, unattended-upgrades, fuso de SP, swap 2 GB) e travar (sem senha, sem root), executada só depois de confirmar que deploy entra por chave.futsway-demo no GitHub; código em /opt/futsway/app; /opt/futsway/.env gerado no próprio servidor (permissão 600; segredos nunca saíram de lá).~/.ssh/futsway_demo_actions); segredos DEMO_SSH_HOST, DEMO_SSH_USER, DEMO_SSH_KEY, DEMO_SSH_KNOWN_HOSTS gravados (impressão digital conferida com a do servidor).lib/dates.ts com fuso fixo America/Sao_Paulo, usado nas 4 telas com data, mais teste.docs/DEPLOYMENT.md; E1 aponta para a demo em docs/APROVACOES.md; link no README.md; botão "Abrir o FUTsway" na página de acompanhamento..secrets/hostinger-demo.txt ainda não existe: feito tudo que independe do servidor (conforme PROMPT_DEMO_ONLINE.md). Pasta .secrets/ confirmada no .gitignore.output: "standalone" com rastreamento a partir da raiz do monorepo e as migrations SQL incluídas; faixa "Ambiente provisório" quando NEXT_PUBLIC_ENVIRONMENT=demo (embutida no build).proxy.ts (ex.: /app → /login) apontavam para o endereço interno (http://127.0.0.1:3100/...). Agora usam X-Forwarded-Host/X-Forwarded-Proto (o web só é alcançável pelo Caddy). Cookie de sessão já é secure em produção.apps/web/Dockerfile (Node 24, standalone, usuário node, healthcheck), services/analysis/Dockerfile (Python 3.12 slim + FFmpeg do apt, usuário sem privilégio, healthcheck), .dockerignores.deploy/demo/: docker-compose.yml (postgres:16, analysis sem porta publicada, web, caddy; volumes pgdata, storage, analysis-work; limites de memória), Caddyfile (HTTPS automático, 16 MB por requisição: o upload é em partes de 8 MB), .env.example, gerar-env.sh (segredos gerados no próprio servidor), atualizar.sh (sobe e confere /api/health), bootstrap.sh (usuário <USUARIO_DEPLOY> só com chave, Docker, ufw 22/80/443, fail2ban, unattended-upgrades, fuso de SP, swap 2 GB, SSH sem senha e sem root, deploy key só-leitura do GitHub)..github/workflows/deploy-demo.yml: após CI verde de push na main deste repositório, publica por SSH (host conferido por known_hosts, commit precisa pertencer à main). Sem os segredos DEMO_* falha com mensagem clara e não publica. scripts/deploy-demo.ps1 para publicação manual.demo-compose: monta as duas imagens e sobe postgres + analysis + web de verdade no Linux do GitHub (substitui o teste com Docker que esta máquina não tem).docs/DEPLOYMENT.md tiver o endereço real.docs/DEPLOYMENT.md: seção do ambiente demo (mapa de servidores, primeira instalação passo a passo, publicar, logs, reiniciar, backup e restauração do pgdata e dos uploads, avisos).apps/web/src/server/storage/index.ts nunca tinha sido versionado: a regra storage/ do .gitignore ignorava também o código-fonte. Corrigido para /storage/ (só a raiz) e o arquivo entrou no repositório. Conferido com um clone limpo: npm ci + npm run build + typecheck + testes passam.test_versions_available exigia FFmpeg 8 exato (versão do Windows de dev); passou a exigir só versão detectável.FedericoCarboni/setup-ffmpeg@v3) porque o apt-get update do runner travou mais de 10 min; limite de 20 min por job.FUTsway_Ferramentas_Servicos_Assinaturas.pdf (versão de 21/10 18h) movido para docs/referencias/ (tinha entrado por engano na raiz no commit 0ea4035).docs/ARCHITECTURE.md (D14–D29): Gemini (AI Studio → Vertex AI), Claude Sonnet 5.5 para diagnóstico/coach, RF-DETR + ByteTrack + OpenCV (sem YOLO por licença AGPL), Roboflow, ElevenLabs v3, Remotion + Three.js, Cloudflare R2, Hetzner CCX33, Vercel Pro, Stripe + eNotas, Resend, Sentry, Better Stack, PostHog, Turnstile, 1Password. Nenhuma vira código agora..env.example com as variáveis previstas (marcadas "ainda não usado pelo código"); docs/KNOWN_LIMITATIONS.md com fornecedores decididos em B3/B6/B8 e novo bloqueio B9 (chave da API do Claude); docs/DEPLOYMENT.md com Vercel Pro, Hetzner e R2 como alvo.docs/APROVACOES.md: ciclo implementar → corrigir → testar → Wellington aprova; etapa E1 (Fundação) entra como aguardando aprovação.scripts/acompanhamento.mjs (Node puro, sem dependências): lê aprovações, roadmap, este log, bloqueios B1–B8, telas e git log; escreve apps/acompanhamento/dist/ (index.html, styles.css, logo.svg, screenshots/). Sem JavaScript no cliente. Página diz explicitamente que não é o aplicativo e que o FUTsway ainda não está online.apps/web/src/components/brand/Emblem.tsx.npm run acompanhamento:build e npm run acompanhamento:dev (gera e serve em http://127.0.0.1:4321 com servidor HTTP mínimo embutido, sem dependência nova).minmax(0, 1fr)); corrigido e conferido sem rolagem lateral em 390 px.futsway-acompanhamento criado pela API REST (success=True, futsway-acompanhamento.pages.dev); primeira publicação manual com wrangler pages deploy → 16 arquivos enviados, "Deployment complete".CLOUDFLARE_API_TOKEN (lido do arquivo, valor nunca exibido) e CLOUDFLARE_ACCOUNT_ID gravados no GitHub com gh secret set..github/workflows/acompanhamento.yml: a cada push na main gera e publica; falha com mensagem clara se faltar segredo ou se o index.html sair vazio..github/workflows/ci.yml: Ubuntu; Node 24 (npm ci, build, typecheck, testes, gerador) e Python 3.12 + FFmpeg (pytest, ruff, mypy).docs/DEPLOYMENT.md e README.md com o endereço, a conta, onde fica o token (só o caminho) e o comando manual.688455c — redefinição de senha: fora de desenvolvimento nenhum token é emitido nem logado (sem provedor de e-mail, B8); o usuário recebe aviso para falar com o suporte. Em dev o link continua no console, marcado "SOMENTE DEV".0ea4035 — upload: teto de tamanho por parte (lê content-length e recusa parte acima do limite); login: conta bloqueada ou inativa recebe a mesma resposta genérica e a senha é processada mesmo assim (não revela estado da conta pelo tempo de resposta); /api/health público responde só { ok }, detalhes só para admin logado ou com o token interno (comparação em tempo constante); erros internos da fila viram mensagens neutras para o usuário e o detalhe fica só no log do servidor.0ea4035 incluiu por engano o PDF FUTsway_Ferramentas_Servicos_Assinaturas.pdf na raiz (tratado no bloco seguinte).packages/db: migrations 0001_init (31 tabelas, planos sem preço), 0002_rls_supabase (RLS + políticas auth.uid() só quando o schema auth existir), 0003_rls_lockdown (RLS em todas as tabelas restantes; sem política permissiva ⇒ só o papel de serviço acessa; leitura de catálogos para autenticados). Cliente único (pg em produção; PGlite em dev, marcado), migrate idempotente, repositórios com filtro obrigatório por user_id, pg-boss sobre adaptador (funciona no PGlite).packages/contracts: tipos TS gerados dos JSON Schemas do Python (fonte única).apps/web (Next.js 16, Cache Components, Tailwind 4): design system com os 7 tokens do kit, Sora/Inter, emblema e logotipo em SVG provisório; cadastro/login/recuperação de senha (Argon2id, sessão em banco, cookie httpOnly, bloqueio após 5 falhas); proxy.ts com verificação otimista; dashboard; histórico; nova análise em 5 passos (referência por link do YouTube via oEmbed público ou arquivo; upload retomável em partes de 8 MB com verificação de tipo real por magic bytes; objetivos; contexto; revisão); página de processamento com etapas reais (polling a cada 3 s); minha conta (perfil, sessões ativas); assinatura (planos sem preço, aviso de cobrança desligada); treinos (vazio honesto); /api/health.instrumentation.ts): job de ingestão chama o serviço Python, grava video_metadata/video_segments, marca vídeo validated; quando as duas ingestões terminam, enfileira a análise, que para em blocked com motivo B1.connection() antes de ler sessão (erro de pré-renderização do Next 16); PGlite cria o diretório pai; adaptador do pg-boss devolve as linhas de todas as instruções; layout de "Minha conta"; status do vídeo atualizado pelo polling; dados locais movidos para ~/.futsway/ (dentro do repositório, cada escrita do PGlite disparava o watcher do Next e a página recarregava em loop).FUTsway_Contas_Assinaturas_Custos.pdf (apareceu na pasta durante o bloco) movido para docs/referencias/ e resumido em docs/KNOWN_LIMITATIONS.md; nada nele contradiz a arquitetura (R2 = S3-compatível; Resend; Sentry; pagamento Stripe/MP/Asaas; preços são decisão do dono).services/analysis)contracts/): IngestionResult, VideoAnalysis, MatchingResult, Diagnosis/VerifiedDiagnosis, RecommendationSet, LessonPlan, RenderedReport, ValidationReport. Validações de integridade: fato observado exige evidência; correspondência abaixo da similaridade mínima é rejeitada; recomendação sem evidência só pode ser hipótese; cena 3D exige dados estruturados; campos desconhecidos são erro.taxonomy.py): 37 categorias em 4 grupos, cada uma com definição, exemplo, critério de evidência e se é observável diretamente.ingestion/): ffprobe (metadados), cortes de cena (select=gt(scene,…)), trechos estáticos (freezedetect), segmentação gameplay/estático/transição, amostragem base 1 fps e densa 8 fps em CPU, orçamento de quadros. Segurança: -protocol_whitelist file, contêiner validado contra lista, -t limita decodificação ao teto, timeouts viram erro de domínio.VideoAnalysisProvider; GeminiProvider bloqueia antes de qualquer chamada sem GEMINI_API_KEY (e falha explicitamente mesmo com chave: integração pendente de validação com vídeos reais); NullProvider só para testes.matching/context.py): similaridade por zona, posse, adversários, pressão, opções, espaço, fase; cobertura reduz confiança; nunca compara pelo minuto; nunca força par./v1/health, /v1/ingest, /v1/analyze → 503 com código provider_not_configured).packages/contracts/schemas (10 arquivos).git init -b main em D:\workspace\FUTsway.FUTsway_Kit_Imagens_Separadas/ para design/brand-kit/ (31 arquivos). Inspeção visual de 01, 02, 03, 22, 23 para vetorização do logo..gitignore (segredos, node, python, mídia, PGlite) e .env.example documentado.Capturas reais do sistema rodando. Toque numa tela para ver em tamanho grande.
O que só o dono pode providenciar e o que acontece enquanto não chega.
Lista atualizada em 23/10/2026.
Para que serve: assiste aos vídeos
Enquanto não vem: —
Para que serve: modelo principal, fila normal e vídeos fora do treino do Google
Enquanto não vem: —
Para que serve: banco e armazenamento de vídeos gerenciados na nuvem
Enquanto não vem: sem bloqueio hoje: a produção usa PostgreSQL e disco no próprio servidor (D30), com backup diário e cópia externa manual
Para que serve: cobrar assinaturas
Enquanto não vem: assinatura só com plano gratuito; interface pronta, cobrança desligada
Para que serve: validar se a análise funciona de verdade
Enquanto não vem: o encanamento está provado (vídeo público + vídeo sintético); a qualidade da análise não está validada e a Fase 2 não é declarada validada antes disso
Para que serve: interface e vídeo final com a marca exata
Enquanto não vem: usamos um SVG recriado a partir do kit, marcado como provisório
Para que serve: voz natural da ElevenLabs na aula e no Live
Enquanto não vem: atualizado 26/10: a aula já narra com a voz do Google (Gemini TTS, mesma conta e cobrança do Gemini); com a chave em .secrets/elevenlabs.txt → ELEVENLABS_API_KEY, a ElevenLabs passa a ser a primeira da fila sozinha (código pronto). Sem nenhuma voz paga, a Piper offline narra, marcada “voz provisória”
Para que serve: cobrar
Enquanto não vem: planos sem preço até aprovação
Para que serve: enviar link de recuperação de senha e notificações
Enquanto não vem: em dev o link de redefinição aparece no console do servidor; fora de dev a redefinição fica desligada (nenhum token é gerado) até existir provedor
Para que serve: comparação, diagnóstico, verificação, recomendações
Enquanto não vem: —
Para que serve: coach durante a partida
Enquanto não vem: v0 no ar (24/10): PC ou placa de captura pelo navegador, janelas de 20 s, dicas escritas e faladas pela voz do navegador, teto de custo por minuto, resumo no histórico. Não cobre ainda: voz natural (ElevenLabs, B6), console sem placa pelo YouTube (v1), API Live do Gemini, comparação com o pro durante a partida, celular. Atraso real de 20–40 s (a janela de 20 s + a análise); qualidade das dicas não validada com partidas reais; quadros de 1 por segundo não mostram o movimento entre eles
O último registro (30/10/2026) não traz próximo passo.
268051c30/10/2026feat(fs-live): E37 — configuração completa (Super Agentes principal e especialidades, duração das falas, qualidade, orçamento), confirmação 'Deseja iniciar sua sessão ao vivo?', sessão imersiva sem recarregar (Pausar, Configurar, Encerrar; custo, orçamento, captura, conexão e atraso em tempo real), fim com memória só se autorizada; tempo real no serviço (ensinamento do Super Agente com padrão de intervenção, comando só com confiança alta e conferido, momento decisivo só fala curta, sem repetir na sessão, antecipação só quando o atraso permite); migration 0042; densidade pelo que foi relido e correções do coaching ao vivo; comparação rodada 3c203ad030/10/2026feat(analise): E36 — Super Agente da análise nos três modos (o conhecimento dele escolhe os lances; cada pausa cita a aula e o minuto; sem lance equivalente, diz e não inventa); ingestão: triagem + decisão pelos ensinamentos validados, candidatos registrados; comparação de modelos rodadas 1 e 21399be830/10/2026feat(super-agentes): E35 no site — tipo Análise/FS Live (existentes viram Análise, nada perdido), ensinamento com situação, quando/por quê, comando conferido, frase e quadro; aba Aulas com transcrição, pausas, marcações e densidade; gameplay sem explicação só como complementar (migration 0041); E36 no serviço — a Nova Análise pareia lance e ensinamento do agente; comando vago nunca é recomendável501a4d030/10/2026fix(servico): material de ensino só do armazenamento (arquivo) ou do YouTube (link), nas rotas de extração e de ingestão21aec0c30/10/2026perf(super-agentes): segunda leitura a 1 quadro/s com resolução padrão e teto de 8 min (custo da ingestão)05d3a3730/10/2026feat(super-agentes): E35 — motor de ingestão de aulas (leitura inteira com transcrição, pausas, marcações e densidade; segunda leitura só dos trechos explicados; comando conferido com o catálogo; padrão de intervenção do coaching ao vivo) e comparação de modelos com gabarito; log e prints da E348724e6e30/10/2026fix(live): câmera liberada só no FS Live (Permissions-Policy) — a placa de captura aparece como câmera e estava bloqueada; roteiro de validação com a câmera virtual do OBS2c3420830/10/2026fix(live): teste de captura com corpo limitado (8 KB) e detalhes com no máximo 20 chaves curtas6dca27b30/10/2026feat(live): E34 — captura de PC, PS5 e Xbox; placa de captura HDMI de verdade (detecta, escolhe resolução/fps/áudio, prévia sem som, sem sinal, desconexão e retomada); Remote Play com passos oficiais; OBS como alternativa; página Testar minha captura que grava o resultado sozinha (migration 0040)1b5426530/10/2026docs: bloco 45 (aula cita o conhecimento ensinado)3e56b1630/10/2026fix(ensinar): fonte citada pelo título público do vídeo (aula e FS Live), não pelo código192d88b30/10/2026feat(aula): a Nova Análise usa e CITA o que o agente aprendeu em vídeos explicativos (fonte e minuto na narração e no selo "aprendido em …" de cada momento); só o que foi oferecido para o lance e devolvido pelo roteiro entrab6275b830/10/2026docs: bloco 44 (E31–E33 na produção) e aprovações E30–E332f78feb30/10/2026fix(live): nome do vídeo na fonte do conhecimento ensinado; DESIGN_SYSTEM com o cabeçalho; validações E32/E334132e6f29/10/2026feat(live): o conhecimento ensinado em vídeos explicativos chega ao módulo do agente no FS Live, com a fonte e o minuto (E33, teste 7)6a5a77829/10/2026feat(ensinar): E33 — Ensinar IA — Vídeos e Conhecimentos (área única em DNA Intelligence: YouTube e Shorts, arquivo, aulas e gravações da Academy com autorização do treinador, áudio e texto; destinos Central com aprovação, agente existente, Super Agente e agente exclusivo de pro player parceiro; minuto, trecho, versão do FC 27, confiabilidade e histórico; sem duplicar nem perder) e conexão oficial do Instagram (Reels do próprio dono pela Meta, token cifrado, só leitura); migrations 0038 e 0039d26908a29/10/2026fix(live): nome FS Live também no título das sessões e no resumo; validação E32 e prints depois (E31)634acd029/10/2026feat(live): E32 — FS Live coordenado: Agente Principal com módulos (Central FC 27, Tática e meta, Passes, Defesa, Movimentação, Decisões, Mental Coach, Anomalias e agentes do usuário), coordenador com uma fala por janela (prioridade, sem repetir em 180 s, contradição resolvida pela evidência, módulo e observado registrados), módulos ligados/desligados durante a sessão, Análise de Anomalias da Gameplay (classificação, 3+ ocorrências para falar, histórico só com 5 partidas, Marcar momento + tecla M), Como você está chegando para jogar hoje? (áudio/texto, só da sessão, Meu DNA opcional, tons com Personalizado), uma leitura de imagem por janela e reescrita só da fala escolhida; migration 00379cf9d1b29/10/2026fix(home-publica): cards com a proporção da imagem (mídia 16:8, alternativas em uma linha)9c1701c29/10/2026fix(home-publica): prévia mostra só o player (como na imagem) e título/espaçamentos mais próximos da referênciaaec86e529/10/2026fix(live): autorização pública na página da sessão do FS Live (trecho gravado na Home pública)497352129/10/2026fix(analise): autorizações da Home e do público no resultado da análise (antes só em Ver etapas); docs/INSTAGRAM_CONECTAR.md; comparação da Home v1034ed2d29/10/2026fix(home-publica): páginas públicas só em tempo de execução (connection(): o build do servidor não tem banco e parava em /pro-players); anel lido no quadro parado escondido até a medição passar de 80 % (decisão 11); medição E30 (7 pausas, 1 anel, errado)731a2cc29/10/2026fix(home-publica): trecho do FS Live só com autorização pública do dono; ocultar itens só pelo dono; migration 0037 (FS Live módulos) registrada; log do bloco 43df9a54d29/10/2026fix(home-publica): páginas públicas dentro de Suspense (cacheComponents: o build parava em /assistir/[id])d57c96629/10/2026feat(home-publica): E31 — Home pública fiel à imagem de 29/10 (hero, prévia no player real, Jogada do dia, PRO vs PRO, Erro ou acerto?, Coach IA ao vivo, Análises em destaque com abas, Comunidade, Evolução dos jogadores só com autorização), menu em cima na plataforma inteira (cabeçalho com Início, Análises, Meus Agentes, Treinos, FS Live, Academy; Assinatura, Minha conta, Administração e Sair no menu da foto; três traços no celular), "FS Live" no lugar de "DNA Live", páginas públicas (Explorar, Pro Players + "Quero ser parceiro", Academies públicas, Como funciona, busca), Comunidade FUTsway (tópicos, respostas, categorias, moderação, denúncia, conta oficial), player público "Assistir análise grátis" com arquivos em cache e limite por endereço, painel da Home pública na administração, autorização pública do dono da análise, consentimento para os números na Home; migration 003609c269a29/10/2026feat(player): E30 — player de análise no padrão da imagem de 29/10: cards flutuantes "Análise com IA · fundamento · minuto" e decisão com progresso, anel verde-menta no jogador e vermelho no alvo, seta tracejada animada e cone translúcido, controles numa linha com barra verde-menta, menu lateral (Análise tática, Posicionamento, Tomada de decisão, Comandos utilizados, Clipes em destaque) que filtra e pula; desenhos dentro da imagem do vídeo (barras pretas de fora); posição lida pela IA no quadro parado (selo "posicao_no_quadro", calculada uma vez na etapa de localização, por arquivo e por link), sem seta quando não há posição confiávele5a5bfd29/10/2026docs+validacao: E22–E29 validadas na produção (bloco 42), revisão de segurança refeita, roteiros Playwright e prints; "Ensinar/Corrigir" do Super Agente aceita o perfil consolidado pela IA; prompts executados para o histórico; referências do Wellington de 29/10bd727f629/10/2026fix(onboarding+chat): modal do primeiro acesso fica montado depois de "Padrão" (mostra "Pronto!" e "Vamos conhecer sua gameplay?"); teto por pergunta do chat 0,05 → 0,10 (pelo Gemini, na reserva sem crédito da Anthropic, a estimativa chega a ~0,09 e a pergunta era recusada)6cc54e329/10/2026fix(seguranca+validacao): revisão de segurança e356989..e62c317 e dois defeitos achados na validação E23–E29 na produção