TG

Consolidação: auth, forms, enums e documentação em 14 workspaces

Centralização de auth, react-hook-form + Zod nos formulários, remoção de react-aria em favor do shadcn/ui, refactor de enums de domínio, migração de build para Railpack, e sprint de documentação.

Segundo dia consecutivo de trabalho intenso no projeto cliente (NDA). 14 workspaces em paralelo, 36 sessões de agentes, 26 commits únicos. O foco mudou de fundação (dia anterior) para consolidação: autenticação, validação de formulários, qualidade de código e documentação de onboarding.

Projeto cliente (NDA)

Autenticação centralizada

Criei um AuthProvider (React Context) para organizar sessão e login num único lugar. A rota DELETE de usuários retornava 500 quando o perfil no banco era inválido. Agora valida e responde com erro legível. Renomeei variáveis genéricas (atualizado para usuarioAtualizado) para deixar o código mais claro.

Formulários com react-hook-form + Zod

Migrei os formulários menores para react-hook-form com schemas Zod. Os dois maiores (NovoRelatorio, ~3k linhas, e GestaoRelacional, ~5k linhas) ficaram de fora: têm auto-save, debounce, arrays repetíveis (useFieldArray), autocompletes com estado paralelo e integração offline. Migrá-los em massa seria arriscado, então a infraestrutura (schemas, ErrorField, padrão RHF) ficou pronta para adoção incremental.

Consolidação de component library

Avaliei se fazia sentido manter react-aria-components junto com shadcn/ui. A conclusão foi que não: shadcn/ui (baseado em Radix) já cobre todos os componentes necessários. Removi a dependência e simplifiquei a árvore.

Refactor de enums de domínio

Apliquei a skill domain-enums no frontend e backend: enums tipados no lugar de strings mágicas. Padronizei nomenclatura (rotulo virou label, sufixoRelatorio se manteve por ser específico do domínio).

Deploy e infra (Railway)

Migrei o build do backend de Nixpacks para Railpack. Corrigi falha de build e configurei o service domain em produção. Cadastrei o admin inicial no banco de produção e documentei o fluxo de ALLOW_BOOTSTRAP_ADMIN. Um workspace levantou custos e possibilidades de hospedar frontend no Railway (decidi manter na Vercel).

Sync e PWA offline

Corrigi bugs de integridade e confiabilidade da sincronização. Estudei padrões offline-first (web.dev) e documentei como testar o PWA localmente. Melhorei a interface do "Novo Relatório" e reorganizei a documentação relacionada.

Documentação e onboarding

O volume de docs foi alto:

  • CONTRIBUTING.md com setup passo a passo para macOS, Linux e Windows.
  • Reorganização da pasta docs/ (separação frontend/backend dentro de arquitetura/).
  • Guia de uso para o usuário final, escopado por perfil (admin, gestor, piloto).
  • Diagrama de arquitetura, plano de QA, documentação de partes críticas.
  • Regra para devs: não pedir para o agente de IA rodar o app mais de uma vez (evitar re-executar migrations).

UI e revisões

Adicionei pulso translúcido ao botão do WhatsApp. Abri issues no GitHub e marquei progresso nas tarefas em andamento. Criei tarefas pendentes para máscaras de input (área total aceitando letras, falta de type="number" e validação Zod).

tgmarinho-ai-website

Fechei o PR com as entradas de journal da semana (dias 27 e 28).

Um dia de consolidação onde cada workspace resolveu uma dívida técnica específica, e no final a base de código ficou mais legível, mais documentada e mais fácil de entrar para quem é novo no projeto.