Tutanus/Changelog

Changelog

Todas as mudanças notáveis deste repositório serão documentadas aqui.

O formato segue Keep a Changelog,
e este projeto adere ao Versionamento Semântico.

[0.9.0] - 2026-05-24

Adicionado

  • LSP (Language Server Protocol) Integration

    • Novo comando tutanus lsp para iniciar servidor LSP via stdio
    • Suporte a textDocument/didOpen, didChange, didSave com diagnósticos em tempo real
    • Baseado em vscode-languageserver e SDK do Tutanus
  • Docker Image Oficial

    • Dockerfile otimizado com multi-stage build e USER tutanus
    • Workflow CI para build e push automático para GitHub Container Registry (GHCR)
    • Imagem publicada em releases com tags semver
  • Parallel AST Parsing por Worker

    • Parsing de AST distribuído entre Worker Threads
    • Workers recebem apenas conteúdo bruto e parseiam localmente
    • Elimina overhead de structured clone de ASTs complexos

Melhorado

  • Parsing Lazy

    • ASTs são parseados sob demanda via ScopeAstCache apenas quando um analista realmente precisa
    • prepararComAst() removido do fluxo principal — economia de CPU em projetos grandes
    • Cache global (process-level) preservado para reaproveitamento entre execuções
  • Análise Incremental com Diff Estrutural

    • Nova função calcularHashEstrutural() extrai assinatura apenas de nós estruturais (imports, funções, classes, interfaces, tipos)
    • Fallback baseado em regex quando AST não está disponível
    • Mudanças de formatação/comentários não invalidam o cache incremental
    • Campo hashEstrutural adicionado ao estado incremental
  • Memory Pooling

    • Cache de supressões inline por arquivo (extrairSupressoes) — evita re-parsing a cada analista
    • Hoist do Map resultadosOtimizados no executor — reduz alocações por arquivo
    • Pool genérico ObjectPool<T> para reuso de objetos
  • Worker Pool

    • Stripping de ASTs antes da serialização para workers (structured clone mais leve)

[0.10.7] - 2026-05-28

Adicionado

  • Geração de Barrels Estruturados e Organizados
    • Novo comando tutanus barrels para gerenciar barrels (index.ts) do projeto
    • tutanus barrels --scan — varre o projeto e mostra quais barrels seriam criados/atualizados (dry-run)
    • tutanus barrels --generate — cria e atualiza barrels com exports organizados
    • Classificação automática de type vs value exports para compatibilidade com verbatimModuleSyntax
    • Detecção de conflitos (múltiplos arquivos exportando o mesmo nome)
    • Preservação de barrels "curados manualmente" (com código customizado)
    • Reorganização automática de barrels após movimentação de arquivos

Alterado

  • Reestruturação Mudou de Modificação Ativa para Sugestões
    • reestruturar agora gera apenas sugestões de reorganização — o usuário decide conscientemente o que aplicar
    • A lógica ativa de reestruturação de arquitetura foi removida por ser extremamente complexa e por cada projeto ter suas peculiaridades
    • As sugestões são salvas em arquivo JSON para revisão manual
    • O fluxo de diagnosticar passou a incluir sugestões estruturais não-destrutivas

Infra

  • Versão bump: 0.10.60.10.7

[0.10.0] - 2026-05-24

