fix: corrige bugs e anti-padroes da revisao de codigo - #30
Merged
Conversation
O replaceAll substituia < por < (String.raw sem escape e um no-op), entao a sanitizacao do script ld+json nao tinha efeito. Agora escapa para a sequencia unicode u003c, como manda o padrao. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…orto next-mdx-remote, @shikijs/rehype, remark-gfm e react-tweet-embed sao usados pelo MDXServer/TweetEmbed em producao, mas estavam em devDependencies — funcionava na Vercel, mas quebrava qualquer install --production. Remove tambem o script update:webperf, que referencia um diretorio packages/ que nao existe. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Remove src/base/links-graph (Dialog com dangerouslySetInnerHTML, Layout, getNodePosition), useReactFlowAttributionRemoval, graphPrint, mediaQuery e LocalStorage — nada em app/ ou src/ referencia esses arquivos. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
O core.autocrlf=true do Git do Windows regravava arquivos com CRLF no checkout/edicao, quebrando o hook do husky (shebang /bin/sh + CR nao executa) e o prettier --check no WSL. Com eol=lf no .gitattributes, qualquer git escreve LF no worktree independente de config local. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- O label do live game indexava QUEUE_LABELS (chaves numericas de queue id) com gameMode (string tipo CLASSIC), entao nunca resolvia. Agora usa gameQueueConfigId do spectator-v5, com fallback no gameMode cru. - Chamadas ao Data Dragon (CDN publico, sem auth) passavam o header X-Riot-Token; agora usam ddragonFetch, sem a credencial. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
A classe .light so era adicionada no useEffect do ThemeProvider, entao quem usa tema claro via um flash escuro a cada carregamento. Um script inline parser-blocking no inicio do body agora resolve o tema salvo (light/dark/system) e aplica classe + color-scheme antes do paint; o ThemeProvider assume depois da hidratacao. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
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.
Resumo
Correções de bugs e anti-padrões encontrados em revisão de código da base inteira.
Bugs corrigidos
app/blog/[...slug]/page.tsx): oreplaceAllusavaString.rawsem escape nenhum, substituindo<por<— um no-op. Agora escapa para a sequência unicodeu003c(com barra invertida), como manda o padrão para conteúdo dentro de<script>.src/lib/lol.ts):QUEUE_LABELS(chaves numéricas de queue id) era indexado comgameMode(string tipoCLASSIC), então o card de live game sempre exibia o valor cru. Agora usagameQueueConfigIddo spectator-v5, com fallback nogameMode.X-Riot-Token. NovoddragonFetchsem credencial.app/layout.tsx): a classe.lightsó era aplicada nouseEffectdo ThemeProvider — quem usa tema claro via um flash escuro a cada carregamento. Um script inline parser-blocking no início do<body>resolve o tema salvo antes do primeiro paint.core.autocrlf=truedo Git do Windows gravava o.husky/pre-commitcom CRLF (/bin/sh\r→ "cannot exec"), então lint/typecheck/prettier não rodavam em commit nenhum. Novo.gitattributescom* text=auto eol=lfimpede a recorrência.Anti-padrões
next-mdx-remote,@shikijs/rehype,remark-gfmereact-tweet-embedsão usados em produção (MDXServer/TweetEmbed) — movidos paradependencies. Funcionava na Vercel, mas quebrava qualquer install--production.src/base/links-graph/(incluía o únicodangerouslySetInnerHTMLdo projeto),useReactFlowAttributionRemoval,graphPrint,mediaQueryeLocalStorage— nada emapp/ousrc/referenciava esses arquivos.update:webperfreferenciava um diretóriopackages/inexistente.Validação
yarn typecheck,yarn linteprettier --checkpassam (e agora rodam de verdade no pre-commit, em todos os commits desta branch).yarn buildde produção completo passa com todas as rotas.🤖 Generated with Claude Code