Pular para o conteúdo principal

12 publicações com a etiqueta "jogos"

Ver todas as etiquetas

Changelog - 09/08/2026

Perfil único de resolução para a arte de jogo

  • Janela desta entrada — cobre 03/08 a 09/08 (25 commits em main-7k). É a entrada mais recente do changelog; 10/08 ainda estava em curso quando ela foi escrita, e os dois commits daquele dia que fecham a poda de environments estão anotados no fim, em ## Infra / CI/CD.
  • O Cloudflare Images codifica o transform no PATH, então cada combinação de largura, altura e recorte é um RECURSO distinto (PR #1876) — 1b6b8e904 parte dessa constatação: cache-key de browser própria, entrada de cache CF própria e download próprio pra cada variação. O app tinha 12 superfícies pintando game.image com 4 recortes e 10 ladders diferentes, nenhuma compartilhando nada. Medido no 7k mobile (iPhone 14 Pro Max, DPR 3, 3G): o card do carrossel pedia width=240,height=300 (10,0 KB) e a página de jogo pedia width=320,height=400 (13,5 KB) — 23,5 KB pra mostrar a MESMA arte duas vezes, com o segundo request entrando frio no 3G do usuário e a arte piscando ao abrir o jogo.
  • Pior: os degraus grandes eram upscale. O master da arte de jogo no CF é 300x350 (amostrado sobre 12 assets reais da biblioteca), então 320, 447 e 480 inventavam pixel — width=480,height=600 devolvia 21,5 KB de nada, o dobro do degrau que a listagem já tinha em cache. O teto útil é ~300px de largura.
  • O que passa a valer~/utils/game-artwork centraliza ladder e fallback num perfil único e cada superfície declara só o seu sizes, que é o slot de layout real. Não há mais recorte no servidor: o enquadramento vai pro CSS (object-cover numa caixa de aspect fixa), então card 4/5, poster 59/79 e thumb de proporção natural passam a compartilhar o MESMO arquivo. O ladder default vai de [144,216,288] pra [128,192,288] — o degrau do meio serve DPR 1 e precisa ficar logo acima do maior slot (186px, a thumb do preview da página de jogo) sem nenhum degrau entre ele e o menor slot de card de desktop (140px); com 216 o card pegava um degrau e o hero era empurrado pro seguinte, baixando a mesma arte duas vezes no desktop. As 5 brands size: "compact" passam a [128,192,240], cortando ~25% dos bytes e da memória de bitmap decodado. Fundos borrados e reflexos reusam as props EXATAS da thumb em vez de baixar uma segunda variante recortada só pra ficar sob um blur().
  • Guarda-chuva contra regressão — 11 testes de perfil mais uma auditoria de TODAS as brands (56 casos) que falha se alguém reintroduzir um degrau entre o card e o hero, inclusive em brand nova. THUMB_ASPECT_VALUE foi removido porque existia só pra alimentar o recorte no servidor e mantê-lo era convite pra refragmentar.
  • A convergência que faltava (PR #1877) — a97d91545: o perfil único convergia em DPR maior ou igual a 2 (todo celular real) e em DPR 1 no desktop, mas não em DPR 1 com viewport estreito, onde os slots divergem de verdade (o card declara 115px e a thumb do preview ~152px, com o degrau 128 exatamente no meio). O fix faz as superfícies da página de jogo declararem o slot do CARD no mobile: GAME_PREVIEW_ARTWORK_SIZES passa a espelhar os breakpoints do card e o GamePageHero da donald vai de 131px pra 128px. É uma sub-declaração deliberada de ~19% — em DPR 1 estreito a arte vem 128px numa caixa de ~152px, imperceptível.

Changelog - 21/04/2026

Semana 13–21/04 — auth, user e wallet viram @cactus-agents/accounts (breaking)

  • Os três pacotes de conta foram fundidos em um só, no dia 17/04. eac3812 cria packages/accounts movendo para lá o código de packages/auth, packages/user e packages/wallet (serviços de auth, recuperação, usuário e wallet; restrição de conta; histórico de login; jogo responsável; refresh de token; tipos de auth/user/wallet), e 452450e apaga os três pacotes no mesmo dia — 16 arquivos, 2.623 linhas removidas. Não existe mais @cactus-agents/auth, @cactus-agents/user nem @cactus-agents/wallet.
  • Migração para quem consome: troque os três imports por @cactus-agents/accounts (serviços e tipos) e @cactus-agents/accounts/react (hooks). No base isso foi feito em 88f85f275, com o pacote entrando via fde5ef596 / 4db2b4ed1 e a versão subindo de ^0.2.0 (a3396a973) para ^0.14.1 ao fim da semana. O package.json do base saiu de auth ^0.6.0 + user ^0.6.0 + wallet ^0.4.1 para uma única dependência accounts.
  • Retratação: as entradas de março que anunciaram @cactus-agents/wallet e @cactus-agents/user como pacotes SDK publicados descrevem um estado que deixou de existir aqui. Leia-as como histórico — os nomes não resolvem mais no registry.
  • O subpath /react é o que muda o dia a dia do base. 212615a expõe store Zustand no nível do módulo e os hooks de saldo já formatados por locale/moeda (useRealBalance, useBonusBalance, useCashbackBalance); 3fad9c8 completa a superfície de wallet (useWallet, useRollover, useWalletFlags, useTransactions, useTransferBonus, useTransferCashback, useRefreshWallet, useFormatMoney, useAccountsInit), tornando removível a fachada useWallet que o base mantinha à mão; dd73c98 adiciona os hooks de auth (useCurrentUser, useLogin, useRegister, useLogout, useRefreshProfile, useValidateDocument, useRecovery); da07b42 adiciona useProfile com updateAddress, updatePhone, updateProfile, storeDocument, updateMarketing e lookupPostalCode; 0afc73a adiciona useWithdrawReceipt.
  • Os adapters HTTP default vêm embutidos (a492634): como todos os forks do base herdam as rotas de proxy /api/wallet/refresh|transactions|action, /api/auth/*, /api/user/* e /api/address/* com o envelope { ok, data, error }, a lib passou a falar esse protocolo por padrão — o consumidor só chama useAccountsInit({ locale, currency }). 2816079 desacopla initAccounts do client concreto (recebe refetchWallet em vez de walletService), 0a89fe9 alinha os adapters de auth ao envelope do base, e 494c42c documenta por que o /react usa fetch cru em vez do ApiClient.
  • useTransactions devolve transação pré-formatada (b5ae424): novo FormattedTransaction = Transaction & { amountFormatted: string }, com o amount cru preservado para a lógica de sinal. Consumidor não importa formatador nem recebe um por prop.
  • Do lado do base, a consequência foi apagar código: 551fa1470 remove os fetches manuais, a76c112c1 migra as cinco seções de edição de perfil (AddressSection, PhoneSection, DocumentSection, InfosSection, MarketingSection) para useProfile — adicionando apenas a rota /api/user/update-marketing, porque as demais reaproveitam proxies existentes — e deleta app/store/user.ts. d58617465 conclui a migração de auth, f161de1ab corrige o import de useAccountsStore na PixSection e 886e81f58 fecha os erros de tipo em TransactionCard e BonusWalletCard.
  • Rollover ficou plano. 6c2b9c8 promove os campos de firstTransaction do rollover para o nível de cima e 9ca9cf5 adiciona lookupByPostalCode e maxBonusWithdrawAmount no topo; 10c9d48, 2b5f002 e e0ca444 simplificam a transformação de wallet em cima disso. e2f2f61b6 ajusta o BonusWalletCard para o novo shape.

Changelog - 05/04/2026

Semana 03–05/04 — Rede 7k chega à Nigéria e à Finlândia

  • Duas marcas novas nascem no mesmo dia: ng-7k-bet (7c7bcbe0a) e fi-7k-bet (e83078a76) ganham árvore de override completa em overrides/<brand>/app/config/ — tema, features.config.ts, menu.config.ts, sidebar.config.ts, linhas de home/cassino e itens de navegação. O acabamento veio na sequência: 224653ac7 fecha o branding da ng-7k-bet, 750fd7f5c ajusta features e cores da fi-7k-bet, e 0359f4e2e / f6b0ce82c trocam favicon e ícones PWA de cada uma. Como overrides/* é ignorado por padrão no .gitignore, cada marca só passa a ser versionada quando entra na lista de exceções (!overrides/<brand>/) — é esse commit que "cria" a marca aos olhos do git.
  • Manifest PWA passa a sair do tema (1dff5bffc): theme.config.ts ganha um bloco manifest com theme-color e background-color, e a rota app/routes/manifest[.]json.ts lê dali em vez de ter os valores fixos — o mesmo bloco foi propagado para todos os overrides.
  • Licenciamento por jurisdição: 24d0b6ebf padroniza o texto de licença entre as configs, 7f46e5604 troca o texto da ng-7k-bet para inglês e 9a9a38be0 ajusta o textLicense do licenses.config.ts dessa mesma marca. Marca nova em jurisdição nova não reaproveita o rodapé regulatório brasileiro.
  • Suporte de país no core: @cactus-agents/country-config ganha suporte ao documento NIN e a localização da Nigéria (8a5d11d) — é dessa config que o registro tira qual documento pedir e como validá-lo.

Changelog - 01/04/2026

Recompensas e Gamificação

  • Adicionada a primeira versão da seção de Recompensas, incluindo a página principal, componentes de listagem e o modal para resgate de prêmios.
  • Integradas as rotas de API, o hook useRewards e a store Zustand para gerenciamento de estado das recompensas.
  • Adicionada a aba de Recompensas na navegação do usuário e a configuração de feature flag para controle de acesso.
  • Implementado o sistema de votos em jogos, com carregamento assíncrono dos votos do usuário e contagem pública.
  • Corrigido o formato da API de votos para alinhar com o backend (is_like como string, casinoGameId como número).

Changelog - 31/03/2026

Banners e Stories

  • Novos componentes de Stories implementados — StoriesCircles, StoriesModal, StoriesOnlyButton e StoriesWithModal para exibição interativa de banners
  • Autoplay adicionado ao HomeBannerCarousel com remoção do skeleton loading
  • Controle de visibilidade por linha (visibility control) adicionado ao sistema de home rows com classes responsivas
  • Correções de estabilidade no StoriesModal: safeClose para fechamento seguro com overlay invisível, reset de progresso e timing corretos, ajuste de padding e role de acessibilidade
  • Widgets configuráveis: HomeBannerCarousel, TournamentsSection e demais widgets agora aceitam title, icon e i18nKey como props para maior flexibilidade

Changelog - 28/03/2026

Cache de Plataforma

  • Criado novo pacote platform-cache no monorepo front-cactus-core, com engine de cache governada, policies de TTL/stale, e suporte a múltiplos stores (Cache API, KV snapshot, in-memory)
  • Publicada versão 0.2.0 do pacote @cactus-agents/platform-cache com changeset automático via CI
  • Integrado @cactus-agents/platform-cache no front-web-base: novo serviço platform-cache.server.ts substitui lógica de cache dispersa nos serviços de jogos e brand
  • Refatorado games.cache.server.ts adotando a engine centralizada
  • Atualizado brand.server.ts para usar a nova camada de cache governada
  • Rota de dev api/dev/cache-clear atualizada para compatibilidade com a nova engine

Changelog - 24/03/2026

Casino / Jogos PG

  • Investigação e correção do fluxo de inicialização dos jogos da PG Soft — jogos estão funcionando normalmente após ajuste
  • Integração do novo endpoint de grandes vitórias por jogo (top wins do datalake) na página de detalhe do jogo
  • Refatoração da seção "Grandes Ganhos" para consumir o novo endpoint do datalake, substituindo a implementação anterior
  • Novos dados de vitórias dos usuários integrados na página do jogo com o endpoint atualizado

Changelog - 18/03/2026

Área do Usuário (front-web-base)

  • Substituição completa do menu lateral por navegação em abas (tabs): geral, histórico e configurações
  • Adicionadas páginas de conteúdo tabuladas: general.tsx (info da conta, segurança, métodos de pagamento), config.tsx (proteção, jogo responsável) e history.tsx (histórico de transações e de login)
  • Removidas páginas legadas separadas: conta, segurança, proteção da conta, IRPF, histórico de login
  • Seções de conta e segurança refatoradas com painéis colapsáveis e ícones
  • Sections Pix, Clabe, Senha e Autenticação em dois fatores agora são componentes auto-contidos com gerenciamento de estado próprio
  • Adicionado componente UserSummaryHeader com info do usuário e ações rápidas

Changelog - 16/03/2026

Jogos

  • Modal fullscreen para o player de jogos no mobile: ao clicar em Jogar, o jogo abre em tela cheia com header próprio (botão voltar e botão Depositar)
  • Detecção de dispositivo móvel no GameIframe para ajustar comportamento de exibição
  • Carrossel de jogos relacionados atualizado com setas de navegação e link "Ver todos"
  • Carrossel de provedores adicionado na página de detalhe do jogo
  • Grid de jogos ajustado para 3 colunas com espaçamento mais compacto
  • Deduplicação de jogos no cache para evitar itens repetidos nas linhas
  • Chaves de componentes migradas de game.id para game.slug para maior consistência
  • Ajuste no fallback de estatísticas: API pode retornar objeto com valores zerados, agora verificado corretamente antes de cair no mock