Adicionado

  • Streaming de Relatórios para Projetos Grandes

    • Nova classe RelatorioStream com gravação incremental em shards NDJSON
    • Compressão gzip por shard com manifesto de índice (stream-manifest.json)
    • Rotação automática por contagem de ocorrências ou bytes
    • pushOcorrencia() injetado no executor via callback para coleta em tempo real
    • Configs: REPORT_STREAM_ENABLED, REPORT_STREAM_AUTO_THRESHOLD, REPORT_STREAM_MAX_OCCURRENCES_PER_SHARD, REPORT_STREAM_MAX_BYTES_PER_SHARD, REPORT_STREAM_COMPRESS
    • Flag --stream no CLI diagnosticar
  • Suporte a Monorepos Avançado

    • Detector automático de monorepos: pnpm-workspace.yaml, lerna.json, nx.json, turbo.json, npm/yarn workspaces
    • Análise cross-package: versões inconsistentes, dependências internas faltando
    • Flag --monorepo no CLI com auto-descoberta de workspaces
    • Registrado como detector global no registry
  • Machine Learning para Detecção de Bugs

    • 8 padrões de bug com scoring estatístico: null pointer, memory leak, race condition, type assertion insegura, unhandled promise, deep nesting, magic numbers, comparação insegura
    • Extração de features (complexidade ciclomática, aninhamento, uso de any, etc.)
    • Probabilidade Bayesiana de bugs por arquivo com confidence scoring (0-100%)
    • Registrado como detector no registry
  • API Pública Consolidada e Estável (v1)

    • src/index.ts — entry point programático unificado
    • Subpath exports estáveis no package.json: ". ", "./sdk", "./api", "./types", "./bin"
    • analyzeFile, analyzeProject, iniciarServidorApi como API pública
  • Modo Server Headless

    • Novo comando tutanus serve para iniciar servidor HTTP REST API
    • Flags: --port, --host, --cors-origin, --daemon
    • Graceful shutdown em SIGTERM/SIGINT

Corrigido

  • swagger-jsdoc com require() em módulo ESM — convertido para import() dinâmico (src/api/services/swagger-config.ts)
  • Adicionados aliases @api e @api/server no tsconfig.json

Infra

  • Versão bump: 0.9.00.10.0

[0.8.0] - 2026-05-20

