Override criado a partir da betpontobet-bet-br — 53e519d58. Mesmo operador (OPEN GAMING SA), então o esqueleto de config é reaproveitado inteiro; o que muda é identidade visual, IDs de terceiros, copy de SEO/FAQ e tom de voz — deliberadamente, pra evitar duplicação de conteúdo entre as duas marcas do mesmo grupo aos olhos do Google.
Identidade e integrações — paleta navy + ciano do backoffice (primary #03c6fc, bg-primary #091635, bg-secondary #05102c, sidebar #021c47), topbar no azul dos balões dos cards de jogo, header com Cadastrar sólido ciano e Entrar em outline ciano (paridade com a produção legada) e sidebar buttons em tom navy em vez do cinza neutro. Gamificação com brandKey e labelKey próprios do Smartico e naming "Clube Donald" / "Pontos". Analytics com container GTM próprio via Stape em subdomínio da marca, facebookDomainVerification própria e Taboola compartilhado. Referral com brandSlug próprio, lido do header x-brand do plugin legado. WordPress, portal de atendimento e ouvidoria em subdomínios próprios.
Ambientes e CI — front-ops 5e24b0b cria os dois ambientes: produção (donald.bet.br, deploy manual gateado pelo time de deployers criado na semana anterior) e stage com auto-deploy na branch stage. Espelha o padrão da betpontobet-bet-br, e ambientes de dev/performance foram intencionalmente omitidos pra essa marca. 545188bd2 adiciona a marca ao dropdown de deploy do base, corrigindo o drift entre repositórios.
Este onboarding abre a maior construção de marca do trimestre: o design system da donald consome as semanas seguintes.
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 452450eapaga 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.
Semana 06–12/04 — Onboarding de depósito: banner de bônus, auto-abertura e prefill
FirstDepositBonusBanner entra no DepositModal (94fe5c7b7), visível enquanto o formulário de depósito está ativo, para expor a oferta de primeiro depósito no exato momento da decisão. 62ff8e4a1 ajusta a margem e renomeia o maxLabel não consumido para _maxLabel, mantendo o Biome quieto sem apagar o campo.
O modal de depósito volta a abrir sozinho para quem tem saldo baixo (bf390c85e), replicando o useOpenModalAfterTime do front Vue/Nuxt legado: abre após login ou registro quando o saldo é ≤ R$ 0,99, pula contas restritas (autoexclusão, somente-saque), respeita cooldown de 12 h gravado em localStorage, espera 1 s para que modais de validação e bloqueio tenham prioridade, e limpa a chave no logout.
?value= na URL pré-preenche o valor do depósito (c34c93d93), fechando o ciclo de campanhas que mandam o usuário direto para um valor sugerido. O namespace de i18n de pagamentos ganha as mensagens de bônus de primeiro depósito nos três idiomas (core f31c309).
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
Criado SDK @cactus-agents/sports no front-cactus-core, com suporte aos provedores First, Altenar e Betby — inclui tipos, navegação, carregamento dinâmico de SDK e testes unitários
Integração do módulo de esportes no front-web-base: novas rotas /sports, componentes SportsAltenar, SportsBetby e SportsIframeFirst, configurações de sidebar e APIs de launch/token para cada provedor
Migrado o pacote @cactus-agents/sports de link local para versão publicada no registry
Implementado módulo completo de depósito e saque com integração a provedores de pagamento: novos componentes de modal (DepositModal, WithdrawModal), seletores de método, inputs de valor, atalhos de quantia e telas de resultado para PIX, SPEI e redirect
Criado hook usePayments para interação com a API de pagamentos no client-side
Adicionadas rotas de servidor para operações de pagamento: provedores, depósito, status de depósito, saque, lista de bancos e chave PIX
Criada store Zustand (payments.ts) para gerenciamento de estado dos modais de pagamento
Botões de depósito e saque ativados no menu de conta do usuário e na área de header (removidas badges "Em breve")
Adicionado SDK @cactus-agents/payments ao monorepo core com suporte a: listagem de provedores por moeda, submissão e polling de depósito, saque, gerenciamento de chaves PIX (Brasil) e lista de bancos SPEI (México)
Publicado pacote @cactus-agents/payments ^0.2.0 no registro; dependência adicionada ao front-web-base
Corrigido tratamento de erros na API de rollover: falhas em getRollover() e checkRolloverAccomplished() não impedem mais o retorno dos dados principais da carteira
Adicionado campo balance ao tipo RealWallet, com conversão de centavos para reais na transformação da resposta da API
Publicados @cactus-agents/wallet ^0.2.2 (inclui correção do rollover) e atualizada dependência no front-web-base
Corrigido createClient para encaminhar automaticamente o header Cookie em todas as requisições server-side, eliminando a necessidade de extração manual por rota