perf(#238): Fase 2 — gate parcial do Git Nexus (codemap-symbols lazy)#250
Draft
Lucas-Belucci-Bellini wants to merge 1 commit into
Draft
perf(#238): Fase 2 — gate parcial do Git Nexus (codemap-symbols lazy)#250Lucas-Belucci-Bellini wants to merge 1 commit into
Lucas-Belucci-Bellini wants to merge 1 commit into
Conversation
O maior peso de /git-nexus era o codemap-symbols.json (~450 kB, 1137 funções), importado estático e baixado em toda visita. Agora: - src/data/codemap-symbols-meta.json (novo, ~4 kB): companion leve com meta + funções por arquivo, importado no boot (badges/hint/métricas). - src/pages/git-nexus.js: o grafo de símbolos completo virou lazy (import() dinâmico) — só carrega no modo Funções / drill-down. Web mantém o grafo de arquivos; o nível de funções carrega sob demanda. - scripts/gen-symbols.mjs: passa a emitir o companion junto do mapa cheio. Build: chunk git-nexus 438.5 kB -> 22.6 kB (gzip 48.8 -> 8.4 kB); os ~421 kB dos símbolos saem pra um chunk separado, sob demanda. Verificado no navegador (Playwright): Arquivos renderiza sem baixar símbolos; Funções carrega on-demand.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Mega-plano #238 · Fase 2 — gate parcial do Git Nexus
Decisão do operador: gate parcial — a web mantém o grafo (leve), só o pesado
fica sob demanda. Esta é a primeira fatia, e ela não depende do motor real
(logo, independe do PR #247): é otimização web pura, verificável na nuvem.
O problema (medição da Fase 1, no #238)
O maior peso de
/git-nexusera ocodemap-symbols.json(~450 kB, 1137funções), importado estático no topo de
git-nexus.js→ entrava no chunkda rota e baixava em toda visita, mesmo no modo Arquivos (que nem usa).
A solução (gate parcial)
src/data/codemap-symbols-meta.json(novo, ~4 kB): companion leve commeta+ funções por arquivo, importado no boot. Cobre o que a UI precisasempre: badges de drill-down, hint e métricas.
src/pages/git-nexus.js: o grafo de símbolos completo virou lazy(
import()dinâmico vialoadSymbolmap()) — só carrega ao abrir o modoFunções ou um drill-down.
switchModevirouasynce mostra"⏳ carregando funções…" no intervalo. O modo Arquivos (default na web)
segue no
codemap.json(47 kB) — grafo mantido.scripts/gen-symbols.mjs: passa a emitir o companion junto do mapa cheio(mantém os dois em sincronia em futuras regerações).
Resultado (build de produção)
git-nexus(rota)→ ~40 kB gzip a menos ao entrar em
/git-nexusna web; os símbolos só baixamse o usuário pedir o nível de funções.
Verificação (remota, Playwright)
performance.getEntriesByType('resource')antes/depois de clicar em Funções:beforeBig:false→ modo Arquivos não baixa os 421 kB. ✅afterBig:true→ Funções carrega o chunk sob demanda. ✅/git-nexussem regressão visual. Build limpo.CHANGELOG atualizado. Como é web puro e 100% verificável no remoto, está pronto
pra merge assim que o CI ficar verde (deixei draft pra você dar o ok).
🤖 Generated with Claude Code
Generated by Claude Code