Adicionado

  • Marketplace de Analistas

    • Registro local e busca remota de analistas comunitários
    • Sistema de versionamento semver para analistas externos
    • CLI commands: search, install, remove, list, info, publish
    • API REST: /api/v1/marketplace/*
  • Suporte Multi-linguagem

    • Go: analistas para código, segurança, concorrência, recursos, boas práticas
    • Rust: analistas para código, segurança, memória, concorrência, boas práticas
    • Java/Kotlin: analistas para código, segurança, exceções, boas práticas
    • PHP avançado com parser dedicado

Melhorado

  • Performance e Infraestrutura
    • AnalysisCache persistente entre execuções com TTL configurável
    • Worker Pool configurável (maxWorkers, batchSize)
    • Suporte a múltiplos projetos simultâneos (flag --path)
    • Análise de vulnerabilidades em dependências
    • SDK exposto via tutanus/sdk (analyzeFile, analyzeProject)
    • Eliminação de fs.stat() redundante no preparo de AST
    • Hash consistente (XXH) entre executor e analysis-cache
    • Paralelismo real entre projetos (Promise.all)
    • Cache de AST entre analistas no mesmo escopo (ScopeAstCache)

[0.7.0] - 2026-05-18

Adicionado

  • Análise Assistida por IA

    • Integração com modelos de IA para sugestões de refatoração
    • Detecção de padrões avançada com IA
    • Recomendações automáticas de melhoria de código
  • Suporte Completo a Supressão Inline em Markdown

    • <!-- @tutanus-disable regra1 regra2 --> para supressão em bloco
    • <!-- @tutanus-disable-next-line regra --> para supressão de linha única
    • <!-- @tutanus-disable-all --> para suprimir todas as regras
    • Funciona com detector-markdown e analista-formatador
    • Compatibilidade com padrão legado <!-- tutanus-ignore: regra -->

Melhorado

  • GitHub Actions

    • Análise estruturada com YAML AST
    • Sistema de scoring (0-100) para workflows
    • Detectores de segurança, performance e boas práticas
  • Métricas Automáticas

    • Cálculo automático de scores baseado na estrutura real
    • Histórico de tendências com dados persistentes
  • SDK Programático

    • TutanusSDK.analisarGithubActions() para análise programática
    • TutanusSDK.analisarRepositorio() para análise global
    • TutanusSDK.registrarDetector() para plugins customizados

Corrigido

  • Detecções falsas positivas reduzidas com análise contextual
  • Tratamento de erros aprimorado em workflows malformados

[0.6.0] - 2026-04-13

Adicionado

  • Análise Avançada de GitHub Actions

    • Detecção aprimorada de problemas de segurança, performance e boas práticas
    • Análise estruturada com YAML AST para detecções mais precisas
    • Sistema de scoring (0-100) para workflows individuais
  • Métricas Automáticas do Projeto

    • Cálculo automático de scores baseado na estrutura real do projeto
    • Histórico de tendências com dados persistentes

Melhorado

  • SDK Programático

    • TutanusSDK.analisarGithubActions() para análise programática de workflows
    • TutanusSDK.analisarRepositorio() para análise global do repositório
    • TutanusSDK.registrarDetector() para registro de plugins customizados
  • Performance

    • Processamento paralelo de detectores
    • Cache de análise para workflows não modificados

Corrigido

  • Detecções falsas positivas reduzidas com análise contextual
  • Tratamento de erros aprimorado em workflows malformados

[0.5.0] - 2026-03-15

Adicionado

  • Sistema de plugins para GitHub Actions com detecção de segurança e boas práticas
  • Análise avançada de workflows com detecção de anti-padrões
  • Integração com SDK para análise programática

Melhorado

  • Performance do scanner de arquivos otimizada com processamento paralelo
  • Precisão dos detectores de código frágil e vazamentos de memória

[0.4.3] - 2026-02-20

Adicionado

  • Gerenciamento de Nomes de Variáveis
  • Novo comando names: Varre o projeto e extrai nomes de variáveis para mapeamento em names/name.txt.
  • Novo comando rename: Aplica renomeações de variáveis em massa baseadas no arquivo de mapeamento.
  • Script automatizado para sugestão de traduções (Português) para nomes de variáveis.

Alterado

  • Segurança de Tipagem
    • Refinamento massivo de tipos any e unknown em todo o core e CLI via fix-types.
    • Melhoria na inferência de tipos em callbacks assíncronos e interfaces de plugins.
  • Robustez do Renomeador
    • Implementação de lista de nomes protegidos para evitar renomeação acidental de propriedades nativas (Node.js/JS).
    • Ajuste no gerador de código para evitar erros de sintaxe em casts do TypeScript.

Corrigido

  • Erros de Compilação Correção de erros de sintaxe gerados pelo Babel em analista-html.ts, detector-markdown.ts e processamento-diagnostico.ts.
  • CLI Resolução do erro ERR_INVALID_MODULE_SPECIFIER na execução global do pacote via ESM loader.

[0.3.9] - 2026-02-19

Adicionado

  • Gerenciamento de Nomes de Variáveis*
    • Novo comando names: Varre o projeto e extrai nomes de variáveis para mapeamento em names/name.txt.
    • Novo comando rename: Aplica renomeações de variáveis em massa baseadas no arquivo de mapeamento.
    • Script automatizado para sugestão de traduções (Português) para nomes de variáveis.

Alterado

  • Segurança de Tipagem
    • Refinamento massivo de tipos any e unknown em todo o core e CLI via fix-types.
    • Melhoria na inferência de tipos em callbacks assíncronos e interfaces de plugins.
  • Robustez do Renomeador
    • Implementação de lista de nomes protegidos para evitar renomeação acidental de propriedades nativas (Node.js/JS).
    • Ajuste no gerador de código para evitar erros de sintaxe em casts do TypeScript.

Corrigido

  • Erros de Compilação* Correção de erros de sintaxe gerados pelo Babel em analista-html.ts, detector-markdown.ts e processamento-diagnostico.ts.
    • CLI Resolução do erro ERR_INVALID_MODULE_SPECIFIER na execução global do pacote via ESM loader.

[0.3.8] - 2026-02-18

Adicionado

  • Manutenção Documentação e CHANGELOG atualizados para refletir o estado real do projeto.
  • Refatoração Pequenas melhorias e correções de bugs.

[0.3.6] - 2026-01-23

Adicionado

  • Extração Avançada de Sinais Sistema inteligente de análise de sinais do projeto para reestruturação mais precisa

    • Detecção de padrões arquiteturais e tecnologias dominantes
    • Análise de complexidade estrutural para decisões estratégicas
    • Ajuste contextual de destinos baseado em sinais detectados
    • Integração com OperarioEstrutura para planejamento estratégico aprimorado
  • Validações Aprimoradas Melhorias em plugins de análise para CSS, HTML e XML

    • Validações de qualidade de código e acessibilidade
    • Verificações de segurança aprimoradas
    • Mensagens de validação expandidas
  • Sistema de Pontuação Contextual Mecanismo de pontuação que considera sinais avançados

    • Ajustes contextuais baseados na análise de projeto
    • Pontuação mais precisa para diferentes tipos de projeto

Alterado

  • Configuração Lint-Staged Otimização da configuração para melhor legibilidade e performance
  • Mapeamento de Reversão Melhorias na organização de importações e consistência

Corrigido

  • Segurança HTML Correção de expressão regular vulnerável na filtragem HTML (Code Scanning Alert #47)
  • Validações de Segurança Reforço das verificações de segurança em análise de HTML

Interno

  • Tipos Expandidos Novos campos em SinaisProjetoAvancados para detecção de padrões e tecnologias
  • Mensagens de Plugin Expansão das mensagens de validação para melhor feedback

[0.3.5] - 2026-01-23

[0.3.4] - 2026-01-23

Adicionado

  • Manutenção Documentação e CHANGELOG atualizados para refletir o estado real do projeto.
  • Refatoração Pequenas melhorias e correções de bugs.

[0.3.3] - 2026-01-21

Adicionado

  • Melhoria na estabilidade da saída JSON do comando diagnosticar para integração em CI.
  • Testes adicionais e validações em analistas que processam arquivos Markdown.

Alterado

  • Redução de falsos positivos em deteções de async não tratado em fluxos assíncronos.

Corrigido

  • Tratamento de erros assíncronos em mapa-reversao e correções menores em logs e mensagens.

[0.3.2] - 2026-01-19

Adicionado

  • Script md: add-disclaimer para inserir aviso de proveniência em arquivos Markdown.
  • Utilitários de manutenção para geração e verificação de relatórios.

Alterado

  • Melhorias na geração de relatórios e pequenas otimizações de performance.

Corrigido

  • Ajustes em documentação e comentários internos; correções de pequenos bugs em scripts.

[0.3.1] - 2026-01-17

Adicionado

  • Baseline de testes e ajustes iniciais na configuração do CI para validação de analistas.

Corrigido

  • Correções em flags do CLI (--export, --json) e comportamento de exportação de relatórios.

[0.3.0] - 2026-01-15

Adicionado

  • Novos Comandos CLI

    • formatar - Aplica formatação estilo Tutanus (whitespace, seções, finais de linha) com suporte a Prettier
    • otimizar-svg - Otimiza SVGs do projeto usando otimizador interno (svgo-like)
    • atualizar - Atualiza o Tutanus verificando integridade via Guardian antes
    • reverter - Gerencia mapa de reversão para moves aplicados (listar, arquivo, move, limpar)
  • Novos Analistas e Detectores

    • detector-arquitetura - Análise de padrões arquiteturais
    • detector-codigo-fragil - Identifica código frágil e propenso a bugs
    • detector-construcoes-sintaticas - Detecta construções sintáticas problemáticas
    • detector-duplicacoes - Identifica código duplicado
    • detector-interfaces-inline - Detecta interfaces inline que deveriam ser extraídas
    • detector-contexto-inteligente - Análise contextual avançada
    • detector-fantasmas - Detecta arquivos órfãos e não utilizados
    • detector-performance - Identifica problemas de performance
  • Plugins Multi-linguagem

    • analista-react e analista-react-hooks - Análise específica para React
    • analista-tailwind - Análise de classes Tailwind
    • analista-css e analista-css-in-js - Análise de estilos
    • analista-html e analista-xml - Análise de markup
    • analista-svg - Análise e otimização de SVGs
    • analista-python - Suporte heurístico para Python
    • detector-markdown - Validação de arquivos Markdown
    • detector-documentacao - Análise de qualidade de documentação
  • Sistema de Supressão Inline @tutanus-disable-next-line <regra> funciona para todos os analistas

  • Modos de Execução Expandidos

    • --executive - Modo executivo (apenas problemas críticos/alta prioridade)
    • --compact - Modo compacto (consolida progresso e mostra o essencial)
    • --trust-compiler - Confia no compilador para reduzir falsos positivos
  • Suporte a Mais Linguagens PHP, Python (heurístico)

Alterado

  • Node.js 24+ Agora requer Node.js ≥ 24.0.4
  • Refatoração do Sistema de Mensagens Mensagens centralizadas por domínio
  • Melhoria no Sistema de Pontuação Ajustes contextuais mais precisos
  • Guardian Integração mais profunda com comandos de atualização

Corrigido

  • Normalização de line endings para compatibilidade Windows/Linux
  • Falsos positivos em detecção de segredos em arquivos de documentação
  • Tratamento de placeholders em strings de configuração

Removido

  • Dependência circular interna em tutanus: file: tutanus-0.3.0.tgz (problema de empacotamento)

[0.2.0] - 2025-08-28

Adicionado

  • Pool de Workers Sistema completo de paralelização por arquivo para melhorar performance em projetos grandes

    • Classe WorkerPool com gerenciamento de workers paralelos
    • Sistema de lotes configurável (batchSize padrão: 10 arquivos por worker)
    • Timeout individual por analista (30s padrão) com cancelamento automático
    • Fallback automático para processamento sequencial quando workers desabilitados
    • Worker executor em JavaScript puro para threads separadas
    • Configuração centralizada via variáveis de ambiente
    • Função de conveniência processarComWorkers() para fácil integração
    • Estatísticas detalhadas do pool (workers ativos, erros, duração)
    • Testes completos com 9 cenários cobrindo configuração e processamento
  • Sistema de Schema Versioning Versionamento completo dos relatórios JSON

    • Metadados de versão (_schema) em todos os relatórios JSON
    • Validação automática de schema com compatibilidade backward
    • Migração automática de relatórios legados
    • Utilitários para leitura de relatórios versionados
    • Integração com gerador-relatorio.ts e relatorio-arquetipos.ts
    • Testes completos (27 testes passando)
  • Sistema de Pontuação Adaptativa Pontuação inteligente baseada no tamanho do projeto

    • Constantes adaptativas baseadas em número de arquivos e diretórios
    • Sistema de fatores escaláveis (1x a 5x) para diferentes tamanhos de projeto
    • Configuração centralizada em configuracao-pontuacao.ts com 3 modos
    • Pesos de arquétipo recalibrados para maior realismo
    • Sistema de confiança inteligente com ajustes contextuais
  • Correção Crítica Exclusão padrão de node_modules no comando diagnosticar

    • Aplicação automática de padrões de exclusão padrão quando nenhum filtro é especificado
    • Redução de ~70% nos arquivos escaneados (2111 → 633 arquivos)
    • Manutenção da compatibilidade com filtros explícitos
    • Validação através de testes específicos

Alterado

  • Correção de Exclusão Padrão Comando diagnosticar agora aplica corretamente padrões de exclusão padrão (node_modules/**, dist/**, coverage/**, etc.) quando nenhum filtro explícito é fornecido
  • Timeout por Analista Implementado timeout individual de 30 segundos por analista com cancelamento automático

Corrigido

  • Problema de Exclusão Correção crítica onde node_modules era escaneado mesmo sem filtros explícitos devido a configuração vazia de CLI_EXCLUDE_PATTERNS

[0.1.0] - 2025-08-18

Adicionado

  • CLI inicial com comandos: diagnosticar, guardian, podar, analistas, perf.
  • Biblioteca inicial de analistas (padrões de uso, funções longas, TODOs, estrutura, dependências).
  • Guardian com baseline e diffs; saída --json.

Infra

  • CI: lint, typecheck, testes, cobertura e gates.
  • Licenças e avisos de terceiros; scripts utilitários.