cellarvinhostechteam/novo-app-cellar
feat/tab-pop-to-top · 22 de setembro de 2026 às 13:16 · gpt-5.6-sol
Score 58/100. A base apresenta boas proteções de execução, como ErrorBoundary, tratamento de atualização e configuração idempotente do Podfile. Entretanto, há riscos relevantes de segurança e entrega: tráfego HTTP é permitido globalmente, a configuração iOS de push permanece em ambiente de desenvolvimento e código da branch development pode ser publicado diretamente no canal production. Também foram encontrados defeitos reproduzíveis em script de migração, deep links, tratamento de falhas de armazenamento e carregamento inicial.
Aplicativo permite tráfego HTTP sem criptografia em iOS e Android
securityapp.config.js:17No iOS, NSAllowsArbitraryLoads está definido como true, inclusive dentro de infoPlist. No Android, expo-build-properties define usesCleartextTraffic: true. Assim, requisições HTTP podem ser realizadas sem proteção de transporte nas duas plataformas.
Build de produção iOS está configurado para o ambiente de push de desenvolvimento
reliabilityapp.config.js:32O entitlement "aps-environment" está fixado como "development" e o onesignal-expo-plugin também está configurado com mode: "development". O mesmo app.config.js é utilizado pelo perfil production definido em eas.json.
Commits da branch development podem publicar diretamente no canal production
reliability.eas/workflows/publish-development-updates.yml:18O workflow é executado em push para development e o job dev_update_production publica no channel production quando a mensagem do commit contém simultaneamente "update" e "production". Não há aprovação, tag ou restrição adicional presente no workflow.
Script de substituição nunca adiciona o import de AppScrollView
bugreplace_scrollviews.js:32O script primeiro substitui <ScrollView por <AppScrollView e, depois, testa if (!content.includes('AppScrollView')). Após a substituição essa condição sempre é falsa, mesmo quando não existe import. O arquivo é então salvo com AppScrollView não definido, causando falha de compilação nos arquivos migrados.
Correspondência parcial de deep links direciona caminhos não relacionados
bugApp.tsxgetStateFromPath usa path.includes("wishlist"), path.includes("favoritos"), path.includes("bolao") e path.includes("minha-cellar"). Portanto, caminhos como favoritos-extra ou collection/nao-e-bolao também satisfazem as condições e abrem telas especiais incorretamente.
Falha no AsyncStorage pode impedir o fechamento do modal
reliabilitysrc/components/home/SelecaoCupons/HowToUseCouponsModal.tsx:63handleClose aguarda AsyncStorage.setItem ou removeItem antes de chamar onClose, sem try/finally. Se a operação rejeitar, onClose não será executado e o modal permanecerá aberto. loadPref também executa getItem sem tratamento de rejeição.
Consulta da vitrine é executada mesmo quando o componente não será exibido
performancesrc/components/home/MinhaVitrine.tsx:16useAdegaProductsQuery(skus) é chamado antes da validação que retorna null para usuários que não pertencem ao clube ou não atendem aos critérios. Além disso, skus recebe uma lista padrão, de modo que a consulta sempre recebe um valor mesmo para usuários sem dados personalizados.
Erro no carregamento de fontes pode manter o aplicativo indefinidamente no splash
reliabilityApp.tsxO retorno de useFonts é desestruturado apenas como fontsLoaded, ignorando o erro. Enquanto fontsLoaded for false, o componente sempre retorna AnimatedSplash, inclusive depois de a animação terminar. Não existe caminho alternativo para uma falha definitiva de carregamento.
Projeto não possui comandos de teste, lint ou verificação de tipos nos scripts apresentados
testingpackage.json:5A seção scripts contém comandos de execução, build, submit e upload de sourcemaps, mas não contém test, lint ou typecheck. Nenhum framework de testes aparece nas dependências ou devDependencies apresentadas.
Log detalhado do OneSignal permanece habilitado em produção
performanceApp.tsxOneSignal.Debug.setLogLevel(LogLevel.Verbose) é executado incondicionalmente no escopo do módulo, sem verificação de __DEV__ ou ambiente.