Novidades

O que há de novo

Tudo o que mudou por aqui, da mais recente para a mais antiga. Volte sempre que quiser.

  1. 3.0.0-alpha.115 Vidro vivo Mais recente
    • Construtor da Home por blocos: CRUD de seções, drag-and-drop, templates de layout, changelog de alterações, preview
    • Design system — vidro vivo (glassmorphism): tokens --glass-blur, --glass-tint, classes .glass, .glass--subtle, .glass--strong, .glass--hero
    • Design system — gestos com física: scroll com inércia, bounce e snap-to-nearest via touch e mouse em carrosséis
    • Design system — tela de carregamento com identidade: splash SVG animado com iniciais do site e progress bar
    • Design system — layout revista: grid editorial assimétrico de 12 colunas para seções da home
    • Design system — dark mode com profundidade: 5 camadas de superfície (depth-0 a depth-4) com sombras coloridas
    • Design system — micro-interações com som: efeitos pop, swoosh, ding, tick e error via Web Audio API com respeito a prefers-reduced-motion
    • Design system — perfil como sala de estar: layout radial com parede de badges, galeria de frames e grid de stats
    • Design system — tipografia variável por gênero: pesos e estilos tipográficos adaptativos via data-genre
    • Revisão: Construtor da Home volta a abrir (usava a classe inexistente App\Core\DB); restaurar template e reordenar são tudo ou nada
    • Revisão: estilo Revista, cores próprias e classe CSS da seção aparecem na página inicial
    • Revisão: sons da interface ligam em Configurações › Aparência; splash mostra as iniciais do nome do site
    • Revisão: no celular os carrosséis voltam à rolagem nativa (gestos com física só no arraste com mouse)
    • Revisão: roletas não cobram mais moedas, só pontos
    • Menu do usuário enxuto: Meu perfil, Minha conta, Loja, Minha lista, Meu plano, Carteira de pontos, Nível e XP, Trocar de perfil, Controle parental, Meus tickets, Assistente, Meus pedidos e Desbloqueados, mais "Ver todas as opções"
    • Página Todas as opções (/conta/todas-as-opcoes): tudo o que estava escondido em outros menus, em cartões de até 3 colunas, por categoria, com busca
    • Aparência, Status e Ações da equipe saíram do menu do usuário e foram para o rodapé (Links úteis)
    • Moldura equipada e estilo do nome aparecem para os outros em comentários, chat, fórum, feed e listas de conversa
    • Corrigida a moldura gigante embaixo do avatar na gaveta Minha conta
    • Filmes e séries mostram "Assistir nesta sala" para quem tem sala própria
    • Loja nova: título, barra de saldos, banner Presentes que aproximam, abas Presentes / Pacotes / Itens e presentes em cartões grandes com selo Popular
    • Perfil novo: capa maior, avatar grande com moldura, Nível e Membro desde, ações em ícones, abas Visão geral / Favoritos / Atividade, Continuar assistindo e conquistas em emblemas
    • Roletas: palco escuro com holofote, roda maior, botão de giro abaixo da roda e prêmios em cartões por raridade
    • Seguidores e Seguindo corrigidos: a lista "Seguindo" mostrava a própria pessoa; o perfil volta a ter o contador Seguindo e o de Amigos abre a lista de amigos
    • Reels sempre aleatórios: cada entrada ou recarga sorteia outra ordem (também em Recentes e Seguindo) e o mesmo vídeo nunca abre duas vezes seguidas
    • Roleta com cara de roda real: inclinada em 3D, aro dourado com espessura, reflexo, ponteiro e eixo em relevo e pedestal
    • Loja: vitrine de presentes com destaques em carrossel, categorias em chips, cartões por raridade com brilho e botão Enviar flutuante; barra de saldos em vidro
    • Carteira de pontos e de moedas em cartões estilo banco (chip, brilho e saldo grande) com ações rápidas em círculos
    • Painel > Comunicação > Mensagens automáticas: mensagens que saem sozinhas quando a pessoa cria a conta, assina um plano pago ou fica dias sem entrar, com atraso, público, finalidade, canais (notificação, chat, e-mail), variáveis, modelos prontos, prévia e teste em si mesmo
    • Painel > Comunicação > Conexões automáticas: perfis que toda conta nova já segue, que a seguem de volta, de quem já é amiga ou cujos reels já segue, com opção de aplicar a quem já tem conta
    • Traduções: todos os textos novos e os que faltavam em inglês e espanhol (10.857 frases em cada idioma, nenhuma faltando), inclusive mensagens do assistente, da IA, do fórum e da página inicial
    • Assistente de suporte conversa muito mais: quiz de cinema, pedra-papel-tesoura, biscoito da sorte, sorteio de número, ajuda para escolher filme pelo humor, boa noite, dia cansativo, alegria, chateação, doença e um menu com tudo o que ele faz
    • Assistente de suporte com visual novo: avatar, horário nas mensagens, "digitando…", sugestões em botões, contador de caracteres, conversa guardada por 2 horas e botão para recomeçar
    • Termos de uso, Política de privacidade e Política de reembolso bem mais completos, em português, inglês e espanhol
    • IA mais rápida: os provedores grátis são chamados ao mesmo tempo e vale o primeiro que responder; modo rápido com histórico menor; no Painel > IA dá para escolher Groq, Gemini, Cerebras ou OpenRouter (chave grátis) e a chave fica criptografada
    • Página da IA nova: lista de conversas com busca, renomear e apagar, sugestões de início, respostas formatadas com botão copiar e continuar qualquer conversa a partir do histórico
    • Página inicial com visual mais caprichado, sem nenhum bloco novo: destaque em cartão com borda fina no celular, selo do destaque em pílula, dados separados por pontos, botão Assistir com brilho, títulos das fileiras com marca na cor do tema, "Ver tudo" em pílula, setas em vidro, pôsteres com brilho ao passar o mouse e números do Top 10 preenchidos
    • Fórum com botão Citar, contador de caracteres e atalho para responder; mensagens privadas, bate-papo e salas com visual novo
    • Segurança: dados dentro de <script> não quebram mais a página (stories com legenda maliciosa), botões do painel sem JavaScript embutido bloqueado pela CSP, limite de 20 mensagens por minuto na IA e endereço do provedor só em https
    • Traduções: 413 textos novos do painel (listas vazias, estados, botões, selos) traduzidos para inglês e espanhol — nenhum ficou faltando
    • Painel de idiomas: itens do menu do painel aparecem como editáveis (não mais 'Só leitura'); dá para salvar uma tradução sua para cada um
    • Termos de uso ganharam 4 seções novas (acessibilidade, perfis Kids e verificação de idade, comunidade e segurança, pagamentos recorrentes)
    • Política de privacidade ganhou 3 seções novas (portabilidade e exportação, incidentes de segurança, publicidade e patrocínios)
    • Política de reembolso ganhou 3 seções novas (falha técnica, presentes e transferências, promoções e cupons)
    • Página de entrar e criar conta com visual novo: fundo com brilho, cartão com borda viva, abas em pílula, campos com foco destacado e botão principal com brilho
    • Menu lateral do site com barra lateral indicando o item ativo, cartão do usuário em gradiente e seções separadas por linha tracejada
    • Menu do usuário com acabamento em vidro, hover suave na cor do tema e ícones que ganham cor no hover
    • Menu lateral do painel com gradiente sutil, ícones das seções em tile e item ativo com barrinha e marcador na cor da marca
    • Dashboard com KPIs mais firmes (hover eleva o cartão), títulos com marquinha na cor da marca e chip 'Olá' com brilho
    • Página 'O que há de novo' em /novidades: linha do tempo com cartões por versão, selo 'Novo' no rodapé quando saiu versão nova e cookie para lembrar o que você já viu
    • Assistente de suporte com 9 situações novas de conversa: aniversário, saudade de você, estou com fome, não consigo dormir, voltei do treino, vou viajar, está chovendo, tomando café e estou apaixonado
    • Feed social com cartões em vidro mais firmes, barra da equipe em pílula e links que deslizam ao passar o mouse
    • Página de jogos com destaque mais firme na cor da marca, filtros em pílula e cartões de jogo que sobem no hover
    • Mensagens privadas: caixa de escrever começa pequena (48px) e cresce com o texto até 160px, deixando mais espaço para a lista de conversas
    • Mensagens privadas: botão 'Fixar bolha' no cabeçalho da conversa cria uma bolha flutuante tipo Messenger que acompanha o usuário por todas as páginas, pode ser arrastada e removida com × (até 6 bolhas, posição e lista guardadas no navegador)
    • Dois jogos novos de Arcade: Par ou ímpar (escolha par ou ímpar e um número de 0 a 5, melhor de 3) e Duelo de dados (aposte mais baixo, igual ou mais alto que 7 antes de rolar dois dados, melhor de 3)
    • Rodapé: no celular os Links úteis ficam lado a lado em duas colunas em vez de empilhados
    • Página inicial ganhou a faixa 'Últimos reels adicionados' no fim, com o botão 'Ver todos'
    • Cada reel da faixa toca uma prévia muda de 5 segundos (ajustável em Painel › Reels, entre 2 e 30 segundos); o som fica desligado nessa faixa (quem quiser som abre o reel)
    • A faixa pode ser desligada pelo administrador em Painel › Reels
    • Trailer automático do destaque mais firme: começa mais rápido, troca de slide a cada 60 s e passa para o próximo quando um trailer trava em vez de ficar preso
    • Página de entrar e criar conta mais polida: cartão com brilho atrás, borda com faixa luminosa, animação suave de entrada, reflexo diagonal no botão principal e separador discreto para blocos auxiliares
    • Troca de página agora espera o CSS novo carregar antes de mostrar o conteúdo: fim do flash de página sem estilo entre uma e outra
    • Bolhas flutuantes de conversa mostram a foto da pessoa dentro de um alvéolo redondo e a moldura equipada por cima, como no feed e no fórum
    • Termos de uso ganharam 8 seções novas (salas e assistir junto, transmissões ao vivo, jogos e giros, reels e stories, loja e economia virtual, confirmações automáticas, IA e integridade do histórico)
    • Política de privacidade ganhou 6 seções novas (dados de pagamento e carteira interna, sessões e verificação em dois passos, buscas e sugestões, tempos de uso, dados sensíveis e transparência de denúncias)
    • Política de reembolso ganhou 8 seções novas (descumprimento de prazos, dupla cobrança do processador, renovação com valor diferente, saída do plano família, teste grátis convertido sem aviso, giros/pontos não usados, taxas e impostos, reembolso em moeda interna)
    • Entrar e criar conta ainda mais polidos: cabeçalho em aurora na borda, título com marquinha na cor da marca e barra de progresso leve enquanto envia o formulário
    • Loja com cabeçalho em gradiente radial, abas em pílula com indicador, barra de saldos em chip e cartões de presente com elevação em 3D no hover
    • Carteira com cartões estilo banco (chip dourado, padrão de linhas discretas, faixas de luz) e lista de movimentos com separador pontilhado
    • Mensagens privadas: cartão da conversa ocupa quase toda a altura disponível e o corpo das mensagens ganhou mais ar, deixando bem mais texto visível de uma vez
    • Menu lateral: cabeçalho do usuário com gradiente, chip Nível com brilho, item ativo com cartão à esquerda e ícones em alvéolo colorido
    • Assistente de suporte com 10 diálogos novos: bom dia, boa tarde, obrigado, me conta uma piada, dica, curiosidade, me surpreenda, barulho em casa, frio e calor
    • Três jogos novos no Arcade: Cara ou coroa, Alto ou baixo (carta 1 a 13) e Copo da sorte (três copos com uma moeda) — melhor de três
    • Ações de "assistir junto" bem mais visíveis sobre o vídeo: selo com fundo mais escuro, borda clara e anel pulsante no "ao vivo"; barra de reações com borda, sombra e botões maiores (40px). Esses controles agora só esmaecem suavemente depois de 3 s parados e nunca somem de vez
    • Página de entrar e criar conta com cara de serviço: logotipo em alvéolo colorido, fita de "filme" decorativa no topo da lateral, faixa com os números reais do catálogo (filmes e séries publicados) e marcas de confiança no rodapé do painel (SSL, LGPD, pagamento seguro)
  2. 3.0.0-alpha.114 Todo mundo junto
    • Assistir junto por cima do vídeo: no player da sala aparecem o chat da sala (botão de balão ou tecla T, com contador de mensagens não lidas) e uma barra de reações. Cada emoji sobe flutuando na tela de todo mundo da sessão (até 8 a cada 10 segundos por pessoa). No celular em pé o chat vira uma folha presa embaixo da tela, para não cobrir o vídeo pequeno; em tela cheia volta para cima do vídeo.
    • Convite por link: o dono da sala tem o botão "Convidar" no chat do player. Quem abre o link entra na sala (mesmo fechada ou paga, vale como convite do dono, respeitando banidos e limite de membros) e cai direto no player sincronizado. Quem não tem conta vai para o login e volta para a sessão. O link morre quando a sessão é encerrada.
    • Estreias ao vivo (Catálogo › Estreias agendadas): a equipe cola o link do filme ou episódio e marca dia e hora. A página /ao-vivo/estreias/ID tem contagem regressiva pelo relógio do servidor, "Me avise" (notificação 15 minutos antes, uma vez só), sala de espera com chat ao vivo e quantas pessoas estão esperando. Na hora, "Entrar na estreia" abre o player ao vivo: todo mundo no mesmo ponto do vídeo, com chat e reações por cima da tela; quem chega atrasado entra no ponto em que a estreia está. A lista /ao-vivo/estreias, a faixa na página do título e um atalho no calendário de lançamentos levam até lá. Chat passa pelo filtro de palavras; fechado no perfil Kids.
    • Legendas para surdos (CC) e áudio descrição: nova opção "Para surdos (CC)" nas legendas e "Áudio descrição" nas fontes de vídeo. No player, a legenda aparece como "Português (CC)" e a áudio descrição vira uma opção própria no menu de áudio (nunca toca sozinha). Filmes e séries ganham os selos CC e Áudio descrição na página e o filtro "Acessibilidade" nas listagens (CC, áudio descrição ou qualquer um dos dois; séries contam quando algum episódio tem).
    • Miniatura da cena na barra do player: ao passar o mouse ou arrastar a barra, aparece a imagem daquele ponto em cima do tempo. Usa o arquivo de miniaturas da fonte (WebVTT com sprite, padrão do ffmpeg/JW Player/Video.js, campo novo no cadastro da fonte) ou, em MP4 sem o arquivo, a imagem tirada do próprio vídeo. Liga e desliga em Configurações › Player, junto com reações ao vivo e estreias.
    • Tarefa automática "Estreias ao vivo" (a cada 5 minutos): avisos de estreia e limpeza das reações (1 dia) e do chat das estreias (30 dias).
  3. 3.0.0-alpha.113 Porta de entrada
    • Moderação automática de comentários: além do filtro de palavras, segura spam (3 ou mais links, texto todo em maiúsculas, a mesma letra ou palavra repetida sem parar, 5 ou mais menções) e os primeiros comentários de contas novas; link de conta nova sempre passa pela fila. Frases de spoiler ("no final ele morre", "o assassino é") escondem o comentário atrás do aviso sozinhas, sem segurar. O motivo aparece embaixo de "Pendente" na fila do painel. Equipe nunca é segurada. Tudo configurável em Configurações › Comunidade › Comentários dos títulos (ligar/desligar, quantos dias a conta é nova, quantos comentários dela passam pela fila).
    • Central de ajuda com respostas automáticas: enquanto a pessoa escreve o assunto e a mensagem do ticket, aparecem até 3 soluções do assistente ("Talvez isto resolva antes de abrir o ticket"). "Resolveu" conta como resposta útil e a pessoa nem precisa abrir o ticket; "Não é isso" some com a sugestão. O que foi digitado e não achou resposta entra em Suporte › Assistente › Perguntas sem resposta (com a marca [ticket]).
    • Página de vendas (/assine): parede com as capas do catálogo, preço a partir de, botão de teste grátis, quantos filmes, séries e episódios existem, os 10 mais assistidos, planos lado a lado (qualidade, telas, aparelhos, catálogo, família, teste grátis e pontos; no celular vira um cartão por plano) e perguntas frequentes da equipe. Quem não tem conta cria e cai direto no pagamento do plano escolhido. A faixa de visitante do início ganhou o link "Ver planos e catálogo".
    • Conta nova já nasce com o perfil principal (o primeiro nome da pessoa) na tela "Quem está assistindo?": antes a conta recém-criada via só "Adicionar perfil".
    • Tema automático por horário: novo modo "Pelo horário" (claro das 6h às 18h, escuro no resto), no rodapé e em Minha conta › Perfil. Aplica antes da página aparecer, sem piscar, e troca sozinho na virada da hora com a página aberta.
    • Atalho "Continuar de onde parei" ao segurar o ícone do app instalado, mais Minha lista, Buscar e Surpreenda-me. /continuar abre o último título no ponto em que parou (ou o histórico, se não houver nada).
  4. 3.0.0-alpha.112 Seu ano
    • SEO dos títulos e das pessoas: a página de ator e diretor agora tem o nome no endereço (/pessoa/12-fernanda-montenegro; o endereço antigo redireciona), foto grande para compartilhar e dados estruturados com função, biografia, link do TMDB e filmografia. Filmes e séries ganharam classificação indicativa, número de temporadas e episódios, trailer, ação "assistir", atores e diretores com link para a página deles e a trilha Início › Filmes › título. O sitemap passou a incluir as pessoas e a página de coleções, e o endereço das listas no sitemap foi corrigido (dava erro).
    • Capa certa no WhatsApp e nas redes: a prévia do link leva largura, altura e tipo da imagem, endereço https e o idioma da página; listas usam a capa do primeiro título e a retrospectiva usa a imagem do título mais visto.
    • Título, sinopse e capa em inglês e espanhol pelo TMDB: para cada filme e série com código do TMDB, o site busca os dados oficiais em cada idioma ativo (e a capa com o título escrito nesse idioma). Entram como revisados, nunca substituem o que a equipe editou e são conferidos de novo a cada 30 dias. Tarefa automática (25 por hora) e botão "Buscar no TMDB agora" em Idiomas › Traduzir conteúdo. Com o site em inglês ou espanhol, cartões, destaque do início e página do título mostram título, sinopse e capa traduzidos.
    • Busca pela descrição: "filme do cara preso no espaço" acha o título pela sinopse. Palavras que não ajudam saem da conta, cada palavra vale pelo começo (preso, presa, presos) e o resultado vem do mais parecido para o menos, numa seção "Pelo que você descreveu". A busca aceita frases de até 160 caracteres e não registra "sem resultado" quando a descrição acha algo.
    • Busca por voz: botão de microfone no campo de busca (aparece só em navegadores com reconhecimento de fala, como Chrome, Edge e Safari). Fala o nome ou descreve, e a busca sai sozinha no idioma do site. O cabeçalho de segurança passou a liberar o microfone para o próprio site.
    • Conquistas de maratona: Temporada em uma semana, Maratonista de temporadas (5), Fã de carteirinha (10 filmes do mesmo gênero), 7 e 30 dias seguidos assistindo. Só conta o que foi assistido no player: marcar temporada como vista não vale conquista.
    • Retrospectiva do ano (Minha conta › Retrospectiva): horas de tela, títulos, os 5 mais vistos com capa, gênero do ano, o ano mês a mês com o mês mais animado, maior sequência de dias, dias com sessão, horário preferido e o primeiro título do ano. Cartão para compartilhar desenhado nas cores do tema, para baixar como imagem ou mandar pelo celular, e link público opcional que mostra só números e títulos. Em dezembro chega o aviso "Sua retrospectiva chegou" para quem assistiu pelo menos 1 hora. Fechada no perfil Kids.
  5. 3.0.0-alpha.111 Descoberta
    • Listas por link: uma lista privada pode ganhar um link secreto (Criar link / Desligar link). Quem tiver o link vê a lista sem ela ficar pública; desligar invalida o endereço na hora. Quem abre a lista de outra pessoa (pública ou pelo link) pode "Guardar nas minhas listas": vira uma cópia privada e editável.
    • Coleções oficiais (Site › Coleções oficiais no painel): a equipe cria seleções ("Para ver em família", "Clássicos dos anos 90"), adiciona títulos pela busca, define a ordem e marca quais aparecem como fileira na página inicial (entram depois da segunda fileira). Também dá para oficializar uma lista pública de um usuário. No site, a nova página /colecoes mostra as coleções com mosaico das capas; menu lateral ganhou Coleções e Surpreenda-me.
    • Notas dos amigos na página do filme e da série: "Ana deu 9", "Ana e Leo deram 9 e 7" ou "Ana, Leo e mais 3 amigos avaliaram", com a média entre os amigos e o comentário de cada um. Entram só amigos aceitos, notas não ocultadas pela moderação e quem deixa visível a nova opção de privacidade "Notas que você dá aos títulos" (começa em Somente amigos).
    • Marcar temporada inteira como vista (ou desmarcar) na página da série, com "Desfazer" por 15 minutos que devolve cada episódio exatamente como estava. Não conta visualização nem dá XP.
    • Surpreenda-me por gênero e duração: /surpreenda-me agora abre a escolha (filme, série ou tanto faz; Rapidinho, Uma sessão ou Programa longo; gênero) e sorteia um título que tenha vídeo e caiba no perfil. Na página do título sorteado aparece "Sorteado para você" com "Sortear outro" (mesmos filtros) e "Mudar filtros".
    • Votação nos pedidos: já existia completa (voto +1, fila pública ordenada por votos com posição, aviso a quem votou quando o título entra no catálogo); conferida e marcada como feita.
  6. 3.0.0-alpha.110 Família em dia
    • "Não perturbe" dos perfis: em Controle parental, cada perfil pode ter um horário para assistir (ex.: das 07:00 às 21:00, ou virando a noite) e um tempo máximo por dia. Fora do horário, o perfil só vê a tela "Hora de descansar", com a faixa do dia mostrando quando está liberado e o botão de trocar de perfil (que continua pedindo PIN ou senha). Com o tempo do dia acabado, as páginas de assistir mostram "O tempo de hoje acabou" e o resto do site continua aberto.
    • No player, o tempo conta pelo relógio do servidor entre os avisos de progresso (pausa não conta, no máximo 2 minutos por aviso); faltando 5 minutos aparece o aviso "Faltam N minutos do tempo de hoje" e, quando acaba ou chega o fim do horário, o vídeo para com a explicação.
    • Resumo da semana (Controle parental › Resumo da semana): por perfil, minutos por dia com a linha do limite (dias acima ficam em vermelho), o que mais assistiu e quantas vezes tentou assistir fora do horário ou depois do tempo. Últimos 7 dias, semana passada ou anterior.
    • Resumo por e-mail toda segunda para quem é responsável pela conta (uma vez por semana, só perfis com a opção ligada e com alguma atividade). Prévia em Configurações › E-mail › modelos. Liga e desliga em parental.weekly_report_enabled.
    • Perfis com cor e idioma: 8 cores para o anel do avatar (escolha de perfil, cartões e resumo) e idioma próprio: ao entrar no perfil, o site muda para o idioma dele e o player liga sozinho a legenda nesse idioma (se o título tiver). Outro perfil volta ao idioma da conta.
    • Cartões de Controle parental mostram "Hoje: X de Y min" e o horário do perfil ("descansando agora" fora dele).
  7. 3.0.0-alpha.109 Receita
    • Teste grátis: cada plano pago ganhou o campo "Dias de teste grátis". Quem nunca assinou vê o selo nos planos e o botão "Começar teste grátis" no checkout, sem pagar nada. Um teste por conta; 2 dias antes de acabar chega aviso no site e e-mail com o botão de assinar, e nada é cobrado sozinho. Pagou o plano: os dias pagos somam ao fim do teste.
    • Cupom pelo link: /planos/{plano}/assinar?cupom=CODIGO já abre com o cupom preenchido (usado nos e-mails de volta e em campanhas).
    • Renovação em 1 toque: o botão dos e-mails de vencimento abre /conta/assinatura/renovar, que cria o Pix do mesmo plano (ou reaproveita o da última hora) e leva direto ao QR e ao copia e cola.
    • Oferta de volta: 7 dias (ajustável) depois de uma assinatura paga cancelar ou vencer sem outra ativa, a pessoa recebe um cupom só dela, de uso único, com 30% (ajustável) no plano que tinha, válido por 14 dias. Troca de plano não conta como saída. O e-mail respeita quem não quer receber promoções. Liga e desliga em billing.winback_enabled.
    • Relatório financeiro (Monetização › Relatório financeiro): receita recorrente (MRR), assinantes pagantes, ticket médio, cancelamentos dos últimos 30 dias, quantos testes grátis viraram assinatura e cupons usados; receita, pagamentos, assinaturas novas, testes, cancelamentos, descontos e reembolsos mês a mês (6, 12 ou 24 meses), divisão por plano e por forma de pagamento e planilha para baixar.
    • Limite de telas ao mesmo tempo: o player pede uma tela ao começar a tocar e avisa a cada 30 segundos. Passou do número de telas do plano, aparece quem está assistindo em cada aparelho e o botão "Parar lá e assistir aqui"; o outro aparelho para e mostra o aviso. Tela sem aviso há 90 segundos fica livre. Equipe não tem limite; desliga em billing.screens_enforced.
    • Meus aparelhos (Minha conta › Meus aparelhos): aparelhos conectados e telas tocando contra o limite do plano, o que está passando em cada aparelho com botão para parar, desconectar um aparelho ou sair de todos os outros (também para o que estiver tocando neles). Entrar por um aparelho novo agora também manda e-mail, com atalhos para Meus aparelhos e "não fui eu".
    • Plano família (Minha conta › Família): planos com vagas de família (novo campo no plano) deixam o dono convidar pessoas pelo nome de usuário ou e-mail. Quem aceita assiste com o plano do dono na própria conta, com lista, histórico e perfis separados, e pode sair quando quiser. Acabaram as vagas? O dono compra uma vaga extra (preço por membro extra no plano), que vale até o fim do ciclo dele e só então o convite sai. Convite vale 7 dias e o link é guardado só em hash. Teste grátis não é compartilhado; quem tem assinatura própria continua com a dela. Pagamentos de vaga aparecem no painel com o filtro "Vaga na família", e o reembolso encerra a vaga.
  8. 3.0.0-alpha.108 Operação segura
    • Aviso antes de publicar: a página de cada filme e série no painel ganhou o quadro "Quem vai ver", que diz se o título aparece e toca para todo o público, só para parte dele ou para ninguém, e por quê: não publicado, desativado, publicação agendada, sem fonte de vídeo (filme) ou sem episódio publicado com fonte (série), classificação que esconde de perfis Kids ou com limite menor (com quantos perfis ficam de fora), licença vencida, sem pôster, sem imagem de fundo ou sem sinopse. Ao salvar um título publicado que não vai tocar, aparece um aviso na hora.
    • Listas de filmes e séries no painel com a aba "Sem vídeo" (publicados que não tocam) e o início do painel com o alerta "Publicados sem vídeo" levando direto a ela.
    • Velocidade e erros (Sistema › Velocidade e erros): o navegador de uma amostra das visitas (25% por padrão, ajustável) mede quanto o conteúdo principal leva para aparecer, quanto a página demora para responder a um toque, quanto ela pula enquanto carrega e quanto o servidor demora, separado por celular e computador, com a classificação do Google (bom, pode melhorar, ruim). Mostra as páginas mais lentas e os erros de JavaScript que os visitantes tiveram, com botão para marcar como resolvido. Nada identifica a pessoa: só a página (sem parâmetros e com números trocados), o tipo de aparelho e os números.
    • Banco de dados (Sistema › Banco de dados): tamanho do banco, crescimento desde a semana passada, as maiores tabelas e a limpeza semanal automática de dados antigos que não fazem falta (medidas de velocidade, erros resolvidos, filas já enviadas, buscas sem resultado, conversas do assistente, visualizações de stories e reels, atividade e notificações lidas antigas). Pagamentos, transações, auditoria, consentimentos e conteúdo das pessoas nunca são apagados. Apaga em lotes, com limite de tempo, e registra cada execução. Botão "Limpar agora" e interruptor para desligar.
    • Atualização sem sair do ar: enquanto o painel troca os arquivos de uma versão nova, os visitantes veem "Voltamos em instantes" (a página tenta de novo sozinha) em vez de erros de código pela metade. Ao terminar, o site testa a própria página inicial; se ela quebrar com o código novo, os arquivos anteriores voltam sozinhos e o painel avisa. Se a atualização morrer no meio, o site volta a abrir sozinho em no máximo 10 minutos.
  9. 3.0.0-alpha.107 Rolagem leve
    • Rolagem travando no celular: a página fazia trabalho sem parar mesmo parada, refazendo o estilo de todos os elementos 60 vezes por segundo. Causas corrigidas: dezenas de pôsteres fora da tela com brilho de carregamento infinito; a barra de progresso do destaque animando a largura (refazia o layout a cada quadro); o sino e o contador de notificações balançando para sempre; o brilho dos comentários rodando desde a abertura da página, antes mesmo de carregar; o brilho da barra de XP animando a posição.
    • Fundo da página com "background-attachment: fixed" removido: no celular ele obriga a redesenhar a tela inteira quando a barra de endereço aparece ao subir a página, que era o "subir mais devagar".
    • Em tela de toque, o desfoque de fundo (topo, barra de baixo, selos dos cartões e botões sobre imagens) foi trocado por fundos sólidos: o desfoque custa caro para a placa de vídeo do celular a cada quadro da rolagem. No computador nada muda.
    • Medido em celular simulado (processador 4 vezes mais lento): na página inicial, o trabalho durante a rolagem caiu de 5,9 s para 0,9 s, os recálculos de layout de 204 para 0 e os quadros atrasados de 7 para 0. Parada, a página passou de 60 recálculos de estilo por segundo para quase nenhum.
    • Janela do trailer redesenhada e com estilo em todas as páginas (antes só existia no player, então no filme e na série aparecia um quadro branco pequeno e botões soltos): vídeo 16:9 com a capa do trailer e indicador de carregamento, nome do vídeo e "Abrir no YouTube" embaixo (útil quando o dono do vídeo não deixa incorporar), e os outros vídeos numa faixa com miniatura que rola de lado, com o atual destacado.
  10. 3.0.0-alpha.106 Correção de perfis
    • Formulário de perfis: perfil novo começa em 18 anos, e ao editar a classificação salva aparece marcada (antes 10, 12, 14, 16 e 18 nunca apareciam selecionados e qualquer edição gravava "Livre"). Nova explicação embaixo do campo.
    • Início: quando há títulos publicados mas nenhum é liberado para o perfil em uso, a página diz qual é o limite do perfil e oferece "Trocar de perfil", em vez de "Nada em cartaz por aqui".
  11. 3.0.0-alpha.105 Experiência
    • Pix com confirmação automática (Monetização › Formas de pagamento › "Confirmação automática (Mercado Pago)"): com o token do Mercado Pago, cada compra gera um Pix próprio no Mercado Pago (QR Code e copia e cola com o valor e validade de 30 minutos). A página do pagamento acompanha sozinha e libera o plano assim que o banco confirma, sem ninguém conferir extrato. O site sempre consulta o Mercado Pago e confere valor e referência antes de liberar. Sem o token, ou se o Mercado Pago falhar, volta para o Pix manual. Configure também o webhook do Mercado Pago apontando para /webhooks/mercadopago.
    • Primeiro acesso guiado: depois do cadastro (e da escolha do perfil), a pessoa marca pelo menos 3 gêneros e alguns títulos de que gosta. Isso alimenta a nova fileira "Para você" no início e a Minha Lista. Dá para refazer em Minha conta › Meus gostos. Pode ser desligado em Configurações › Geral › "Primeiro acesso guiado".
    • Busca instantânea: resultados aparecem enquanto você digita, já com pessoas (atores, diretores) e gêneros, setas do teclado para escolher e as pesquisas recentes guardadas no navegador. Sem resultados, a página sugere "Você quis dizer ...?" (aceita erro de digitação e falta de acento: "herdera" acha "A Herdeira").
    • Velocidade: imagens enviadas ao site passam a ser entregues em WebP (e numa miniatura de 300 px nas listas) quando as cópias existem. Para gerar as cópias das imagens antigas: php scripts/gerar-versoes-imagens.php. Na página inicial de teste, as imagens caíram de 613 KB para 252 KB. CSS e JS com versão ficam em cache por 1 ano no navegador e o HTML sai comprimido (brotli ou gzip): a página inicial caiu de 274 KB para 16 KB na rede. Para recompilar o Tailwind sem npm: python3 scripts/tailwind-sem-npm.py.
    • Traduções: inglês e espanhol completos para tudo que entrou desde a alpha.103 (formas de pagamento, Pix, Google Analytics, arquivos do site, primeiro acesso, busca, perfil Kids, painel, e-mails, "Restam X min", "Próximo episódio").
    • Perfil Kids com visual próprio: céu claro de dia e noite estrelada no escuro, uma faixa colorida embaixo do topo, capas maiores e mais redondas, menos texto (sem notas de pontos, preço e metadados nos cartões) e menu só com Início, Filmes e Séries. Ficam fechados no Kids: bate-papo, mensagens, salas, clubes, comunidade, fórum, reels, stories, lives, comentários, perfis de outras pessoas, loja, compras, carteira, configurações da conta e controle parental. Para sair para um perfil de adulto é preciso o PIN desse perfil ou a senha da conta (5 tentativas a cada 5 minutos). Corrigido também: escolher um perfil de adulto em "Quem está assistindo?" não liberava os títulos da idade dele.
    • E-mails com a cara do site: novo modelo com faixa escura e o nome (ou logo) do site, botão na cor de destaque, quadro de detalhes e capa. Boas-vindas e confirmação de e-mail viraram um e-mail só no cadastro; recibo por e-mail quando o pagamento é aprovado; recuperação de senha reescrita; aviso de episódio novo por e-mail para quem ligar "Episódio novo" em Notificações › Por e-mail (enviado em lotes por uma tarefa agendada, sem travar o painel). O aviso no site e o push do navegador para quem acompanha a série continuam saindo na hora. Em Configurações › E-mail há a prévia de cada modelo.
    • Player mais acessível: botão de atalhos do teclado na barra (teclas desenhadas e janela que devolve o foco ao fechar), estilo da legenda com tamanho, cor e fundo (lembrado no navegador, com amostra), "Pular abertura sozinho" por série (uma vez por episódio, desligado para quem só acompanha uma sala), tecla S para pular a abertura, legenda acima da barra de controles, e para leitores de tela: rótulos de play, som e tela cheia que acompanham o estado, barra de progresso que fala o tempo ("1:23 de 45:00") e botão de legenda que diz se está ligado.
    • Pacote: o ZIP não leva mais o arquivo storage/logs/.salt. Cada instalação cria o seu na primeira gravação de log (antes todas usavam o mesmo, o que deixava previsível o nome dos arquivos de log).
  12. 3.0.0-alpha.104 Design Essencial
    • Página do filme e da série: botão Trailer ao lado do Assistir (o antigo botão de trailer não abria nada, por falta do script), quanto falta para terminar o filme ("44% assistido · restam 1 h 2 min"), véu lateral para o texto ficar legível sobre qualquer imagem e pôster com borda de luz. Na série, os episódios vêm logo depois do topo, com barra de progresso da temporada ("2 de 6 assistidos" ou "Temporada completa"), faixa colorida no próximo episódio e números mais apagados nos já vistos.
    • "Sobre o filme/série" não repete mais a sinopse cortada ("...quem fic"). O quadro de Detalhes ganhou classificação e gêneros, em linhas com divisória. "Assista junto" foi para o fim da página, mais discreto.
    • Player: no celular, "Continuar de onde parou?" virou uma faixa no pé do vídeo (antes o cartão era maior que o player e cobria a barra de cima). Em telas estreitas a lista de episódios aparece antes dos comentários.
    • Celular: ações do título (Minha lista, Biblioteca, Favoritar, Avaliar, Compartilhar) numa faixa que rola de lado, sem rótulos encavalados. O banner de cookies virou uma faixa compacta com os três botões numa linha (antes cobria metade da tela, inclusive a caixa do Pix). O Pix copia e cola ocupa a largura toda. Corrigida uma linha clara sob o topo nas páginas com imagem de destaque. Nenhuma página do site rola para o lado em 390 px (conferido em mais de 75 páginas do site).
    • Sistema de estilos unificado: novo themes/default/assets/css/ds/tokens.css é a fonte única de medidas, formas, tipos, paletas de apoio, movimento, espaços (--sp-1 a --sp-9), durações e camadas. A foundation e a camada de cor só usam. No painel, a paleta de tons fica em ds/console.css e as páginas novas pararam de repetir cores. Removidos nomes de animação repetidos. Guia em docs/DESIGN_SYSTEM.md. Conferido por comparação de imagens: a mudança não alterou nenhum pixel nas 45 telas testadas.
    • Início e catálogo: ao passar o mouse, o cartão mostra título, nota, ano, duração, classificação e duas linhas da sinopse, entrando em cascata. "Continuar assistindo" mostra quanto falta ("Restam 46 min") com barra mais visível. Pôster que não carrega vira um cartão com o título em vez do quadro cinza vazio.
    • Estados vazios com um visual só (componente empty-state e os vazios antigos de ranking de salas, roletas, TV e economia): borda tracejada suave, luz da cor do tema e ícone colorido. O componente aceita cor (tone). Páginas de erro com ícone e cor por tipo (bloqueio, espera, falha) e "Tentar de novo" para erros temporários, com link para a página de status.
    • Revisão de Reino, Reels, Torneios e Salas nos temas: o mapa do Reino deixou de ter uma faixa vazia antes da mochila no computador; sem reels, o aviso não fica mais colado nas bordas da tela.
    • Correção: /downloads dava erro (consulta usava uma coluna de pôster que não existe e misturava filme e série com o mesmo número).
  13. 3.0.0-alpha.103 Pix, Pagamentos, Analytics e Arquivos do Site
    • Formas de pagamento (Monetização › Formas de pagamento): nova página que reúne Pix, transferência, Mercado Pago, Stripe e PayPal, cada um com interruptor, situação "No checkout" e botão "Testar conexão" (consulta só de leitura, nada é cobrado). A antiga aba Configurações › Pagamentos leva para lá.
    • Pix com QR Code e copia e cola: informe o tipo da chave (CPF, CNPJ, e-mail, celular ou aleatória), quem recebe e a cidade. A chave é conferida antes de salvar (dígitos de CPF/CNPJ, DDD do celular) e o painel mostra a prévia do QR. Na página do pagamento a pessoa vê o QR Code com o valor e o código do pedido, os passos e o botão Copiar. O código segue o padrão BR Code do Banco Central (conferido com o exemplo oficial).
    • Transferência bancária separada do Pix, com nome e dados próprios no checkout.
    • Stripe Checkout (cartão e carteiras; Pix e boleto se ativados na conta Stripe): o pagamento acontece no ambiente do Stripe, os dados do cartão não passam pelo site. Webhook em /webhooks/stripe com assinatura conferida (HMAC-SHA256, tolerância de 5 minutos contra reenvio) e limite de tentativas.
    • PayPal Checkout (Orders v2), com ambiente de teste (sandbox) ou produção: a pessoa aprova no PayPal e o pagamento é capturado na volta ao site.
    • Segurança dos pagamentos: nenhum gateway libera nada só pelo aviso recebido. O site sempre consulta o gateway e confere valor (em centavos), moeda e código do pedido; qualquer divergência fica registrada e nada é liberado. Mudar a chave Pix, o recebedor, as credenciais ou ligar/desligar uma forma pede a senha atual (e o código de 2 etapas, se ativo) e fica no log de auditoria, então uma sessão de administrador roubada não basta para desviar pagamentos. Chaves e segredos ficam criptografados e nunca voltam para a tela. Chamadas aos gateways só por HTTPS, sem seguir redirecionamentos.
    • Google Analytics 4 (Configurações › Google Analytics): informe o ID de medição (G-...). O script do Google só é baixado depois que o visitante aceita cookies de estatística e para (apagando os cookies _ga) se ele retirar o consentimento. Sem Google Signals, sem personalização de anúncios, endereço enviado sem parâmetros (tokens e buscas não vazam), áreas privadas (conta, login, checkout, pagamento, mensagens) nunca medidas, equipe do painel fora das estatísticas por padrão, cada troca de página conta como visualização. A política de segurança (CSP) só libera o Google quando a medição está ligada e o banner de cookies avisa que inclui o Google Analytics.
    • Arquivos do site (Sistema › Arquivos do site): robots.txt com bloqueio de 20 robôs de IA (GPTBot, ClaudeBot, CCBot, Google-Extended, PerplexityBot...), intervalo entre visitas e regras extras validadas linha a linha; ads.txt e app-ads.txt (AdSense e outras redes) validados no formato IAB; security.txt em /.well-known (RFC 9116, validade renovada sozinha, /security.txt redireciona); humans.txt e llms.txt (resumo do site para assistentes de IA) com texto automático ou personalizado. Cada arquivo tem prévia ao lado e link para abrir. Entregues como texto puro, com CSP sandbox.
    • Mais segurança contra vazamento: o log do sistema esconde senhas, tokens, segredos, cookies, assinaturas e credenciais com formato conhecido (Stripe, Mercado Pago, Bearer, JWT e senha em endereço) antes de gravar. Áreas privadas (painel, conta, login, checkout, pagamento) saem com X-Robots-Tag noindex e sem cache compartilhado, mesmo para visitantes. Novos cabeçalhos X-Permitted-Cross-Domain-Policies e Origin-Agent-Cluster, e Permissions-Policy mais fechada (sem tópicos de anúncio, USB serial, HID e Bluetooth).
    • Animações de resposta: blocos que abrem ("Não achou?", perguntas frequentes) descem no lugar com a seta girando, abas trocam com entrada suave, campo com erro treme uma vez e a mensagem aparece, ícone do aviso dá um pulo, área carregando ganha um brilho, contadores de notificação e mensagens pulam quando aumentam, formas de pagamento destacam a escolhida e o botão Copiar confirma. No painel: seções que abrem, erros e troca de seção das configurações. Tudo desligado para quem pede menos movimento.
    • Correção: a animação de entrada dos menus suspensos era sobrescrita pela do filtro ativo (duas animações com o mesmo nome); agora cada uma tem o seu.
  14. 3.0.0-alpha.102 Cor, Movimento e Correções
    • Mais cor e vida em todo o site (nova camada themes/default/assets/css/ds/color.css): cada tema ganhou uma paleta de apoio (âmbar, coral, verde-água, violeta, azul, rosa, verde e ouro), luz ambiente suave no alto das páginas, botão principal em degradê, selos coloridos (Novo, Premium, pontos), fileiras e painéis com marcador de cor, cartões de número cada um na sua cor, barra de baixo com pílula colorida no item atual e topos das páginas internas com véu de cor. O tema Claro trocou o âmbar amarronzado por um laranja queimado vivo (#C2410C).
    • Movimento: o conteúdo entra suave a cada página, cartões e pôsteres sobem sob o mouse, botões e filtros respondem ao toque. Tudo desligado para quem pede menos movimento no sistema.
    • Menu da conta (gaveta lateral): não abria quando a pessoa chegava à conta por um link, porque o site troca só o miolo da página e não executava o script. Agora o script fica em todas as páginas e funciona depois de qualquer troca de página. A gaveta ganhou cartão do usuário em degradê, cada seção numa cor (ícones e item atual na cor da seção) e a barra com ícone colorido.
    • Captcha instantâneo: o mesmo problema da troca de página deixava o captcha no esqueleto cinza até recarregar. Agora ele inicia depois de qualquer troca de página, o primeiro desafio já vem dentro da página (sem pedido extra) e uma reserva de desafios prontos (storage/cache/captcha-pool, tarefa agendada captcha.pool a cada minuto, depois de a página ser entregue) evita esperar o desenho. Em teste local, aparece em cerca de 0,1–0,2 s ao navegar.
    • Tela "Quem está assistindo?": no tema Claro o texto branco ficava sobre fundo claro e quase não aparecia. Agora é sempre uma sala escura com luz colorida, legível em qualquer tema.
    • Painel /admin para quem não é da equipe: conta comum logada recebe a página "Página não encontrada" (404) no painel e na entrada do painel, sem confirmar que existe um painel ali. Visitante sem login continua indo para a entrada da equipe.
    • Pedidos: "Não achou? Peça manualmente" sempre começa fechado; a pessoa abre ao clicar.
    • Avatares novos: os 60 personagens dos perfis (12 bichinhos em 5 variações, com óculos 3D, fone, gravata-borboleta ou óculos redondos) e os 50 retratos da foto da conta foram redesenhados num estilo plano e moderno, sem o brilho de plástico. Os nomes dos arquivos continuam os mesmos, então perfis existentes já mostram o desenho novo. Gerador em scripts/generate_avatars.py.
    • Jogos: página redesenhada. Topo em painel de fliperama colorido, filtro com a cor de cada categoria (Cinema, Raciocínio, Arcade, Estratégia), capa ilustrada própria para cada um dos 16 tipos de jogo (componente game-art) na cor da categoria, cartões em duas colunas no celular e barra de partidas em degradê.
    • Perfil público: capa padrão em luz colorida, números (amigos, seguidores, XP, ranking) cada um na sua cor, nível e barra em degradê, títulos dos painéis com marcador colorido e escolha de avatar com anel e movimento.
    • Assistente com muito mais conversa em português, inglês e espanhol: pedidos por gênero (terror, comédia, ação, romance, animação, drama, suspense, ficção científica, documentário, aventura) com link para o catálogo, filme para família, para casal e com amigos, cara ou coroa, dado, historinhas, "Você prefere?" com resposta, elogio, fome, aniversário, solidão, estudo, medo, cor favorita, teste, fim de semana e "qual é meu nome"; mais piadas, curiosidades, dicas, frases e adivinhas. 106 frases novas traduzidas. A Central de ajuda mostra as brincadeiras novas em "Puxe papo".
    • Rótulos: 121 espaçamentos largos entre letras que sobraram dos antigos rótulos em maiúsculas (ex.: "Saldo atual", "Encontrar título") foram zerados.
  15. 3.0.0-alpha.101 Contraste Suave
    • Os temas deixaram de parecer "modo alto contraste": filtro, aba de ordenação, página atual da paginação, plano atual e botão de lista ativo não ficam mais invertidos (branco no escuro, preto no claro). Agora usam um tom suave da cor de destaque de cada tema, com texto na cor de destaque.
    • Campos: preenchidos, com borda leve; ao focar, um anel suave na cor de destaque no lugar do contorno branco/preto. Vale para site, busca, catálogo, Neon, Aurora, Ouro Real e painel.
    • Cores mais calmas: no Escuro o fundo saiu do quase-preto (#171614) e o texto do quase-branco (#E6E1D8); no Claro a tinta passou de quase preta para grafite quente (#2B2722) sobre papel #F7F6F2; Neon, Aurora e Ouro Real com texto e bordas um tom abaixo. O texto principal fica entre 13,7:1 e 15,6:1 de contraste (antes cerca de 17–18:1) e todos os pares continuam acima do mínimo de acessibilidade.
    • Amostras do seletor de aparência e cor da barra do navegador no celular (theme-color) atualizadas para as paletas atuais (a barra ainda usava o roxo de versões antigas).
  16. 3.0.0-alpha.100 Conta Lateral e Captcha Rápido
    • Menu da conta no celular e tablet: a faixa de botões que rolava de lado e cobria o título da página (ex.: Histórico) virou uma gaveta lateral. Uma barra no topo mostra "Minha conta" e a seção atual; ao tocar, o menu completo abre à esquerda com o perfil e as seções agrupadas, já rolado até a página atual. Fecha pelo X, pelo fundo, pelo Esc ou ao escolher um item; trava a rolagem da página, prende o foco na gaveta e devolve o foco ao botão.
    • Menu da conta no computador: a coluna lateral passa a rolar sozinha (antes, com mais de 60 itens, os do fim ficavam fora de alcance enquanto a coluna ficava presa no topo).
    • Captcha mais rápido: as imagens do desafio vêm na mesma resposta que cria o desafio (antes eram mais um pedido ao servidor por imagem, cada um iniciando o PHP e o banco de novo). Pronto em cerca de 0,4 s no teste local, com um único pedido.
    • Captcha mais leve: com GD, as imagens viajam em WebP (ou JPEG, se não houver WebP; PNG para as que têm transparência). O quebra-cabeça caiu de cerca de 75–80 KB para 7–9 KB. Novo App\Services\Captcha\ImageCodec; o endereço antigo da imagem continua funcionando e também comprime.
    • Desenho do captcha 2 a 3 vezes mais rápido: granulado calculado por fluxo de hash (um sorteio por imagem, não um por pixel), linhas pintadas pixel a pixel uma vez só (antes centenas de círculos sobrepostos), mistura de cores inteira no fundo opaco e cena do quebra-cabeça desenhada uma vez para o fundo e a peça. As imagens continuam determinísticas pela semente.
    • Captcha começa a carregar uma tela antes de aparecer (antes só a 160 px), e ganhou o visual liso do resto do sistema (sem degradê no selo, no cartão e no controle deslizante).
  17. 3.0.0-alpha.99 Redesenho Sala Escura
    • Redesenho completo do site e do painel (design "Sala escura"): saem degradês decorativos, brilhos, vidro fosco, cartões que sobem no hover, rótulos em CAIXA ALTA espaçada, pílulas em tudo e ícones coloridos por seção. Entram uma hierarquia de cantos (moldura 6 px, controle 8 px, painel 12 px, janela 16 px), sombra só no que flutua, filtro ativo invertido, uma única animação de entrada no título do destaque e linhas finas no lugar de caixas.
    • Tipografia própria servida pelo site (sem Google Fonts): Archivo para o texto, Archivo Condensada para títulos, Archivo Expandida para o Aurora e Bodoni Moda para o Ouro Real (licenças OFL junto, em assets/core/fonts). O ranking trocou a Cinzel pela Bodoni Moda.
    • Temas premium só para quem tem direito: Aurora e Ouro Real deixam de aparecer (nem com cadeado, nem com convite ou pré-visualização) para quem não é da equipe nem tem assinatura ativa. A lista vem do servidor (ThemeService::visibleModes), o seletor no menu, rodapé e Perfil mostra só o que a pessoa pode usar, e uma escolha recusada pelo servidor volta para o Escuro com aviso.
    • Aurora repensado: azul-noite com verde-água e títulos na largura expandida, com uma faixa de luz só no alto das páginas sem destaque. Ouro Real repensado: preto quente, dourado champanhe, títulos em Bodoni e filetes de 1 px. Mesmas paletas no painel.
    • Temas gratuitos com paletas novas: Claro em papel (#FAFAF8) com âmbar escuro, Escuro em carvão quente com âmbar, Neon em roxo-noite. Contraste conferido por scripts/accessibility_contrast.php (zero falhas).
    • Classificação indicativa com as cores oficiais (L, 10, 12, 14, 16, 18) no destaque, na página do título e nos cartões (atributo data-cert e helper cert_tone()).
    • Páginas internas (carteira, loja, missões, jogos, conta, perfis, diretório, roletas): topos em superfície lisa no lugar dos banners em degradê, números grandes na fonte de título, ícones monocromáticos, capas dos jogos e vitrine da loja em palco neutro com um filete na cor do jogo ou da raridade. Busca: campo único e gêneros em blocos lisos com filete de cor. Catálogo: filtros direto na página, sem caixa em volta.
    • Rótulos em caixa normal: 48 folhas de estilo do site, 9 do painel e 35 textos de modelo/frases (pt, en, es) deixaram a caixa alta. Mantidos "AO VIVO", "URL HTTPS" e "ID XMLTV".
    • Removidos themes/default/assets/css/modern.css e theme-streamverse.css (efeitos da alpha.96/97); o que era estrutura (posição da nota no pôster, menu em uma linha, layout da página do título) foi para ds/foundation.css.
    • Correções: tema claro mostrava o menu do topo em branco sobre o destaque claro; o botão "Surpreenda-me" sumia no celular; a folha de filtros aparecia como janela flutuante também no computador.
    • Instalador e atualizador no MySQL 8: "ADD COLUMN/INDEX IF NOT EXISTS" (sintaxe só do MariaDB) dava erro de sintaxe; agora é reescrito sem o IF NOT EXISTS e o que já existe é pulado (Migrator::withoutIfNotExists).
  18. 3.0.0-alpha.98 Checklist de Segurança
    • Auditoria pelas 19 verificações de segurança (chaves de API, variáveis de ambiente, rotas do painel, login, acesso, formulários, XSS, limite de requisições, endpoints, CORS, cabeçalhos, debug, dependências, pacotes sem uso, arquivos expostos, banco, senhas, segredos no histórico e auditoria geral). A maior parte já estava coberta pelas alpha.92 e 93; as lacunas achadas estão abaixo e em docs/RELATORIO_SEGURANCA_ALPHA98.md.
    • IP atrás de proxy: com 'trust_proxy_headers' ligado, qualquer visitante podia forjar X-Forwarded-For/CF-Connecting-IP e escapar do limite de tentativas de login, do cadastro e do captcha. Nova lista security.trusted_proxies (IPs e CIDR): só conexões desses proxies informam o IP, e o X-Forwarded-For é lido da direita para a esquerda. Sem lista, o modo antigo continua (compatibilidade) e Configurações > Sistema avisa. X-Forwarded-Proto segue a mesma regra.
    • Login: conta inexistente agora gasta o mesmo tempo de uma conta real (antes gerava um hash novo a cada tentativa, o que dobrava o tempo e revelava que a conta não existia). O hash da senha também é atualizado no login de quem usa verificação em duas etapas.
    • Senhas: o bcrypt só lê 72 bytes e o formulário aceitava 255 (o resto era ignorado em silêncio). Criar ou trocar senha agora recusa mais de 72 bytes, no site, no painel, na redefinição e no instalador.
    • Segredos fora dos arquivos: variáveis de ambiente STREAMVERSE_KEY, _URL, _DEBUG, _DB_HOST/_PORT/_NAME/_USER/_PASSWORD, _TRUST_PROXY_HEADERS e _TRUSTED_PROXIES sobrescrevem o config.php (cada uma também aceita o sufixo _FILE, estilo Docker secrets). Chaves de API do painel marcadas como secretas (TMDB, SMTP, Mercado Pago, S3...) podem vir de STREAMVERSE_SECRET_<NOME> e então não precisam ficar no banco.
    • Modo debug: arquivo, linha e rastro de erro só aparecem para a equipe com acesso ao painel ou para acesso local (127.0.0.1 sem proxy). Visitante comum nunca vê, mesmo com o debug esquecido ligado em produção; avisos do PHP na tela só em acesso local.
    • Reino: o resgate de missão (/reino/missao) não tinha limite próprio e a rota fica fora do limite global de escrita; agora tem (30 por minuto por jogador).
    • Pacote: removido storage/logs/.salt, o segredo do nome dos logs que seguia dentro do ZIP (é recriado em cada instalação).
    • Teste novo tests/unit/security_checklist_test.php (75 verificações, conferidas por mutação). Documentação em docs/IMPLANTACAO_SEGURA.md atualizada (proxies, variáveis de ambiente, usuário do banco, debug, publicação do ZIP). Também corrigido: tests/unit/captcha_test.php falhava sozinho em cerca de 1 de cada 12 execuções (o passe "adulterado" ficava igual ao original quando terminava em 0).
  19. 3.0.0-alpha.97 Temas Premium e Redesenho
    • Seletor de aparência novo, em lista (menu), fichas (rodapé) e cartões (Perfil), no site e no painel, com miniatura de cada paleta e cadeado nas premium.
    • Modais redesenhados em todo o site e painel: motor de janelas, avisos (toast), selo do perfil, filtros, PIN, desbloqueio, denúncias, stories, reels, salas e presentes ganham vidro, cantos grandes, entrada suave e folha de baixo com alça no celular.
    • Site: nova camada de design (themes/default/assets/css/ds): botões, campos, painéis, abas, tabelas, cabeçalho de vidro com menu em pílula, barra inferior flutuante no celular, cartões com brilho, conta, planos, rodapé e cookies.
    • Correções: página Nova enquete do painel dava erro 500 (componente field-error ausente no tema admin); edição de enquetes apontava para rota inexistente.
    • Traduções pt/en/es de todos os textos novos; teste novo tests/unit/theme_service_test.php.
    • Acessibilidade: tema claro ajustado (texto discreto, erro, sucesso, aviso e anel de foco) para passar no contraste mínimo; scripts/accessibility_contrast.php agora reporta 0 reprovados.
  20. 3.0.0-alpha.94 Painel Moderno e Ajuda Multilíngue
    • Painel de administração: nova camada visual em todas as páginas (cartões, tabelas, botões, formulários, abas, topo e menu lateral) acompanhando o site, com tema claro/escuro, animações suaves e tabelas que viram cartões empilhados no celular.
    • Central de ajuda: novo topo com busca, atalhos (assistente, ticket, protocolo, privacidade), categorias com contagem e perguntas prontas em português, English e Español; o assistente ganhou mais assuntos, conversa e sugestões de papo, no idioma escolhido.
    • Privacidade e dados: nova tela, download em PDF e JSON, e Termos de uso, Política de privacidade e Política de reembolso padrão em pt/en/es (modelos: revise com um advogado). Migrations 131 e 132.
    • Roletas: giro que começa rápido e desacelera suavemente até o prêmio, som de roleta (liga/desliga) e novo visual de Últimos prêmios e Meus giros. Missões semanais e Salas (cards e cofre mais compactos) redesenhados.
    • Home: removidos os atalhos, check-in e cards de filmes adicionados por engano; só o visual foi melhorado.
    • Traduções en/es para as telas acima.
    • Atualizações: novo Modo manual (Sistema > Atualizações). Liga com senha (e 2FA) por 30 minutos e aceita .zip SEM assinatura; desliga sozinho após instalar. Continuam protegidos config.php, a chave pública, storage/ e uploads/, e o painel avisa por alerta crítico e registra no log.
    • Instalador e atualizador: migrations que já tinham sido aplicadas pela metade (ex.: coluna last_check_http_status duplicada em tmdb_streaming) deixam de falhar. 'Já existe' (tabela, coluna, índice, chave) é tratado como aplicado, ALTER com várias colunas é refeito coluna a coluna e erros reais continuam sendo erros.
    • Front-end novo: Tailwind 4 (prefixo tw:, ligado às variáveis dos temas, sem reset, 14 KB) e ilhas React/TSX carregadas só quando a página usa. Código-fonte em frontend/, arquivos prontos em assets/dist (o servidor não precisa de Node). Ver frontend/README.md.
    • Busca rápida Ctrl + K (ou /) no site e no painel, em TSX: páginas, filmes e séries com navegação por teclado. Central de ajuda com busca instantânea, filtro por categoria e realce, também em TSX, com a lista antiga como reserva sem JavaScript.
    • Traduções: todo t('...') do TSX é coletado em app/Config/js_phrases_tsx.php e traduzido em português, English e Español.
    • Site público: nova camada visual (themes/default/assets/css/modern.css) em cartões de título, fileiras, destaque, botões, formulários, painéis, abas, conta e rodapé, com movimento suave e respeito a 'reduzir movimento'.
    • Site público: acabamento extra em catálogo, busca, página do título (pôster, episódios, elenco, avaliação) e na chamada para entrar da Home; removido código morto de atalhos da Home.
  21. 3.0.0-alpha.93 Auditoria de Segurança
    • Segurança — Atualizador: só aceita pacotes assinados digitalmente (Ed25519). A assinatura e o SHA-256 de cada arquivo são conferidos ANTES de qualquer extração; pacotes sem assinatura, com arquivo alterado/extra, link simbólico, caminho perigoso, versão anterior à instalada ou tentando sobrescrever config.php e a chave pública são recusados. A instalação exige senha atual (e código 2FA, se ativo) e gera alerta crítico.
    • Segurança — Uploads: todo envio HTTP passa por is_uploaded_file + move_uploaded_file (sem rename), com lista de extensões, conferência do conteúdo real, nomes aleatórios de 80 bits, sem sobrescrever e limite por hora. Imagens JPEG/PNG/WebP/GIF são regravadas (remove código escondido e metadados) e vídeos têm a assinatura conferida. Legendas e imagens de IA seguem o mesmo caminho seguro.
    • Segurança — Controle parental: o PIN só pode ser verificado em perfis da própria conta, com limite de tentativas e formato de 4 a 8 dígitos.
    • Segurança — Backups de banco passam a ter nome com 96 bits aleatórios (antigos continuam funcionando). Removidos manifestos de atualização antigos da raiz.
    • Segurança — Sessões: os arquivos de sessão passam a ser nomeados pelo hash do identificador (o nome do arquivo não revela mais o cookie de login). Sessões antigas são migradas automaticamente na primeira visita.
    • Segurança — Mensagens privadas: imagens novas ficam em storage/private (fora de uploads/) e só abrem para participantes da conversa ou moderação do chat. Para mover as antigas: php scripts/migrar-midia-privada.php --apply.
    • Segurança — Painel: as configurações de Missões exigem permissão de gerenciar tarefas (antes bastava ver missões). Logs técnicos passam a ter nome com sufixo secreto; erros nunca aparecem na tela antes da configuração carregar; cliques repetidos em anúncios/banners não inflam contadores; destinos de botões do assistente e links de anúncios recusam //host e barra invertida.
  22. 3.0.0-alpha.92 Reforço de Segurança e Estabilidade
    • Segurança — SSRF: os testes de fonte de vídeo, o download de legenda por URL e o envio de notificações push só acessam servidores públicos da internet (recusam localhost, redes internas e metadados de nuvem, validam cada redirecionamento e fixam o IP conferido).
    • Segurança — Stories: link, cor de fundo, estilo, texto e arquivo de mídia agora são validados no servidor (link só http/https, cor só #hex, mídia só da pasta de stories); o visualizador também confere antes de usar.
    • Segurança — Redirecionamento aberto: endereços com tabulação ou caracteres de controle (ex.: "/<TAB>/site-mau") não são mais aceitos em ?redirect e no botão Voltar.
    • Segurança — Cabeçalho Host falso: o domínio da requisição só é aceito em formato válido (impede links de e-mail apontando para outro site quando a URL do site não está configurada).
    • E-mails: os botões de redefinir senha, confirmar e-mail e novo e-mail agora levam o endereço completo (antes iam sem o domínio e não abriam fora do navegador).
    • Quedas do site: o log técnico tem teto de 25 MB por dia e uma linha por registro (sem forjar linhas); logs com mais de 30 dias e sessões de visitantes paradas há mais de 2 dias são apagadas pela limpeza automática.
    • Quedas do site: busca e sugestões têm limite por IP; relatórios de CSP têm limite; o /status público usa cache de 20 segundos; corpo JSON limitado a 2 MB; leitura de QR recusa imagens muito grandes.
    • Uploads: a pasta uploads/ também bloqueia .html, .svg, .js e .xml e envia nosniff + CSP restritiva. Planilha de vendas do painel protegida contra injeção de fórmula.
    • Removido o script antigo atualizar-alpha64.php da raiz do pacote.
  23. 3.0.0-alpha.91 Assistente Conversador, Loja e Cabeçalho Animados
    • Loja ainda melhor: busca, filtros por categoria e raridade, ordenação (preço e nome), contagem de itens, aviso de quanto falta para comprar, selo de raridade e uma seção "Como a loja funciona" ligada ao assistente.
    • Perfil: o bloco "Função" (e o texto de acesso total) deixou de aparecer; novo cartão "Selos" com todos os selos da pessoa. Ao tocar no ícone/selo ao lado do nome aparece uma janela explicando o que ele significa e como ganhar.
    • QR code: só são lidos QR codes do próprio site. Em mensagens privadas aparece a opção "Escanear QR code"; imagens com QR code no feed são recusadas automaticamente (envie por mensagem privada).
    • Assistente muito mais conversador: cumprimentos, papo leve, piadas, curiosidades, indicações de filme, apoio em momentos difíceis (com telefones de ajuda), despedidas e encaminhamento para a equipe. Responde a perguntas sobre o site, configurações, loja, presentes, salas e mais, com sugestões e links. Funciona no servidor, sem IA externa.
    • Salas de bate-papo: presentes, imagens e outros anexos não quebram mais o layout das mensagens; "Membros e moderação" foi redesenhado.
    • Jogos: "Filmes em emojis" ganhou mais de 190 títulos próprios, mistura títulos do próprio site (o jogo cria os emojis a partir do título e dos gêneros), mostra categoria Filme/Série e leva ao título no site. Mais variedade e menos repetição.
    • Cabeçalho: nova lupa de busca ao lado de mensagens e notificações; os ícones animam ao toque e, quando chega mensagem ou notificação nova, balançam até você abrir.
    • Página inicial: atalhos rápidos para as áreas do site, bloco "Para hoje" (check-in, missões e roletas) para quem está logado e convite para criar conta para visitantes.
    • Carregamento: ao ir do site para o painel /admin (e ao voltar) o site agora faz um carregamento completo quando o layout muda, sem misturar o conteúdo do painel com o do site nem exigir atualizar a página. O cache offline foi renovado (v5).
    • Tudo o que é novo é traduzível: frases do JavaScript passam por um dicionário próprio (window.t), o assistente traduz suas respostas, e as frases novas já vêm em inglês e espanhol. O catálogo de frases foi regenerado.
  24. 3.0.0-alpha.90 Pedidos com TMDB, Cofre das Salas e Status Automático
    • Pedidos de filmes e séries novos: busque pelo título (TMDB) e veja na hora se já está no site (com botão Assistir) ou se dá para pedir. Cada pedido tem votos, fila com posição, e quanto mais votos mais rápido ele sobe. Assinantes VIP têm prioridade na fila. Design novo no celular.
    • Cofre das salas (/salas): o administrador deposita pontos, moedas, presentes, ícones e capas; as salas ganham do cofre conforme os membros fazem tarefas, desafios e jogos, com barra de progresso que vai diminuindo. O dono da sala recebe uma porcentagem do que os membros ganham.
    • Ranking das salas redesenhado: as 10 melhores salas, os 5 usuários que mais pontuaram em cada uma e quanto cada sala ganhou do cofre na semana.
    • Jogos nas salas: os jogos que o dono libera, quando jogados pelo botão da sala, somam pontos no ranking da sala.
    • Temas das salas com prévia: galeria com pré-visualização ao vivo do tema antes de aplicar.
    • Loja de presentes, Notificações, Quem está assistindo, Atividade, Conquistas e Desafios redesenhados no novo estilo (celular em primeiro lugar). Notificações: tipos de aviso, sons com botão de ouvir e e-mail em cartões com interruptores.
    • Status do serviço automático: cada item (site, banco, login, filmes, séries, player, canais, reels, chat, salas, jogos, loja, fórum, API, TMDB, pagamentos, carteira, notificações, rotinas e armazenamento) é medido de verdade a cada consulta; a página atualiza sozinha a cada minuto e o item que não existe/não está configurado não derruba o estado geral.
    • Menus: Controle parental, Status e Indique amigos ficam no menu da foto; o menu lateral foi reorganizado em seções.
    • Molduras: corrigidas as que saltavam para fora da foto no perfil, na loja e no menu lateral.
    • Converter pontos: os atalhos de quantidade (1, 5, 10, 50, 100 e Tudo) voltam a funcionar também depois de navegar entre páginas.