Thanks to visit codestin.com
Credit goes to github.com

Skip to content

perf(navigation): elimina waterfall de auth, adiciona prefetch e barra de progresso - #761

Open
maugarciasa wants to merge 1 commit into
melgarafael:mainfrom
maugarciasa:perf/otimizar-navegacao-e-auth
Open

perf(navigation): elimina waterfall de auth, adiciona prefetch e barra de progresso#761
maugarciasa wants to merge 1 commit into
melgarafael:mainfrom
maugarciasa:perf/otimizar-navegacao-e-auth

Conversation

@maugarciasa

Copy link
Copy Markdown
Contributor

Contexto e Problema

A troca de abas e navegação de rotas dentro do painel apresentava lentidão perceptível no navegador, com tempo de espera após o clique e sensação de travamento temporário.

Causas Identificadas:

  1. Waterfall de Autenticação Sequencial: A cada rota renderizada no servidor, loadAuthUser, resolveActiveOrg, isMfaEnrolled e requiresMfa executavam múltiplas viagens de rede ao Supabase em série e sem memoização de requisição.
  2. Ausência de Prefetch na Navegação: Os <Link> da sidebar não utilizavam prefetch={true}, obrigando o navegador a aguardar o clique para iniciar o download dos chunks e dados RSC.
  3. Falta de Feedback Imediato: O usuário não recebia nenhuma indicação visual nos primeiros milissegundos após clicar em outra aba.

Alterações Implementadas:

  1. Memoização de Requisição com React.cache() (lib/auth/server.ts):
    • Envolvidas loadAuthUser, resolveActiveOrg, isMfaEnrolled e requiresMfa com React.cache(), eliminando queries redundantes durante o mesmo ciclo de renderização.
    • Paralelizadas as consultas de platform_admins e user_organizations dentro de loadAuthUser com Promise.all.
  2. Paralelização no Layout Principal (app/app/layout.tsx):
    • Agrupadas as 4 consultas do layout (organizations, listarConexoesCaidas, isMfaEnrolled, requiresMfa) em um único Promise.all.
  3. Prefetch Ativo nos Links da Barra Lateral (components/shell/Sidebar.tsx):
    • Habilitado prefetch={true} nos itens do menu principal, hubs e rodapé para antecipar o carregamento.
  4. Barra de Progresso Instantânea (components/shell/BarraDeProgressoNavegacao.tsx & app/app/_components/AppShell.tsx):
    • Barra ultrafina no topo que dispara imediatamente em 0ms ao clicar em links internos, eliminando a percepção de clique não respondido.

Verificação e Testes:

  • pnpm typecheck: 100% verde (sem erros de compilação ou tipagem).
  • pnpm eslint: 100% verde.
  • Novo teste unitário criado: tests/unit/barra-de-progresso-navegacao.test.tsx (100% aprovado).
  • Testes unitários de regressão de auth, layout e sidebar todos aprovados.

@vercel

vercel Bot commented Sep 12, 2026

Copy link
Copy Markdown

@maugarciasa is attempting to deploy a commit to the rafael-maudibrasil's projects Team on Vercel.

A member of the Team first needs to authorize it.

@ecc-tools

ecc-tools Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

ECC Tools / Security Evidence

Commit: c98bf7c2ecde191543f5f12e37c163c38afd2a91

Security scanner evidence required (action_required)

Detected 1 security-sensitive predictive risk signal(s) without scanner evidence.

Mode: enforce

Findings:

  • Security-sensitive changes may ship without scanner evidence: The PR touches billing, secrets, auth, webhooks, agent, or CI-sensitive surfaces without adding obvious security scanner, code scanning, or security-focused validation evidence. (1 security-sensitive paths changed; 0 security scanner or security-focused validation artifacts changed)

Touched security-sensitive paths:

  • lib/auth/server.ts

Expected evidence:

  • Security scanner, code scanning, secret scanning, dependency/security review, or focused security regression output.
  • SARIF/code-scanning upload or equivalent pass/fail gate for the changed surface.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

