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-11-05 (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; na rodada 4 as 4 aulas saem com o papel certo; aula demonstrada ainda com poucos itens (21 % do gabarito)
por link, o lance só vira pausa com a segunda leitura confirmando: numa partida a técnica foi pareada, mas a confirmação divergiu e nada foi mostrado
atraso mediano 19–21 s (janelas de 20 s); US$ 0,028–0,030/min; memória só com autorização
menu lateral fixo, recolhido por usuário e em Pro Players; Configurações com Minha IA e Perfil; endereços antigos redirecionam
recarga por cartão depende do CNPJ (B3); cofre derivado do AUTH_SECRET; política de preço = repasse do custo
60 modelos Gemini e 13 Claude listados pelas APIs; selos e presets só do benchmark medido
C só muda a forma (teste automático de significado); gravação de tela depende do navegador do jogador
leitura de 3 a 30 s medida (US$ 0,028–0,058/min; atraso 13,7–25,9 s); gravar partidas ainda não
Raio-X gerado em fila ao encerrar; acertos "não medido"
vira o Mental Coach da E29 no FS Live; microfone pelo navegador
ranking de 26/07/2026; os 52 classificados regionais para Londres ainda sem fonte com nomes
componentes base próprios; Perfil com tabela de comandos do controle escolhido; ConnectionFlow PS5/Xbox/PC
papel de proprietário por OWNER_EMAILS; tema global versionado; preços e margem com função única; correção de pro sem tocar o oficial; lixeira
vitrine só com elegíveis; diagnóstico; preços conferidos em 05/11 com cache; padrões refeitos
aba própria; voz saiu de Minha IA sem duplicar
origem da análise; abas manual × FS Live; tempo de partida ≠ sessão; títulos automáticos
comparar custos em modal; estilo em modal de 2 abas; vários perfis táticos com peso
Ensinar IA em janela de 3 etapas; criar agente na hora; sem Instagram; ensinamento guarda material, origem e consentimento
etapas empilhadas; gravação real; só Coach Mental; retrato congelado da sessão
1/3/5/10 s medidos; posse com confiança; atraso por etapa; fila de áudio com prazo
três controles; chamada pelo nome no navegador; segurar para falar; pergunta só com o último minuto; Picovoice bloqueado (licença)
Automático = Gemini 3.6 Flash; Lite reprovado; Claude/OpenAI bloqueados (crédito); revisão humana do gabarito pendente
status C01–C13 em docs/ATUALIZACAO_V2_STATUS.md
Anthropic continua sem crédito: o que seria Claude vai pelo Gemini
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).O5PYVvCaLw4, cada um com minuto, situação e comando) e "Super Agente de teste — MBYTES (coaching ao vivo)" (FS Live; 5 ensinamentos + padrão de intervenção da aula LVztvLMHt9Q). Comparação: 4 rodadas, padrão gemini-4-argon; na rodada 4 as 4 aulas saem com o papel certo. Wellington decide se os dois ficam.docs/referencias/lovable-ajuste-2026-11-04/comparacao/01_INICIO_01 (casca) e 06_CONFIGURACOES_02 (bloco 49).e45-fidelidade-prints-cancelada; produção segue no 08a979f (bloco 57).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_ATUALIZACAO_V2.mdPROMPT_ATUALIZACAO_V2.mdPROMPT_ATUALIZACAO_V2.mdPROMPT_ATUALIZACAO_V2.mdPROMPT_ATUALIZACAO_V2.mdPROMPT_ATUALIZACAO_V2.mdPROMPT_ATUALIZACAO_V2.mdPROMPT_ATUALIZACAO_V2.mdPROMPT_ATUALIZACAO_V2.mdPROMPT_ATUALIZACAO_V2.mdPROMPT_ATUALIZACAO_V2.mdPROMPT_VOLTAR_ANTES_E45.mdPROMPT_AJUSTE_PROJETO_LOVABLE.mdPROMPT_AJUSTE_PROJETO_LOVABLE.mdPROMPT_AJUSTE_PROJETO_LOVABLE.mdPROMPT_AJUSTE_PROJETO_LOVABLE.mdPROMPT_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 (06/11/2026) não traz próximo passo.
b88958406/11/2026docs: deploy final da Atualização V2 no log, status e estadof2425f506/11/2026feat(E56/E57): teste do Coach Mental rodado (4 Gemini × 14 cenários × 3; Automático = 3.6 Flash; Lite reprovado; US$ 0,97) e publicado pela migration 0058; "mais elaboradas" pela qualidade; fechamento V2 — matriz de 33 telas × tamanhos sem rolagem lateral, teclado, sem dados e falhas; Estilos no celular corrigido; status C01–C13; conferência da produção cobre o deploy final; docs: log blocos 68–6927e30f206/11/2026docs(E57): pacote da Atualização V2 do Wellington guardado em docs/referencias/lovable-atualizacao-v2-2026-11-05/ (D-V2-01) e o prompt executado em docs/prompts-historicos/7806e5e06/11/2026feat(E56): Coach Mental com modelo próprio — migration 0057 (agents.model_id, mental_benchmark_runs), mental_reply (mesma função no produto e no teste), pergunta ao mental com o agente certo e sem fingir que viu, Inteligência do agente (Automático + Escolher outro só com aprovados), IA do coach mental só nesta sessão, regra do Automático, teste comparativo com --provider; design system com os componentes base (E57)2cc022606/11/2026test: conferência da produção cobre o Deploy 3; docs: Deploy 3 no log790d31b06/11/2026fix(E55): revisão de segurança — pergunta por voz passa pelo orçamento da sessão e pelo teto por minuto antes de reservar, com limite próprio por contaebe149606/11/2026feat(E55): Voz e chamada no FS Live — voz do coach, microfone com teste (nível, aparelho, "diga FUTsway", erros) e chamada pelo nome separados; escuta pelo reconhecimento do navegador e segurar para falar; pergunta usa só os lances do último minuto (sem lance: não chama IA), prioridade pergunta > dica com prazo; custo da pergunta medido (US$ 0,0004); Picovoice bloqueado por licença; docs: log bloco 67362364c06/11/2026feat(E54): cadências 1/3/5/10 s medidas (1 s desligada com motivo; US$ 0,13), Leitura da tela e Quando o coach fala com a opção do adversário, posse com confiança na mesma leitura (não fala quando não sabe e conta no fim), Jeito de falar na sessão, atraso por etapa no servidor e no navegador com p50/p95 no diagnóstico, detector de novidade, fila única de áudio com prazo; docs: log bloco 66244617f06/11/2026fix(E53): revisão de segurança — gravações saem com a conta (LGPD), Trocar IA só com modelo elegível do mesmo provedor da cobrança, retenção apaga também gravações com falha e abandonadas9fade0906/11/2026feat(E53): janela do FS Live com Trocar IA e Conexão como etapas empilhadas (voltam sem perder nada), sem o bloco Avançado (qualidade automática), gravação real da partida (MediaRecorder no mesmo stream, pedaços de 10 s, perguntar no final, 30 dias, Ver gravação no Raio-X; migration 0056), agente mental em lista e Só Coach Mental, resumo completo e retrato congelado da sessão, avisos de orçamento 50/80 %; docs: log bloco 6591b5de006/11/2026test: conferência da produção cobre o Deploy 2; docs: Deploy 2 no log461702306/11/2026feat(E52): Ensinar IA em janela de 3 etapas sobre Estilos (Material → Destino com criar agente tático/Super Agente na hora → Revisar e enviar com resumo, custo e consentimento obrigatório), preferência Sempre revisar × Meus padrões (migration 0055, editável no Perfil), rotas antigas redirecionam, ensinamento guarda material/origem (dito × inferido)/consentimento, prova ensino → fala no FS Live; Instagram removido (cifra das chaves movida sem mudar a derivação); testes de tela mais robustos; docs: log bloco 649fb8cc006/11/2026feat(E51): custo de ensinar em uma linha + Comparar custos (modal, não altera a IA ativa, só elegíveis, preço pela função única), estilo em modal de 2 abas (Configuração estilo Lovable | Custo e comparação), engrenagem Agentes da sessão com vários perfis táticos em ordem e peso (migration 0054; serviço divide as vagas de ensinamento pelo peso; uma leitura e uma fala por janela), medição 1×2 perfis documentada (US$ 0,11), aviso sessão × padrões; docs: log bloco 63437693406/11/2026feat(E50): Biblioteca em duas abas (Análises manuais | Partidas FS Live) com contadores e botão certo em cada uma, título automático editável no card, Raio-X sem 'Nova análise', subtítulo Sessão ≠ Partida, 'Sem dados de gameplay suficientes'; migration 0053 (origem, título automático, tempo de partida, plataforma informada); fix: botão das pastas fora do lugar; docs: log bloco 62d6e940906/11/2026feat(E49): aba Minha Voz (Minha IA | Minha Voz | Perfil), voz saiu de Minha IA sem duplicar, (!) por motor, custo antes da prévia, velocidade no Slider base, clonagem honesta, Jeito de falar com link para Estilos; e2e v2-voz; docs: log bloco 614d03e9205/11/2026test: conferência da produção (v2-producao, só leitura, credencial por variável); docs: Deploy 1 no log49f435605/11/2026chore(E47): script para definir OWNER_EMAILS no servidor com as contas que já são administradoras (idempotente)1c3aee605/11/2026feat(E48): vitrine de modelos só com elegíveis (conta ativa ou chave própria + preço oficial com data + leitura confirmada), colunas novas e ordem pelo mesmo gabarito, Administração → Modelos (diagnóstico) com a situação de cada provedor, preços revalidados em 05/11 como snapshots novos com cache, Padrões do FS Live refeitos (próximas partidas, padrão ativo, presets medidos, outro modelo filtrável, Desempenho, aviso ao salvar); migration 0052; docs: log bloco 60f95b81505/11/2026test(E47): e2e v2-admin (403 do comum, tema, preços, pro, contas, 7 áreas) com prints; fix: fundo do painel encolhia até a altura da tela em páginas longas, nomes das cores cortados, link da foto passando da borda, aviso dos preços sumindo; docs: log bloco 59, aprovação e estado da E47582075805/11/2026feat(E47): papel de proprietário (OWNER_EMAILS no servidor, requireOwner, 403 explícito em toda mutation admin), tema global versionado (rascunho, prévia, contraste AA, publicar, voltar versão/kit), Preços e margem (markup × margem bruta, exceções, PTAX, meio para cima, versões, simulador; função única usada por cobrança e estimadores), correção de Pro Player por campo sem tocar o oficial, Contas (papel, bloqueio, saldo, extrato), lixeira em Home/Academies/Templates, Academy editável pelo admin, Mental completo, parceria aprovada vira Academy, trilha antes/depois; migration 0051; DEPLOYMENT.md com o endereço certo11e86f005/11/2026docs(E46): log bloco 58 (queda de luz, base, janelas, Perfil, ConnectionFlow, correção da trava de rolagem), aprovação E46, estadoc6a014505/11/2026test(E46): e2e v2-modais (trava de rolagem, foco preso, Esc, foco de volta e rolagem preservada em primeiro acesso, conexão, configuração, padrões, nova pasta, pro, menu do celular; Perfil nas 3 larguras); fix: a trava de rolagem não mexe mais no body (height:100% cortava a página e jogava a rolagem para o topo)282a1b005/11/2026feat(E46): Perfil com a tabela de comandos só da combinação escolhida (seções, resumo confirmados/a verificar, filtro, busca, (!) com patch e data) e Plataforma no Select premium; ConnectionFlow único para PS5/Xbox/PC (método → instruções curtas → permissão → prévia → testar → confirmar), PC com placa HDMI, atraso do jogo dito por caminho; seletor de placa no Select base154254905/11/2026wip(E46): componentes base (Dialog, Select, Switch, Tooltip, Accordion, Tabs, Slider, Status, Metric, Toast) com testes; modais migrando para o Dialog base; inventário V2 C01–C13; prompt da atualização V2b28361805/11/2026docs: E45 cancelada pelo Wellington — main de volta ao fechamento E38–E44 (08a979f), branch e45-fidelidade-prints-cancelada guardada, 08a979f republicado; log bloco 57, aprovação E45 cancelada, prompts para o histórico08a979f04/11/2026docs: fechamento E38–E44 (matriz das 32 referências com prints da produção, evidências dos testes 14.2, aprovações, estado, design system, logs 54–55, prompt para o histórico); aviso da prévia de voz para a conta da equipe; teste de voz na produção3d5bb1b04/11/2026fix(pro-players): fotos públicas da EA liberadas só em img-src; avatar cai para as iniciais também quando a foto falha antes de a página acordar; teste de produção da E443b2149b04/11/2026feat(pro-players): E44 — /pro-players vira o diretório de jogadores profissionais do EA FC pelas fontes oficiais (FC Pro World Rankings publicado em 26/07/2026: 99 jogadores #1→#99; FC Pro 27 Deep Dive: 12 convidados diretos a Londres e 8 vagas diretas no Open 27), filtros com contadores reais, países, busca, modal pelo endereço com 'Não divulgado', revisão do administrador (fusão de nomes); programa de parceiros mudou para /academies; migrations 0049–0050d49384b04/11/2026fix(cobranca): montar agente mental e prévia de voz reservam a carteira antes da chamada e liquidam pelo custo medido; com chave própria a chave do usuário é sempre usada (nunca a da plataforma)9330b3d04/11/2026feat(coach-mental): E43 — Coach mental: agentes mentais (tipo mental) com os 45 chips literais (Erro o tempo da dividida), relato por texto ou microfone do navegador, montagem com IA (uma chamada curta, consumo registrado) e hipóteses Sim/Não uma por vez, vários agentes, usar no FS Live (vira o Mental Coach da E29), configurações da E29 migram como primeiro agente, pré-partida 60s, avaliar partida pelo Raio-X, recuperar meu melhor jogo, histórico, treinos, ajustes