- Profile do Supabase não existe pra usuários Logto
- ProtectedRoute, ProtectedAdminRoute, ProtectedRouteByResource
não buscam mais profile no Supabase
- useUserRole: retorna isAdmin=true pra qualquer user logado no Logto
- Reset de senha funcionou via Logto, só faltava o app liberar acesso
- Logto EXIGE PKCE, sem isso retorna 400 invalid_request
- client.ts: restaura generatePkce() com crypto.subtle
- Adiciona /callback route + Callback.tsx que processa ?code=
- useAuth expõe handleCallback() no contexto
- nginx já tem fallback SPA, então /callback carrega index.html
e React Router mostra a página de Callback
- Removi PKCE que usava crypto.subtle.digest + btoa
- Provavelmente crypto.subtle não funciona bem no navegador quando chamado via webpack/rollup tree-shaken
- Versão sem PKCE funciona pra apps SPA com confidential=false (que é nosso caso)
ARG/ENV precisam ser declarados no Dockerfile para Coolify
injetar via build-args na hora do build.
Sem isso, mesmo com envs configuradas no painel, o Vite
não vê as variaveis e o bundle sai sem endpoint Logto.
- Lazy loading de rotas com React.lazy + Suspense (code-splitting)
- main.tsx reduzido de 378 para ~55 linhas (roteamento data-driven)
- Novo routeConfig.ts e AppRoutes.tsx para configuração centralizada
- 601 console.logs dos componentes core migrados para logger centralizado
- Logger aprimorado com nível debug e tipagem melhorada
- Imports mal posicionados corrigidos (OptimizedCache, PerformanceMonitor)
- process.env.NODE_ENV substituído por import.meta.env.DEV (padrão Vite)
- QueryClient com retry backoff exponencial, gcTime e refetchOnWindowFocus
- Toaster duplicado removido do Layout.tsx (mantido no main.tsx)
- Vite build: chunks adicionais para date-fns, jspdf, lucide-react
- Dead code removido em ProtectedRouteByResource (branch unreachable)
- Nenhuma lógica de negócios alterada