ECC Tools / PR Risk Taxonomy

Commit: c98bf7c2ecde191543f5f12e37c163c38afd2a91

PR taxonomy review recommended (neutral)

Detected 2 PR taxonomy bucket(s): Security Evidence, CI/CD Recommendation.

Scanned 6 changed file(s).

Roadmap taxonomy buckets:

Security Evidence

Security-sensitive changes should carry explicit scanner, code-scanning, or focused regression evidence.

Signals:

  • Auth or permission changes may ship without security regression coverage
  • Security-sensitive changes may ship without scanner evidence
  • 1 security-sensitive path(s) changed

Paths:

  • lib/auth/server.ts

CI/CD Recommendation

CI, dependency, coverage, and contract signals should be routed into follow-up checks or verification work.

Signals:

  • User-facing UI changes may ship without browser coverage
  • 1 CI or workflow path(s) changed

Paths:

  • tests/unit/barra-de-progresso-navegacao.test.tsx
  • app/app/_components/AppShell.tsx
  • app/app/layout.tsx
  • components/shell/BarraDeProgressoNavegacao.tsx
  • components/shell/Sidebar.tsx
  • lib/auth/server.ts

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

ECC Tools / Reference Set Readiness

Commit: c98bf7c2ecde191543f5f12e37c163c38afd2a91

Reference set readiness gaps detected (neutral)

Reference evidence present for 0/7 areas (0%) across 6 changed file(s).

This check is based on files changed in this PR. Repository-level readiness is still reported by /ecc-tools analyze comments and generated manifests.

Area Status Evidence / Next Step
Deep analyzer corpus Missing Add analyzer fixture, golden, benchmark, or reference-set files that can catch analyzer regressions.
RAG/evaluator comparison Missing Add retrieval or evaluator reference-set comparison fixtures with expected ranking behavior.
PR salvage/review corpus Missing Add stale-PR, review-thread, reopen-flow, or salvage reference cases for queue cleanup automation.
Discussion triage corpus Missing Add public discussion triage fixtures, golden cases, or reference sets for informational, answered, and no-response classifications.
Harness compatibility Missing Add cross-harness, adapter-compliance, or harness-audit evidence for Claude, Codex, OpenCode, Zed, dmux, and agent surfaces.
Security evidence Missing Attach security evidence such as SBOMs, SARIF, audit reports, or AgentShield evidence packs.
CI failure-mode evidence Missing Add captured CI failure logs, dry-run fixtures, or troubleshooting docs for common workflow failure modes.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

ECC Tools / Hosted Promotion Readiness

Commit: c98bf7c2ecde191543f5f12e37c163c38afd2a91

Hosted promotion readiness passed (success)

No hosted promotion evidence gaps detected across 6 changed file(s); 0 corpus scenarios had matching evidence.

This check compares PR file changes against the evaluator/RAG promotion corpus in src/analyzers/fixtures/evaluator-rag-corpus.ts.
Hosted output scoring inspected 0 completed cached hosted job results.

No evaluator corpus scenarios matched this PR.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@github-actions

Copy link
Copy Markdown

Recebido, @maugarciasa — obrigado por isto.

Duas coisas que vão parecer erro seu e não são:

  • O check Vercel vermelho ("Authorization required to deploy") é esperado em PR de fork. A
    main faz deploy de produção e a Vercel se recusa a construir código de fora, o que está
    certo. Ele não entra no gate de merge.
  • No primeiro PR de quem nunca contribuiu aqui, os workflows ficam parados esperando
    liberação
    — política do GitHub, não sua. Enquanto isso o PR parece não ter check nenhum
    (nem o gh pr checks mostra os que estão nesse estado). Quem tria libera; você não precisa
    fazer nada.

Um mantenedor vai revisar de verdade — rodando os gates e reproduzindo o comportamento, não só
lendo o diff — e responde aqui em até um dia útil, com a medição junto, nunca com um "acho
que".

Esta mensagem é automática e não diz nada sobre o seu PR: ela é sobre o processo. O que vem
depois é pessoa.

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