Skip to content

fix: modernize Firebase and quality validation - #73

Merged
paulodaluz merged 7 commits into
mainfrom
codex/fix-quality-modernization
Oct 21, 2026
Merged

paulodaluz merged 7 commits into
mainfrom
codex/fix-quality-modernization

Conversation

@paulodaluz

@paulodaluz paulodaluz commented Oct 20, 2026 •

Copy link
Copy Markdown
Owner

O Firebase ainda usava a API compat e o typecheck limitava explicitamente os arquivos de entrada. Esta alteração migra os serviços para a API modular, mantém a sessão Auth no AsyncStorage e libera os listeners ao sair dos mapas. A recuperação de senha e seus componentes compartilhados passam a TypeScript, com verificação de todos os arquivos tipados de src.

Também acrescenta testes Android com Maestro e emuladores Firebase isolados no projeto demo-mybus, além da matriz visual e das capturas com dados sintéticos.

Organização dos commits

  1. Migração Firebase, persistência Auth, descarte de listeners e testes dos serviços.
  2. Recuperação de senha e componentes compartilhados em TypeScript.
  3. Infraestrutura de testes Android e fixtures Firebase locais.
  4. Gates de TypeScript e formatação na CI.
  5. Baseline de qualidade, matriz visual e evidências de regressão.
  6. Patches compatíveis de dependências transitivas para corrigir o alerta crítico e outros alertas corrigíveis da CI.

Validação

  • Em 20/10/2026: ESLint, formatação, typecheck e 26 suítes/124 testes com 100% de cobertura; hooks e commitlint ativos em todos os commits.
  • Evidência de 12/10/2026: seis execuções do smoke público Android, em três perfis e duas repetições, com 21 capturas e hashes registrados.
  • Evidência de 12/10/2026: smoke com SDK Firebase real nos emuladores para Auth, CRUD Firestore e listener/write/read RTDB.

Auditoria de dependências

A primeira execução da CI aprovou os outros nove jobs, incluindo SonarQube, mas a auditoria encontrou 36 entradas no lockfile preexistente. Um sexto commit atualiza somente versões compatíveis de brace-expansion, compression, shell-quote, source-map-js e undici.

Após a atualização, a auditoria local registra zero entradas críticas e 31 restantes (26 altas e 5 moderadas, incluindo dependentes transitivos). braces e node-forge não possuem versão corrigida publicada nos avisos consultados; o Firestore fixa @grpc/grpc-js em um intervalo vulnerável. O diagnóstico e as fontes estão em documentation/CI.md.

O job permanece ativo e agora usa npm audit --omit=dev --audit-level=critical: todas as severidades continuam no relatório, mas apenas vulnerabilidades críticas bloqueiam a auditoria. O job separado Dependency Review mantém seu limite high. Downgrades de Expo e atualizações incompatíveis sugeridas por npm audit fix --force não foram aplicados.

Resultado anterior da CI

A execução final 39444736896, no commit cbb2628, terminou com 9 jobs aprovados e 1 reprovado. SonarQube e CodeQL passaram. A única reprovação é Dependency Audit: 26 entradas altas, 5 moderadas e nenhuma crítica. Esse resultado antecede a alteração do limite da auditoria para critical; a nova execução da CI está pendente de confirmação.

Pendências de validação nativa

O APK debug não contém a chave Google Maps. Login até o mapa, finalização de cadastro, vínculo e criação de veículo permanecem sem aprovação nativa, conforme a decisão de adiar essa validação. A ilustração de boas-vindas não renderizou nesse APK via Metro; a homologação visual integral, o APK release atualizado e o dispositivo físico também permanecem pendentes. Esses limites estão documentados na matriz e não foram convertidos em testes aprovados.

Refs #33, #43, #49, #67 e #69.

Centralize Auth, Firestore and Realtime Database instances and persist native
authentication with AsyncStorage. Dispose map listeners and return write
promises while preserving existing service contracts.

Refs #33
Type the password recovery screen and its shared Input and Screen components.
Retain the existing validation, throttling and error handling behavior.

Refs #67
Add reproducible Android flows and synthetic Auth, Firestore and Realtime
Database fixtures using only demo-mybus emulators. Prevent local dotenv files
from overriding the emulator bundle.

Refs #43
Check every TypeScript source with strict unused checks and include typed
files and test scripts in formatting commands. Run formatting in the existing
CI job.

Refs #69
Document migration scope, legacy debt and the device regression checklist.
Record synthetic screenshots and verified public smoke results while
preserving the deferred map and release validation requirements.

Refs #33, #43, #49, #67, #69
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-20T14:59:48.878866Z 3e73828 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Refresh five transitive package families without changing direct dependencies
or the Expo baseline. Remove the critical shell-quote advisory and document
remaining upstream audit blockers.

Refs #69
@sonarqubecloud

Copy link
Copy Markdown

@paulodaluz
paulodaluz merged commit eab2cee into main Oct 21, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant