Pular para conteúdo

Auditoria de código morto, deduplicação e dívida — v1.10.1

Data: 2026-08-10. Escopo: Python, FastAPI, React/TypeScript, extensão, scripts, testes e documentação.

Método

Foram confrontados rg --files, imports Python, referências de rotas, consumidores do PromptRegistry, scripts de release, OpenAPI, árvore TanStack gerada, testes e documentação. Um arquivo sem import direto não foi classificado como morto quando era entrypoint, fixture, migration, asset, gerador ou contrato de pacote.

Resultado

Achado Evidência Decisão
routeTree.gen.ts parece duplicar rotas gerado pelo plugin TanStack e consumido por router.tsx manter; não editar manualmente
scripts v1.9.9 parecem antigos são reprodução histórica de assets e migração, referenciados por docs manter como histórico, fora da jornada 1.10.1
stores JSON de oportunidades, Radar, fontes e Perfil possuem leitores e writers ativos não são código morto; dívida de migração documentada
apps/web/src/lib/api/client.ts e types.ts são grandes importados por todas as rotas existentes vivos; novos domínios foram separados em career-workflows.ts
componentes Radix Dialog/Sheet agora consumidos por preferências, onboarding, menu e ajuda duplicação de modal manual reduzida
scores fixos do Dashboard valores 78/74/81/66/18 sem origem real removidos; o painel usa somente match_score persistido
fontes Google Fonts dependência remota no CSS removida; pilha de fontes locais/sistema

Código removido

Não houve remoção em massa: nenhum módulo inteiro pôde ser provado morto com segurança. Foram removidos o modal móvel artesanal do shell, o componente privado MiniScore e os scores fictícios associados. Arquivos gerados, migrations e scripts históricos foram preservados.

Duplicações corrigidas

  • pairing e CSRF agora são escopados pela origem da API;
  • novos contratos de Interview/Career usam um cliente de domínio separado;
  • Opportunity e Taxonomy usam um único repositório SQLite v7;
  • ajuda, preferências e navegação usam metadados e catálogos compartilhados;
  • JSON Resume e registros profissionais deixaram de compartilhar semanticamente certificates.

Dívida real restante

  • client.ts e types.ts devem ser particionados incrementalmente;
  • stores JSON antigos continuam sendo a verdade dos contratos antigos até uma migração própria;
  • tradução integral do conteúdo histórico das rotas deve avançar por domínio; shell, navegação e fluxos 1.10.1 já usam catálogo tipado;
  • scripts históricos de screenshot podem ser movidos para uma pasta de arquivo em uma release futura.

Nenhum dos três arquivos protegidos por hash foi tratado como candidato de limpeza.