tutanus 0.12.2 → 0.12.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/README.md +1 -1
  2. package/dist/bin/index.d.ts.map +1 -1
  3. package/dist/bin/index.js +5 -0
  4. package/dist/bin/index.js.map +1 -1
  5. package/dist/cli/diagnostic/processing-diagnostic.d.ts.map +1 -1
  6. package/dist/cli/diagnostic/processing-diagnostic.js +1 -2
  7. package/dist/cli/diagnostic/processing-diagnostic.js.map +1 -1
  8. package/out/404/index.html +1 -0
  9. package/out/404.html +1 -0
  10. package/out/__next.__PAGE__.txt +9 -0
  11. package/out/__next._full.txt +18 -0
  12. package/out/__next._head.txt +5 -0
  13. package/out/__next._index.txt +6 -0
  14. package/out/__next._tree.txt +3 -0
  15. package/out/_next/static/chunks/05-c3ty_6dwfk.js +1 -0
  16. package/out/_next/static/chunks/0cz1d0mv5g_q7.js +1 -0
  17. package/out/_next/static/chunks/1061ff024jzvu.js +2 -0
  18. package/out/_next/static/chunks/14mrh2-p_w84d.js +1 -0
  19. package/out/_next/static/chunks/15orcrkp-_9ct.js +4 -0
  20. package/out/_next/static/chunks/1jq4o6yq14o4c.js +31 -0
  21. package/out/_next/static/chunks/1l-dhswmn6dl_.js +11 -0
  22. package/out/_next/static/chunks/1rxncug86bump.js +1 -0
  23. package/out/_next/static/chunks/2n-4qa9h44lgj.js +1 -0
  24. package/out/_next/static/chunks/3n7dm2ojtyzwn.js +1 -0
  25. package/out/_next/static/chunks/3uta7d_6k863-.css +1 -0
  26. package/out/_next/static/chunks/turbopack-2xb6mmb6_q43u.js +1 -0
  27. package/out/_next/static/media/icon-1.008jpsm4iakzh.png +0 -0
  28. package/out/_next/static/sHP-sIMshwWXMCtdszRWm/_buildManifest.js +11 -0
  29. package/out/_next/static/sHP-sIMshwWXMCtdszRWm/_clientMiddlewareManifest.js +1 -0
  30. package/out/_next/static/sHP-sIMshwWXMCtdszRWm/_ssgManifest.js +1 -0
  31. package/out/_not-found/__next._full.txt +16 -0
  32. package/out/_not-found/__next._head.txt +5 -0
  33. package/out/_not-found/__next._index.txt +6 -0
  34. package/out/_not-found/__next._not-found.__PAGE__.txt +5 -0
  35. package/out/_not-found/__next._not-found.txt +5 -0
  36. package/out/_not-found/__next._tree.txt +3 -0
  37. package/out/_not-found/index.html +1 -0
  38. package/out/_not-found/index.txt +16 -0
  39. package/out/changelog/__next._full.txt +573 -0
  40. package/out/changelog/__next._head.txt +5 -0
  41. package/out/changelog/__next._index.txt +6 -0
  42. package/out/changelog/__next._tree.txt +4 -0
  43. package/out/changelog/__next.changelog.__PAGE__.txt +560 -0
  44. package/out/changelog/__next.changelog.txt +5 -0
  45. package/out/changelog/index.html +550 -0
  46. package/out/changelog/index.txt +573 -0
  47. package/out/github/dashboard/__next._full.txt +20 -0
  48. package/out/github/dashboard/__next._head.txt +5 -0
  49. package/out/github/dashboard/__next._index.txt +6 -0
  50. package/out/github/dashboard/__next._tree.txt +3 -0
  51. package/out/github/dashboard/__next.github.dashboard.__PAGE__.txt +9 -0
  52. package/out/github/dashboard/__next.github.dashboard.txt +4 -0
  53. package/out/github/dashboard/__next.github.txt +5 -0
  54. package/out/github/dashboard/index.html +1 -0
  55. package/out/github/dashboard/index.txt +20 -0
  56. package/out/index.html +1 -0
  57. package/out/index.txt +18 -0
  58. package/out/privacy-policy/__next._full.txt +38 -0
  59. package/out/privacy-policy/__next._head.txt +5 -0
  60. package/out/privacy-policy/__next._index.txt +6 -0
  61. package/out/privacy-policy/__next._tree.txt +4 -0
  62. package/out/privacy-policy/__next.privacy-policy.__PAGE__.txt +23 -0
  63. package/out/privacy-policy/__next.privacy-policy.txt +5 -0
  64. package/out/privacy-policy/index.html +1 -0
  65. package/out/privacy-policy/index.txt +38 -0
  66. package/out/terms-of-use/__next._full.txt +37 -0
  67. package/out/terms-of-use/__next._head.txt +5 -0
  68. package/out/terms-of-use/__next._index.txt +6 -0
  69. package/out/terms-of-use/__next._tree.txt +4 -0
  70. package/out/terms-of-use/__next.terms-of-use.__PAGE__.txt +18 -0
  71. package/out/terms-of-use/__next.terms-of-use.txt +5 -0
  72. package/out/terms-of-use/index.html +1 -0
  73. package/out/terms-of-use/index.txt +37 -0
  74. package/package.json +2 -2
@@ -0,0 +1,550 @@
1
+ <!DOCTYPE html><html lang="pt-BR"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/icon-1.008jpsm4iakzh.png" as="image"/><link rel="stylesheet" href="/_next/static/chunks/3uta7d_6k863-.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1jq4o6yq14o4c.js"/><script src="/_next/static/chunks/15orcrkp-_9ct.js" async=""></script><script src="/_next/static/chunks/3n7dm2ojtyzwn.js" async=""></script><script src="/_next/static/chunks/1061ff024jzvu.js" async=""></script><script src="/_next/static/chunks/turbopack-2xb6mmb6_q43u.js" async=""></script><script src="/_next/static/chunks/05-c3ty_6dwfk.js" async=""></script><script src="/_next/static/chunks/14mrh2-p_w84d.js" async=""></script><script src="/_next/static/chunks/1rxncug86bump.js" async=""></script><link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css" as="style" crossorigin="anonymous" referrerPolicy="no-referrer"/><title>Tutanus — CLI de Análise, Diagnóstico e Manutenção de Projetos</title><meta name="description" content="CLI modular para análise estática, diagnóstico de segurança e manutenção de projetos JavaScript/TypeScript e multi-stack. Suporte a CI/CD, plugins, Guardian e mais."/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css" crossorigin="anonymous" referrerPolicy="no-referrer"/><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><main class="flex-1 w-full"><div class="min-h-screen bg-canvas text-emphasis"><header class="border-b border-border"><div class="max-w-4xl mx-auto px-6 py-4 flex items-center gap-3"><i class="fa-solid fa-fire text-accent"></i><a class="text-sm font-semibold text-emphasis hover:text-accent transition-colors" href="/">Tutanus</a><span class="text-muted text-xs">/</span><span class="text-xs text-muted">Changelog</span></div></header><main class="max-w-4xl mx-auto px-6 py-12"><div class="flex items-center gap-3 mb-8"><i class="fa-solid fa-timeline text-accent text-xl"></i><h1 class="text-2xl font-bold">Changelog</h1></div><div class="changelog-content text-sm text-muted leading-relaxed"><p>Todas as mudanças notáveis deste repositório serão documentadas aqui.</p>
2
+ <p>O formato segue <a href="https://keepachangelog.com/pt-BR/1.0.0/">Keep a Changelog</a>,<br>e este projeto adere ao <a href="https://semver.org/lang/pt-BR/">Versionamento Semântico</a>.</p>
3
+ <h2>[0.9.0] - 2026-05-24</h2>
4
+ <h3>Adicionado</h3>
5
+ <ul>
6
+ <li><p><strong>LSP (Language Server Protocol) Integration</strong></p>
7
+ <ul>
8
+ <li>Novo comando <code>tutanus lsp</code> para iniciar servidor LSP via stdio</li>
9
+ <li>Suporte a <code>textDocument/didOpen</code>, <code>didChange</code>, <code>didSave</code> com diagnósticos em tempo real</li>
10
+ <li>Baseado em <code>vscode-languageserver</code> e SDK do Tutanus</li>
11
+ </ul>
12
+ </li>
13
+ <li><p><strong>Docker Image Oficial</strong></p>
14
+ <ul>
15
+ <li>Dockerfile otimizado com multi-stage build e <code>USER tutanus</code></li>
16
+ <li>Workflow CI para build e push automático para GitHub Container Registry (GHCR)</li>
17
+ <li>Imagem publicada em releases com tags semver</li>
18
+ </ul>
19
+ </li>
20
+ <li><p><strong>Parallel AST Parsing por Worker</strong></p>
21
+ <ul>
22
+ <li>Parsing de AST distribuído entre Worker Threads</li>
23
+ <li>Workers recebem apenas conteúdo bruto e parseiam localmente</li>
24
+ <li>Elimina overhead de structured clone de ASTs complexos</li>
25
+ </ul>
26
+ </li>
27
+ </ul>
28
+ <h3>Melhorado</h3>
29
+ <ul>
30
+ <li><p><strong>Parsing Lazy</strong></p>
31
+ <ul>
32
+ <li>ASTs são parseados sob demanda via <code>ScopeAstCache</code> apenas quando um analista realmente precisa</li>
33
+ <li><code>prepararComAst()</code> removido do fluxo principal — economia de CPU em projetos grandes</li>
34
+ <li>Cache global (process-level) preservado para reaproveitamento entre execuções</li>
35
+ </ul>
36
+ </li>
37
+ <li><p><strong>Análise Incremental com Diff Estrutural</strong></p>
38
+ <ul>
39
+ <li>Nova função <code>calcularHashEstrutural()</code> extrai assinatura apenas de nós estruturais (imports, funções, classes, interfaces, tipos)</li>
40
+ <li>Fallback baseado em regex quando AST não está disponível</li>
41
+ <li>Mudanças de formatação/comentários não invalidam o cache incremental</li>
42
+ <li>Campo <code>hashEstrutural</code> adicionado ao estado incremental</li>
43
+ </ul>
44
+ </li>
45
+ <li><p><strong>Memory Pooling</strong></p>
46
+ <ul>
47
+ <li>Cache de supressões inline por arquivo (<code>extrairSupressoes</code>) — evita re-parsing a cada analista</li>
48
+ <li>Hoist do Map <code>resultadosOtimizados</code> no executor — reduz alocações por arquivo</li>
49
+ <li>Pool genérico <code>ObjectPool&lt;T&gt;</code> para reuso de objetos</li>
50
+ </ul>
51
+ </li>
52
+ <li><p><strong>Worker Pool</strong></p>
53
+ <ul>
54
+ <li>Stripping de ASTs antes da serialização para workers (structured clone mais leve)</li>
55
+ </ul>
56
+ </li>
57
+ </ul>
58
+ <h2>[0.10.7] - 2026-05-28</h2>
59
+ <h3>Adicionado</h3>
60
+ <ul>
61
+ <li><strong>Geração de Barrels Estruturados e Organizados</strong><ul>
62
+ <li>Novo comando <code>tutanus barrels</code> para gerenciar barrels (index.ts) do projeto</li>
63
+ <li><code>tutanus barrels --scan</code> — varre o projeto e mostra quais barrels seriam criados/atualizados (dry-run)</li>
64
+ <li><code>tutanus barrels --generate</code> — cria e atualiza barrels com exports organizados</li>
65
+ <li>Classificação automática de <code>type</code> vs <code>value</code> exports para compatibilidade com <code>verbatimModuleSyntax</code></li>
66
+ <li>Detecção de conflitos (múltiplos arquivos exportando o mesmo nome)</li>
67
+ <li>Preservação de barrels &quot;curados manualmente&quot; (com código customizado)</li>
68
+ <li>Reorganização automática de barrels após movimentação de arquivos</li>
69
+ </ul>
70
+ </li>
71
+ </ul>
72
+ <h3>Alterado</h3>
73
+ <ul>
74
+ <li><strong>Reestruturação Mudou de Modificação Ativa para Sugestões</strong><ul>
75
+ <li><code>reestruturar</code> agora gera apenas <strong>sugestões</strong> de reorganização — o usuário decide conscientemente o que aplicar</li>
76
+ <li>A lógica ativa de reestruturação de arquitetura foi removida por ser extremamente complexa e por cada projeto ter suas peculiaridades</li>
77
+ <li>As sugestões são salvas em arquivo JSON para revisão manual</li>
78
+ <li>O fluxo de <code>diagnosticar</code> passou a incluir sugestões estruturais não-destrutivas</li>
79
+ </ul>
80
+ </li>
81
+ </ul>
82
+ <h3>Infra</h3>
83
+ <ul>
84
+ <li>Versão bump: <code>0.10.6</code> → <code>0.10.7</code></li>
85
+ </ul>
86
+ <h2>[0.10.0] - 2026-05-24</h2>
87
+ <h3>Adicionado</h3>
88
+ <ul>
89
+ <li><p><strong>Streaming de Relatórios para Projetos Grandes</strong></p>
90
+ <ul>
91
+ <li>Nova classe <code>RelatorioStream</code> com gravação incremental em shards NDJSON</li>
92
+ <li>Compressão gzip por shard com manifesto de índice (<code>stream-manifest.json</code>)</li>
93
+ <li>Rotação automática por contagem de ocorrências ou bytes</li>
94
+ <li><code>pushOcorrencia()</code> injetado no executor via callback para coleta em tempo real</li>
95
+ <li>Configs: <code>REPORT_STREAM_ENABLED</code>, <code>REPORT_STREAM_AUTO_THRESHOLD</code>, <code>REPORT_STREAM_MAX_OCCURRENCES_PER_SHARD</code>, <code>REPORT_STREAM_MAX_BYTES_PER_SHARD</code>, <code>REPORT_STREAM_COMPRESS</code></li>
96
+ <li>Flag <code>--stream</code> no CLI <code>diagnosticar</code></li>
97
+ </ul>
98
+ </li>
99
+ <li><p><strong>Suporte a Monorepos Avançado</strong></p>
100
+ <ul>
101
+ <li>Detector automático de monorepos: pnpm-workspace.yaml, lerna.json, nx.json, turbo.json, npm/yarn workspaces</li>
102
+ <li>Análise cross-package: versões inconsistentes, dependências internas faltando</li>
103
+ <li>Flag <code>--monorepo</code> no CLI com auto-descoberta de workspaces</li>
104
+ <li>Registrado como detector global no registry</li>
105
+ </ul>
106
+ </li>
107
+ <li><p><strong>Machine Learning para Detecção de Bugs</strong></p>
108
+ <ul>
109
+ <li>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</li>
110
+ <li>Extração de features (complexidade ciclomática, aninhamento, uso de <code>any</code>, etc.)</li>
111
+ <li>Probabilidade Bayesiana de bugs por arquivo com confidence scoring (0-100%)</li>
112
+ <li>Registrado como detector no registry</li>
113
+ </ul>
114
+ </li>
115
+ <li><p><strong>API Pública Consolidada e Estável (v1)</strong></p>
116
+ <ul>
117
+ <li><code>src/index.ts</code> — entry point programático unificado</li>
118
+ <li>Subpath exports estáveis no package.json: <code>&quot;. &quot;</code>, <code>&quot;./sdk&quot;</code>, <code>&quot;./api&quot;</code>, <code>&quot;./types&quot;</code>, <code>&quot;./bin&quot;</code></li>
119
+ <li><code>analyzeFile</code>, <code>analyzeProject</code>, <code>iniciarServidorApi</code> como API pública</li>
120
+ </ul>
121
+ </li>
122
+ <li><p><strong>Modo Server Headless</strong></p>
123
+ <ul>
124
+ <li>Novo comando <code>tutanus serve</code> para iniciar servidor HTTP REST API</li>
125
+ <li>Flags: <code>--port</code>, <code>--host</code>, <code>--cors-origin</code>, <code>--daemon</code></li>
126
+ <li>Graceful shutdown em SIGTERM/SIGINT</li>
127
+ </ul>
128
+ </li>
129
+ </ul>
130
+ <h3>Corrigido</h3>
131
+ <ul>
132
+ <li><code>swagger-jsdoc</code> com <code>require()</code> em módulo ESM — convertido para <code>import()</code> dinâmico (<code>src/api/services/swagger-config.ts</code>)</li>
133
+ <li>Adicionados aliases <code>@api</code> e <code>@api/server</code> no tsconfig.json</li>
134
+ </ul>
135
+ <h3>Infra</h3>
136
+ <ul>
137
+ <li>Versão bump: <code>0.9.0</code> → <code>0.10.0</code></li>
138
+ </ul>
139
+ <hr>
140
+ <h2>[0.8.0] - 2026-05-20</h2>
141
+ <h3>Adicionado</h3>
142
+ <ul>
143
+ <li><p><strong>Marketplace de Analistas</strong></p>
144
+ <ul>
145
+ <li>Registro local e busca remota de analistas comunitários</li>
146
+ <li>Sistema de versionamento semver para analistas externos</li>
147
+ <li>CLI commands: <code>search</code>, <code>install</code>, <code>remove</code>, <code>list</code>, <code>info</code>, <code>publish</code></li>
148
+ <li>API REST: <code>/api/v1/marketplace/*</code></li>
149
+ </ul>
150
+ </li>
151
+ <li><p><strong>Suporte Multi-linguagem</strong></p>
152
+ <ul>
153
+ <li>Go: analistas para código, segurança, concorrência, recursos, boas práticas</li>
154
+ <li>Rust: analistas para código, segurança, memória, concorrência, boas práticas</li>
155
+ <li>Java/Kotlin: analistas para código, segurança, exceções, boas práticas</li>
156
+ <li>PHP avançado com parser dedicado</li>
157
+ </ul>
158
+ </li>
159
+ </ul>
160
+ <h3>Melhorado</h3>
161
+ <ul>
162
+ <li><strong>Performance e Infraestrutura</strong><ul>
163
+ <li><code>AnalysisCache</code> persistente entre execuções com TTL configurável</li>
164
+ <li>Worker Pool configurável (<code>maxWorkers</code>, <code>batchSize</code>)</li>
165
+ <li>Suporte a múltiplos projetos simultâneos (flag <code>--path</code>)</li>
166
+ <li>Análise de vulnerabilidades em dependências</li>
167
+ <li>SDK exposto via <code>tutanus/sdk</code> (<code>analyzeFile</code>, <code>analyzeProject</code>)</li>
168
+ <li>Eliminação de <code>fs.stat()</code> redundante no preparo de AST</li>
169
+ <li>Hash consistente (XXH) entre executor e analysis-cache</li>
170
+ <li>Paralelismo real entre projetos (<code>Promise.all</code>)</li>
171
+ <li>Cache de AST entre analistas no mesmo escopo (<code>ScopeAstCache</code>)</li>
172
+ </ul>
173
+ </li>
174
+ </ul>
175
+ <h2>[0.7.0] - 2026-05-18</h2>
176
+ <h3>Adicionado</h3>
177
+ <ul>
178
+ <li><p><strong>Análise Assistida por IA</strong></p>
179
+ <ul>
180
+ <li>Integração com modelos de IA para sugestões de refatoração</li>
181
+ <li>Detecção de padrões avançada com IA</li>
182
+ <li>Recomendações automáticas de melhoria de código</li>
183
+ </ul>
184
+ </li>
185
+ <li><p><strong>Suporte Completo a Supressão Inline em Markdown</strong></p>
186
+ <ul>
187
+ <li><code>&lt;!-- @tutanus-disable regra1 regra2 --&gt;</code> para supressão em bloco</li>
188
+ <li><code>&lt;!-- @tutanus-disable-next-line regra --&gt;</code> para supressão de linha única</li>
189
+ <li><code>&lt;!-- @tutanus-disable-all --&gt;</code> para suprimir todas as regras</li>
190
+ <li>Funciona com <code>detector-markdown</code> e <code>analista-formatador</code></li>
191
+ <li>Compatibilidade com padrão legado <code>&lt;!-- tutanus-ignore: regra --&gt;</code></li>
192
+ </ul>
193
+ </li>
194
+ </ul>
195
+ <h3>Melhorado</h3>
196
+ <ul>
197
+ <li><p><strong>GitHub Actions</strong></p>
198
+ <ul>
199
+ <li>Análise estruturada com YAML AST</li>
200
+ <li>Sistema de scoring (0-100) para workflows</li>
201
+ <li>Detectores de segurança, performance e boas práticas</li>
202
+ </ul>
203
+ </li>
204
+ <li><p><strong>Métricas Automáticas</strong></p>
205
+ <ul>
206
+ <li>Cálculo automático de scores baseado na estrutura real</li>
207
+ <li>Histórico de tendências com dados persistentes</li>
208
+ </ul>
209
+ </li>
210
+ <li><p><strong>SDK Programático</strong></p>
211
+ <ul>
212
+ <li><code>TutanusSDK.analisarGithubActions()</code> para análise programática</li>
213
+ <li><code>TutanusSDK.analisarRepositorio()</code> para análise global</li>
214
+ <li><code>TutanusSDK.registrarDetector()</code> para plugins customizados</li>
215
+ </ul>
216
+ </li>
217
+ </ul>
218
+ <h3>Corrigido</h3>
219
+ <ul>
220
+ <li>Detecções falsas positivas reduzidas com análise contextual</li>
221
+ <li>Tratamento de erros aprimorado em workflows malformados</li>
222
+ </ul>
223
+ <h2>[0.6.0] - 2026-04-13</h2>
224
+ <h3>Adicionado</h3>
225
+ <ul>
226
+ <li><p><strong>Análise Avançada de GitHub Actions</strong></p>
227
+ <ul>
228
+ <li>Detecção aprimorada de problemas de segurança, performance e boas práticas</li>
229
+ <li>Análise estruturada com YAML AST para detecções mais precisas</li>
230
+ <li>Sistema de scoring (0-100) para workflows individuais</li>
231
+ </ul>
232
+ </li>
233
+ <li><p><strong>Métricas Automáticas do Projeto</strong></p>
234
+ <ul>
235
+ <li>Cálculo automático de scores baseado na estrutura real do projeto</li>
236
+ <li>Histórico de tendências com dados persistentes</li>
237
+ </ul>
238
+ </li>
239
+ </ul>
240
+ <h3>Melhorado</h3>
241
+ <ul>
242
+ <li><p><strong>SDK Programático</strong></p>
243
+ <ul>
244
+ <li><code>TutanusSDK.analisarGithubActions()</code> para análise programática de workflows</li>
245
+ <li><code>TutanusSDK.analisarRepositorio()</code> para análise global do repositório</li>
246
+ <li><code>TutanusSDK.registrarDetector()</code> para registro de plugins customizados</li>
247
+ </ul>
248
+ </li>
249
+ <li><p><strong>Performance</strong></p>
250
+ <ul>
251
+ <li>Processamento paralelo de detectores</li>
252
+ <li>Cache de análise para workflows não modificados</li>
253
+ </ul>
254
+ </li>
255
+ </ul>
256
+ <h3>Corrigido</h3>
257
+ <ul>
258
+ <li>Detecções falsas positivas reduzidas com análise contextual</li>
259
+ <li>Tratamento de erros aprimorado em workflows malformados</li>
260
+ </ul>
261
+ <h2>[0.5.0] - 2026-03-15</h2>
262
+ <h3>Adicionado</h3>
263
+ <ul>
264
+ <li>Sistema de plugins para GitHub Actions com detecção de segurança e boas práticas</li>
265
+ <li>Análise avançada de workflows com detecção de anti-padrões</li>
266
+ <li>Integração com SDK para análise programática</li>
267
+ </ul>
268
+ <h3>Melhorado</h3>
269
+ <ul>
270
+ <li>Performance do scanner de arquivos otimizada com processamento paralelo</li>
271
+ <li>Precisão dos detectores de código frágil e vazamentos de memória</li>
272
+ </ul>
273
+ <h2>[0.4.3] - 2026-02-20</h2>
274
+ <h3>Adicionado</h3>
275
+ <ul>
276
+ <li><strong>Gerenciamento de Nomes de Variáveis</strong></li>
277
+ <li>Novo comando <code>names</code>: Varre o projeto e extrai nomes de variáveis para mapeamento em <code>names/name.txt</code>.</li>
278
+ <li>Novo comando <code>rename</code>: Aplica renomeações de variáveis em massa baseadas no arquivo de mapeamento.</li>
279
+ <li>Script automatizado para sugestão de traduções (Português) para nomes de variáveis.</li>
280
+ </ul>
281
+ <h3>Alterado</h3>
282
+ <ul>
283
+ <li><strong>Segurança de Tipagem</strong><ul>
284
+ <li>Refinamento massivo de tipos <code>any</code> e <code>unknown</code> em todo o core e CLI via <code>fix-types</code>.</li>
285
+ <li>Melhoria na inferência de tipos em callbacks assíncronos e interfaces de plugins.</li>
286
+ </ul>
287
+ </li>
288
+ <li><strong>Robustez do Renomeador</strong><ul>
289
+ <li>Implementação de lista de nomes protegidos para evitar renomeação acidental de propriedades nativas (Node.js/JS).</li>
290
+ <li>Ajuste no gerador de código para evitar erros de sintaxe em casts do TypeScript.</li>
291
+ </ul>
292
+ </li>
293
+ </ul>
294
+ <h3>Corrigido</h3>
295
+ <ul>
296
+ <li><strong>Erros de Compilação</strong> Correção de erros de sintaxe gerados pelo Babel em <code>analista-html.ts</code>, <code>detector-markdown.ts</code> e <code>processamento-diagnostico.ts</code>.</li>
297
+ <li><strong>CLI</strong> Resolução do erro <code>ERR_INVALID_MODULE_SPECIFIER</code> na execução global do pacote via ESM loader.</li>
298
+ </ul>
299
+ <h2>[0.3.9] - 2026-02-19</h2>
300
+ <h3>Adicionado</h3>
301
+ <ul>
302
+ <li><strong>Gerenciamento</strong> de Nomes de Variáveis*<ul>
303
+ <li>Novo comando <code>names</code>: Varre o projeto e extrai nomes de variáveis para mapeamento em <code>names/name.txt</code>.</li>
304
+ <li>Novo comando <code>rename</code>: Aplica renomeações de variáveis em massa baseadas no arquivo de mapeamento.</li>
305
+ <li>Script automatizado para sugestão de traduções (Português) para nomes de variáveis.</li>
306
+ </ul>
307
+ </li>
308
+ </ul>
309
+ <h3>Alterado</h3>
310
+ <ul>
311
+ <li><strong>Segurança</strong> de <em>Tipagem</em><ul>
312
+ <li>Refinamento massivo de tipos <code>any</code> e <code>unknown</code> em todo o core e CLI via <code>fix-types</code>.</li>
313
+ <li>Melhoria na inferência de tipos em callbacks assíncronos e interfaces de plugins.</li>
314
+ </ul>
315
+ </li>
316
+ <li><strong>Robustez</strong> do <em>Renomeador</em><ul>
317
+ <li>Implementação de lista de nomes protegidos para evitar renomeação acidental de propriedades nativas (Node.js/JS).</li>
318
+ <li>Ajuste no gerador de código para evitar erros de sintaxe em casts do TypeScript.</li>
319
+ </ul>
320
+ </li>
321
+ </ul>
322
+ <h3>Corrigido</h3>
323
+ <ul>
324
+ <li><strong>Erros</strong> de Compilação* Correção de erros de sintaxe gerados pelo Babel em <code>analista-html.ts</code>, <code>detector-markdown.ts</code> e <code>processamento-diagnostico.ts</code>.<ul>
325
+ <li><em>CLI</em> Resolução do erro <code>ERR_INVALID_MODULE_SPECIFIER</code> na execução global do pacote via ESM loader.</li>
326
+ </ul>
327
+ </li>
328
+ </ul>
329
+ <h2>[0.3.8] - 2026-02-18</h2>
330
+ <h3>Adicionado</h3>
331
+ <ul>
332
+ <li><strong>Manutenção</strong> Documentação e CHANGELOG atualizados para refletir o estado real do projeto.</li>
333
+ <li><strong>Refatoração</strong> Pequenas melhorias e correções de bugs.</li>
334
+ </ul>
335
+ <h2>[0.3.6] - 2026-01-23</h2>
336
+ <h3>Adicionado</h3>
337
+ <ul>
338
+ <li><p><strong>Extração Avançada de Sinais</strong> Sistema inteligente de análise de sinais do projeto para reestruturação mais precisa</p>
339
+ <ul>
340
+ <li>Detecção de padrões arquiteturais e tecnologias dominantes</li>
341
+ <li>Análise de complexidade estrutural para decisões estratégicas</li>
342
+ <li>Ajuste contextual de destinos baseado em sinais detectados</li>
343
+ <li>Integração com <code>OperarioEstrutura</code> para planejamento estratégico aprimorado</li>
344
+ </ul>
345
+ </li>
346
+ <li><p><strong>Validações Aprimoradas</strong> Melhorias em plugins de análise para CSS, HTML e XML</p>
347
+ <ul>
348
+ <li>Validações de qualidade de código e acessibilidade</li>
349
+ <li>Verificações de segurança aprimoradas</li>
350
+ <li>Mensagens de validação expandidas</li>
351
+ </ul>
352
+ </li>
353
+ <li><p><strong>Sistema de Pontuação Contextual</strong> Mecanismo de pontuação que considera sinais avançados</p>
354
+ <ul>
355
+ <li>Ajustes contextuais baseados na análise de projeto</li>
356
+ <li>Pontuação mais precisa para diferentes tipos de projeto</li>
357
+ </ul>
358
+ </li>
359
+ </ul>
360
+ <h3>Alterado</h3>
361
+ <ul>
362
+ <li><strong>Configuração Lint-Staged</strong> Otimização da configuração para melhor legibilidade e performance</li>
363
+ <li><strong>Mapeamento de Reversão</strong> Melhorias na organização de importações e consistência</li>
364
+ </ul>
365
+ <h3>Corrigido</h3>
366
+ <ul>
367
+ <li><strong>Segurança HTML</strong> Correção de expressão regular vulnerável na filtragem HTML (Code Scanning Alert #47)</li>
368
+ <li><strong>Validações de Segurança</strong> Reforço das verificações de segurança em análise de HTML</li>
369
+ </ul>
370
+ <h3>Interno</h3>
371
+ <ul>
372
+ <li><strong>Tipos Expandidos</strong> Novos campos em <code>SinaisProjetoAvancados</code> para detecção de padrões e tecnologias</li>
373
+ <li><strong>Mensagens de Plugin</strong> Expansão das mensagens de validação para melhor feedback</li>
374
+ </ul>
375
+ <h2>[0.3.5] - 2026-01-23</h2>
376
+ <h2>[0.3.4] - 2026-01-23</h2>
377
+ <h3>Adicionado</h3>
378
+ <ul>
379
+ <li><strong>Manutenção</strong> Documentação e CHANGELOG atualizados para refletir o estado real do projeto.</li>
380
+ <li><strong>Refatoração</strong> Pequenas melhorias e correções de bugs.</li>
381
+ </ul>
382
+ <h2>[0.3.3] - 2026-01-21</h2>
383
+ <h3>Adicionado</h3>
384
+ <ul>
385
+ <li>Melhoria na estabilidade da saída JSON do comando <code>diagnosticar</code> para integração em CI.</li>
386
+ <li>Testes adicionais e validações em analistas que processam arquivos Markdown.</li>
387
+ </ul>
388
+ <h3>Alterado</h3>
389
+ <ul>
390
+ <li>Redução de falsos positivos em deteções de async não tratado em fluxos assíncronos.</li>
391
+ </ul>
392
+ <h3>Corrigido</h3>
393
+ <ul>
394
+ <li>Tratamento de erros assíncronos em <code>mapa-reversao</code> e correções menores em logs e mensagens.</li>
395
+ </ul>
396
+ <h2>[0.3.2] - 2026-01-19</h2>
397
+ <h3>Adicionado</h3>
398
+ <ul>
399
+ <li>Script <code>md: add-disclaimer</code> para inserir aviso de proveniência em arquivos Markdown.</li>
400
+ <li>Utilitários de manutenção para geração e verificação de relatórios.</li>
401
+ </ul>
402
+ <h3>Alterado</h3>
403
+ <ul>
404
+ <li>Melhorias na geração de relatórios e pequenas otimizações de performance.</li>
405
+ </ul>
406
+ <h3>Corrigido</h3>
407
+ <ul>
408
+ <li>Ajustes em documentação e comentários internos; correções de pequenos bugs em scripts.</li>
409
+ </ul>
410
+ <h2>[0.3.1] - 2026-01-17</h2>
411
+ <h3>Adicionado</h3>
412
+ <ul>
413
+ <li>Baseline de testes e ajustes iniciais na configuração do CI para validação de analistas.</li>
414
+ </ul>
415
+ <h3>Corrigido</h3>
416
+ <ul>
417
+ <li>Correções em flags do CLI (<code>--export</code>, <code>--json</code>) e comportamento de exportação de relatórios.</li>
418
+ </ul>
419
+ <h2>[0.3.0] - 2026-01-15</h2>
420
+ <h3>Adicionado</h3>
421
+ <ul>
422
+ <li><p><strong>Novos Comandos CLI</strong></p>
423
+ <ul>
424
+ <li><code>formatar</code> - Aplica formatação estilo Tutanus (whitespace, seções, finais de linha) com suporte a Prettier</li>
425
+ <li><code>otimizar-svg</code> - Otimiza SVGs do projeto usando otimizador interno (svgo-like)</li>
426
+ <li><code>atualizar</code> - Atualiza o Tutanus verificando integridade via Guardian antes</li>
427
+ <li><code>reverter</code> - Gerencia mapa de reversão para moves aplicados (listar, arquivo, move, limpar)</li>
428
+ </ul>
429
+ </li>
430
+ <li><p><strong>Novos Analistas e Detectores</strong></p>
431
+ <ul>
432
+ <li><code>detector-arquitetura</code> - Análise de padrões arquiteturais</li>
433
+ <li><code>detector-codigo-fragil</code> - Identifica código frágil e propenso a bugs</li>
434
+ <li><code>detector-construcoes-sintaticas</code> - Detecta construções sintáticas problemáticas</li>
435
+ <li><code>detector-duplicacoes</code> - Identifica código duplicado</li>
436
+ <li><code>detector-interfaces-inline</code> - Detecta interfaces inline que deveriam ser extraídas</li>
437
+ <li><code>detector-contexto-inteligente</code> - Análise contextual avançada</li>
438
+ <li><code>detector-fantasmas</code> - Detecta arquivos órfãos e não utilizados</li>
439
+ <li><code>detector-performance</code> - Identifica problemas de performance</li>
440
+ </ul>
441
+ </li>
442
+ <li><p><strong>Plugins Multi-linguagem</strong></p>
443
+ <ul>
444
+ <li><code>analista-react</code> e <code>analista-react-hooks</code> - Análise específica para React</li>
445
+ <li><code>analista-tailwind</code> - Análise de classes Tailwind</li>
446
+ <li><code>analista-css</code> e <code>analista-css-in-js</code> - Análise de estilos</li>
447
+ <li><code>analista-html</code> e <code>analista-xml</code> - Análise de markup</li>
448
+ <li><code>analista-svg</code> - Análise e otimização de SVGs</li>
449
+ <li><code>analista-python</code> - Suporte heurístico para Python</li>
450
+ <li><code>detector-markdown</code> - Validação de arquivos Markdown</li>
451
+ <li><code>detector-documentacao</code> - Análise de qualidade de documentação</li>
452
+ </ul>
453
+ </li>
454
+ <li><p><strong>Sistema de Supressão Inline</strong> <code>@tutanus-disable-next-line &lt;regra&gt;</code> funciona para todos os analistas</p>
455
+ </li>
456
+ <li><p><strong>Modos de Execução Expandidos</strong></p>
457
+ <ul>
458
+ <li><code>--executive</code> - Modo executivo (apenas problemas críticos/alta prioridade)</li>
459
+ <li><code>--compact</code> - Modo compacto (consolida progresso e mostra o essencial)</li>
460
+ <li><code>--trust-compiler</code> - Confia no compilador para reduzir falsos positivos</li>
461
+ </ul>
462
+ </li>
463
+ <li><p><strong>Suporte a Mais Linguagens</strong> PHP, Python (heurístico)</p>
464
+ </li>
465
+ </ul>
466
+ <h3>Alterado</h3>
467
+ <ul>
468
+ <li><strong>Node.js 24+</strong> Agora requer Node.js ≥ 24.0.4</li>
469
+ <li><strong>Refatoração do Sistema de Mensagens</strong> Mensagens centralizadas por domínio</li>
470
+ <li><strong>Melhoria no Sistema de Pontuação</strong> Ajustes contextuais mais precisos</li>
471
+ <li><strong>Guardian</strong> Integração mais profunda com comandos de atualização</li>
472
+ </ul>
473
+ <h3>Corrigido</h3>
474
+ <ul>
475
+ <li>Normalização de line endings para compatibilidade Windows/Linux</li>
476
+ <li>Falsos positivos em detecção de segredos em arquivos de documentação</li>
477
+ <li>Tratamento de placeholders em strings de configuração</li>
478
+ </ul>
479
+ <h3>Removido</h3>
480
+ <ul>
481
+ <li>Dependência circular interna em <code>tutanus: file: tutanus-0.3.0.tgz</code> (problema de empacotamento)</li>
482
+ </ul>
483
+ <hr>
484
+ <h2>[0.2.0] - 2025-08-28</h2>
485
+ <h3>Adicionado</h3>
486
+ <ul>
487
+ <li><p><strong>Pool de Workers</strong> Sistema completo de paralelização por arquivo para melhorar performance em projetos grandes</p>
488
+ <ul>
489
+ <li>Classe WorkerPool com gerenciamento de workers paralelos</li>
490
+ <li>Sistema de lotes configurável (batchSize padrão: 10 arquivos por worker)</li>
491
+ <li>Timeout individual por analista (30s padrão) com cancelamento automático</li>
492
+ <li>Fallback automático para processamento sequencial quando workers desabilitados</li>
493
+ <li>Worker executor em JavaScript puro para threads separadas</li>
494
+ <li>Configuração centralizada via variáveis de ambiente</li>
495
+ <li>Função de conveniência <code>processarComWorkers()</code> para fácil integração</li>
496
+ <li>Estatísticas detalhadas do pool (workers ativos, erros, duração)</li>
497
+ <li>Testes completos com 9 cenários cobrindo configuração e processamento</li>
498
+ </ul>
499
+ </li>
500
+ <li><p><strong>Sistema de Schema Versioning</strong> Versionamento completo dos relatórios JSON</p>
501
+ <ul>
502
+ <li>Metadados de versão (<code>_schema</code>) em todos os relatórios JSON</li>
503
+ <li>Validação automática de schema com compatibilidade backward</li>
504
+ <li>Migração automática de relatórios legados</li>
505
+ <li>Utilitários para leitura de relatórios versionados</li>
506
+ <li>Integração com <code>gerador-relatorio.ts</code> e <code>relatorio-arquetipos.ts</code></li>
507
+ <li>Testes completos (27 testes passando)</li>
508
+ </ul>
509
+ </li>
510
+ <li><p><strong>Sistema de Pontuação Adaptativa</strong> Pontuação inteligente baseada no tamanho do projeto</p>
511
+ <ul>
512
+ <li>Constantes adaptativas baseadas em número de arquivos e diretórios</li>
513
+ <li>Sistema de fatores escaláveis (1x a 5x) para diferentes tamanhos de projeto</li>
514
+ <li>Configuração centralizada em <code>configuracao-pontuacao.ts</code> com 3 modos</li>
515
+ <li>Pesos de arquétipo recalibrados para maior realismo</li>
516
+ <li>Sistema de confiança inteligente com ajustes contextuais</li>
517
+ </ul>
518
+ </li>
519
+ <li><p><strong>Correção Crítica</strong> Exclusão padrão de <code>node_modules</code> no comando <code>diagnosticar</code></p>
520
+ <ul>
521
+ <li>Aplicação automática de padrões de exclusão padrão quando nenhum filtro é especificado</li>
522
+ <li>Redução de ~70% nos arquivos escaneados (2111 → 633 arquivos)</li>
523
+ <li>Manutenção da compatibilidade com filtros explícitos</li>
524
+ <li>Validação através de testes específicos</li>
525
+ </ul>
526
+ </li>
527
+ </ul>
528
+ <h3>Alterado</h3>
529
+ <ul>
530
+ <li><strong>Correção de Exclusão Padrão</strong> Comando <code>diagnosticar</code> agora aplica corretamente padrões de exclusão padrão (<code>node_modules/**</code>, <code>dist/**</code>, <code>coverage/**</code>, etc.) quando nenhum filtro explícito é fornecido</li>
531
+ <li><strong>Timeout por Analista</strong> Implementado timeout individual de 30 segundos por analista com cancelamento automático</li>
532
+ </ul>
533
+ <h3>Corrigido</h3>
534
+ <ul>
535
+ <li><strong>Problema de Exclusão</strong> Correção crítica onde <code>node_modules</code> era escaneado mesmo sem filtros explícitos devido a configuração vazia de <code>CLI_EXCLUDE_PATTERNS</code></li>
536
+ </ul>
537
+ <h2>[0.1.0] - 2025-08-18</h2>
538
+ <h3>Adicionado</h3>
539
+ <ul>
540
+ <li>CLI inicial com comandos: <code>diagnosticar</code>, <code>guardian</code>, <code>podar</code>, <code>analistas</code>, <code>perf</code>.</li>
541
+ <li>Biblioteca inicial de analistas (padrões de uso, funções longas, TODOs, estrutura, dependências).</li>
542
+ <li>Guardian com baseline e diffs; saída <code>--json</code>.</li>
543
+ </ul>
544
+ <h3>Infra</h3>
545
+ <ul>
546
+ <li>CI: lint, typecheck, testes, cobertura e gates.</li>
547
+ <li>Licenças e avisos de terceiros; scripts utilitários.</li>
548
+ </ul>
549
+ <hr>
550
+ </div><div class="mt-12 pt-6 border-t border-border text-center"><a class="text-accent text-sm hover:underline" href="/"><i class="fa-solid fa-arrow-left mr-1"></i>Voltar para a página inicial</a></div></main><footer class="border-t border-border"><div class="max-w-6xl mx-auto px-6 py-8"><div class="flex flex-col sm:flex-row items-center justify-between gap-4"><div class="flex items-center gap-3"><img src="/_next/static/media/icon-1.008jpsm4iakzh.png" alt="Tutanus" class="w-5 h-5"/><span class="text-sm font-semibold text-emphasis">Black Diaz</span><span class="text-xs text-muted">MIT-0</span></div><div class="flex items-center gap-5 text-xs text-muted"><a href="https://github.com/blue-diaz/tutanus" target="_blank" rel="noopener noreferrer" class="hover:text-accent transition-colors"><i class="fa-brands fa-github mr-1"></i>GitHub</a><a href="/privacy-policy" class="hover:text-accent transition-colors"><i class="fa-solid fa-shield mr-1"></i>Privacidade</a><a href="/changelog" class="hover:text-accent transition-colors"><i class="fa-solid fa-timeline mr-1"></i>Changelog</a><a href="/terms-of-use" class="hover:text-accent transition-colors"><i class="fa-solid fa-file-lines mr-1"></i>Termos</a></div></div></div></footer></div><!--$--><!--/$--></main><script src="/_next/static/chunks/1jq4o6yq14o4c.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\"]\n4:I[22016,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\",\"/_next/static/chunks/1rxncug86bump.js\"],\"\"]\nc:I[68027,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/3uta7d_6k863-.css\",\"style\"]\n:HL[\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css\",\"style\",{\"crossOrigin\":\"anonymous\",\"referrerPolicy\":\"no-referrer\"}]\n5:T661e,"])</script><script>self.__next_f.push([1,"\u003cp\u003eTodas as mudanças notáveis deste repositório serão documentadas aqui.\u003c/p\u003e\n\u003cp\u003eO formato segue \u003ca href=\"https://keepachangelog.com/pt-BR/1.0.0/\"\u003eKeep a Changelog\u003c/a\u003e,\u003cbr\u003ee este projeto adere ao \u003ca href=\"https://semver.org/lang/pt-BR/\"\u003eVersionamento Semântico\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e[0.9.0] - 2026-05-24\u003c/h2\u003e\n\u003ch3\u003eAdicionado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eLSP (Language Server Protocol) Integration\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNovo comando \u003ccode\u003etutanus lsp\u003c/code\u003e para iniciar servidor LSP via stdio\u003c/li\u003e\n\u003cli\u003eSuporte a \u003ccode\u003etextDocument/didOpen\u003c/code\u003e, \u003ccode\u003edidChange\u003c/code\u003e, \u003ccode\u003edidSave\u003c/code\u003e com diagnósticos em tempo real\u003c/li\u003e\n\u003cli\u003eBaseado em \u003ccode\u003evscode-languageserver\u003c/code\u003e e SDK do Tutanus\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eDocker Image Oficial\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDockerfile otimizado com multi-stage build e \u003ccode\u003eUSER tutanus\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWorkflow CI para build e push automático para GitHub Container Registry (GHCR)\u003c/li\u003e\n\u003cli\u003eImagem publicada em releases com tags semver\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eParallel AST Parsing por Worker\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eParsing de AST distribuído entre Worker Threads\u003c/li\u003e\n\u003cli\u003eWorkers recebem apenas conteúdo bruto e parseiam localmente\u003c/li\u003e\n\u003cli\u003eElimina overhead de structured clone de ASTs complexos\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMelhorado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eParsing Lazy\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eASTs são parseados sob demanda via \u003ccode\u003eScopeAstCache\u003c/code\u003e apenas quando um analista realmente precisa\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eprepararComAst()\u003c/code\u003e removido do fluxo principal — economia de CPU em projetos grandes\u003c/li\u003e\n\u003cli\u003eCache global (process-level) preservado para reaproveitamento entre execuções\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eAnálise Incremental com Diff Estrutural\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNova função \u003ccode\u003ecalcularHashEstrutural()\u003c/code\u003e extrai assinatura apenas de nós estruturais (imports, funções, classes, interfaces, tipos)\u003c/li\u003e\n\u003cli\u003eFallback baseado em regex quando AST não está disponível\u003c/li\u003e\n\u003cli\u003eMudanças de formatação/comentários não invalidam o cache incremental\u003c/li\u003e\n\u003cli\u003eCampo \u003ccode\u003ehashEstrutural\u003c/code\u003e adicionado ao estado incremental\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eMemory Pooling\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCache de supressões inline por arquivo (\u003ccode\u003eextrairSupressoes\u003c/code\u003e) — evita re-parsing a cada analista\u003c/li\u003e\n\u003cli\u003eHoist do Map \u003ccode\u003eresultadosOtimizados\u003c/code\u003e no executor — reduz alocações por arquivo\u003c/li\u003e\n\u003cli\u003ePool genérico \u003ccode\u003eObjectPool\u0026lt;T\u0026gt;\u003c/code\u003e para reuso de objetos\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eWorker Pool\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eStripping de ASTs antes da serialização para workers (structured clone mais leve)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.10.7] - 2026-05-28\u003c/h2\u003e\n\u003ch3\u003eAdicionado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eGeração de Barrels Estruturados e Organizados\u003c/strong\u003e\u003cul\u003e\n\u003cli\u003eNovo comando \u003ccode\u003etutanus barrels\u003c/code\u003e para gerenciar barrels (index.ts) do projeto\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003etutanus barrels --scan\u003c/code\u003e — varre o projeto e mostra quais barrels seriam criados/atualizados (dry-run)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003etutanus barrels --generate\u003c/code\u003e — cria e atualiza barrels com exports organizados\u003c/li\u003e\n\u003cli\u003eClassificação automática de \u003ccode\u003etype\u003c/code\u003e vs \u003ccode\u003evalue\u003c/code\u003e exports para compatibilidade com \u003ccode\u003everbatimModuleSyntax\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDetecção de conflitos (múltiplos arquivos exportando o mesmo nome)\u003c/li\u003e\n\u003cli\u003ePreservação de barrels \u0026quot;curados manualmente\u0026quot; (com código customizado)\u003c/li\u003e\n\u003cli\u003eReorganização automática de barrels após movimentação de arquivos\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAlterado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eReestruturação Mudou de Modificação Ativa para Sugestões\u003c/strong\u003e\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ereestruturar\u003c/code\u003e agora gera apenas \u003cstrong\u003esugestões\u003c/strong\u003e de reorganização — o usuário decide conscientemente o que aplicar\u003c/li\u003e\n\u003cli\u003eA lógica ativa de reestruturação de arquitetura foi removida por ser extremamente complexa e por cada projeto ter suas peculiaridades\u003c/li\u003e\n\u003cli\u003eAs sugestões são salvas em arquivo JSON para revisão manual\u003c/li\u003e\n\u003cli\u003eO fluxo de \u003ccode\u003ediagnosticar\u003c/code\u003e passou a incluir sugestões estruturais não-destrutivas\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInfra\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVersão bump: \u003ccode\u003e0.10.6\u003c/code\u003e → \u003ccode\u003e0.10.7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.10.0] - 2026-05-24\u003c/h2\u003e\n\u003ch3\u003eAdicionado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eStreaming de Relatórios para Projetos Grandes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNova classe \u003ccode\u003eRelatorioStream\u003c/code\u003e com gravação incremental em shards NDJSON\u003c/li\u003e\n\u003cli\u003eCompressão gzip por shard com manifesto de índice (\u003ccode\u003estream-manifest.json\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRotação automática por contagem de ocorrências ou bytes\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epushOcorrencia()\u003c/code\u003e injetado no executor via callback para coleta em tempo real\u003c/li\u003e\n\u003cli\u003eConfigs: \u003ccode\u003eREPORT_STREAM_ENABLED\u003c/code\u003e, \u003ccode\u003eREPORT_STREAM_AUTO_THRESHOLD\u003c/code\u003e, \u003ccode\u003eREPORT_STREAM_MAX_OCCURRENCES_PER_SHARD\u003c/code\u003e, \u003ccode\u003eREPORT_STREAM_MAX_BYTES_PER_SHARD\u003c/code\u003e, \u003ccode\u003eREPORT_STREAM_COMPRESS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFlag \u003ccode\u003e--stream\u003c/code\u003e no CLI \u003ccode\u003ediagnosticar\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eSuporte a Monorepos Avançado\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDetector automático de monorepos: pnpm-workspace.yaml, lerna.json, nx.json, turbo.json, npm/yarn workspaces\u003c/li\u003e\n\u003cli\u003eAnálise cross-package: versões inconsistentes, dependências internas faltando\u003c/li\u003e\n\u003cli\u003eFlag \u003ccode\u003e--monorepo\u003c/code\u003e no CLI com auto-descoberta de workspaces\u003c/li\u003e\n\u003cli\u003eRegistrado como detector global no registry\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eMachine Learning para Detecção de Bugs\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e8 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\u003c/li\u003e\n\u003cli\u003eExtração de features (complexidade ciclomática, aninhamento, uso de \u003ccode\u003eany\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eProbabilidade Bayesiana de bugs por arquivo com confidence scoring (0-100%)\u003c/li\u003e\n\u003cli\u003eRegistrado como detector no registry\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eAPI Pública Consolidada e Estável (v1)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esrc/index.ts\u003c/code\u003e — entry point programático unificado\u003c/li\u003e\n\u003cli\u003eSubpath exports estáveis no package.json: \u003ccode\u003e\u0026quot;. \u0026quot;\u003c/code\u003e, \u003ccode\u003e\u0026quot;./sdk\u0026quot;\u003c/code\u003e, \u003ccode\u003e\u0026quot;./api\u0026quot;\u003c/code\u003e, \u003ccode\u003e\u0026quot;./types\u0026quot;\u003c/code\u003e, \u003ccode\u003e\u0026quot;./bin\u0026quot;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanalyzeFile\u003c/code\u003e, \u003ccode\u003eanalyzeProject\u003c/code\u003e, \u003ccode\u003einiciarServidorApi\u003c/code\u003e como API pública\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eModo Server Headless\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNovo comando \u003ccode\u003etutanus serve\u003c/code\u003e para iniciar servidor HTTP REST API\u003c/li\u003e\n\u003cli\u003eFlags: \u003ccode\u003e--port\u003c/code\u003e, \u003ccode\u003e--host\u003c/code\u003e, \u003ccode\u003e--cors-origin\u003c/code\u003e, \u003ccode\u003e--daemon\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGraceful shutdown em SIGTERM/SIGINT\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCorrigido\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eswagger-jsdoc\u003c/code\u003e com \u003ccode\u003erequire()\u003c/code\u003e em módulo ESM — convertido para \u003ccode\u003eimport()\u003c/code\u003e dinâmico (\u003ccode\u003esrc/api/services/swagger-config.ts\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdicionados aliases \u003ccode\u003e@api\u003c/code\u003e e \u003ccode\u003e@api/server\u003c/code\u003e no tsconfig.json\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInfra\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVersão bump: \u003ccode\u003e0.9.0\u003c/code\u003e → \u003ccode\u003e0.10.0\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003ch2\u003e[0.8.0] - 2026-05-20\u003c/h2\u003e\n\u003ch3\u003eAdicionado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eMarketplace de Analistas\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegistro local e busca remota de analistas comunitários\u003c/li\u003e\n\u003cli\u003eSistema de versionamento semver para analistas externos\u003c/li\u003e\n\u003cli\u003eCLI commands: \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003einstall\u003c/code\u003e, \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003einfo\u003c/code\u003e, \u003ccode\u003epublish\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAPI REST: \u003ccode\u003e/api/v1/marketplace/*\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eSuporte Multi-linguagem\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGo: analistas para código, segurança, concorrência, recursos, boas práticas\u003c/li\u003e\n\u003cli\u003eRust: analistas para código, segurança, memória, concorrência, boas práticas\u003c/li\u003e\n\u003cli\u003eJava/Kotlin: analistas para código, segurança, exceções, boas práticas\u003c/li\u003e\n\u003cli\u003ePHP avançado com parser dedicado\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMelhorado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ePerformance e Infraestrutura\u003c/strong\u003e\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eAnalysisCache\u003c/code\u003e persistente entre execuções com TTL configurável\u003c/li\u003e\n\u003cli\u003eWorker Pool configurável (\u003ccode\u003emaxWorkers\u003c/code\u003e, \u003ccode\u003ebatchSize\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSuporte a múltiplos projetos simultâneos (flag \u003ccode\u003e--path\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAnálise de vulnerabilidades em dependências\u003c/li\u003e\n\u003cli\u003eSDK exposto via \u003ccode\u003etutanus/sdk\u003c/code\u003e (\u003ccode\u003eanalyzeFile\u003c/code\u003e, \u003ccode\u003eanalyzeProject\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eEliminação de \u003ccode\u003efs.stat()\u003c/code\u003e redundante no preparo de AST\u003c/li\u003e\n\u003cli\u003eHash consistente (XXH) entre executor e analysis-cache\u003c/li\u003e\n\u003cli\u003eParalelismo real entre projetos (\u003ccode\u003ePromise.all\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCache de AST entre analistas no mesmo escopo (\u003ccode\u003eScopeAstCache\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.7.0] - 2026-05-18\u003c/h2\u003e\n\u003ch3\u003eAdicionado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eAnálise Assistida por IA\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIntegração com modelos de IA para sugestões de refatoração\u003c/li\u003e\n\u003cli\u003eDetecção de padrões avançada com IA\u003c/li\u003e\n\u003cli\u003eRecomendações automáticas de melhoria de código\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eSuporte Completo a Supressão Inline em Markdown\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;!-- @tutanus-disable regra1 regra2 --\u0026gt;\u003c/code\u003e para supressão em bloco\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;!-- @tutanus-disable-next-line regra --\u0026gt;\u003c/code\u003e para supressão de linha única\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;!-- @tutanus-disable-all --\u0026gt;\u003c/code\u003e para suprimir todas as regras\u003c/li\u003e\n\u003cli\u003eFunciona com \u003ccode\u003edetector-markdown\u003c/code\u003e e \u003ccode\u003eanalista-formatador\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eCompatibilidade com padrão legado \u003ccode\u003e\u0026lt;!-- tutanus-ignore: regra --\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMelhorado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eGitHub Actions\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAnálise estruturada com YAML AST\u003c/li\u003e\n\u003cli\u003eSistema de scoring (0-100) para workflows\u003c/li\u003e\n\u003cli\u003eDetectores de segurança, performance e boas práticas\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eMétricas Automáticas\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCálculo automático de scores baseado na estrutura real\u003c/li\u003e\n\u003cli\u003eHistórico de tendências com dados persistentes\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eSDK Programático\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eTutanusSDK.analisarGithubActions()\u003c/code\u003e para análise programática\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTutanusSDK.analisarRepositorio()\u003c/code\u003e para análise global\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTutanusSDK.registrarDetector()\u003c/code\u003e para plugins customizados\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCorrigido\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDetecções falsas positivas reduzidas com análise contextual\u003c/li\u003e\n\u003cli\u003eTratamento de erros aprimorado em workflows malformados\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.6.0] - 2026-04-13\u003c/h2\u003e\n\u003ch3\u003eAdicionado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eAnálise Avançada de GitHub Actions\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDetecção aprimorada de problemas de segurança, performance e boas práticas\u003c/li\u003e\n\u003cli\u003eAnálise estruturada com YAML AST para detecções mais precisas\u003c/li\u003e\n\u003cli\u003eSistema de scoring (0-100) para workflows individuais\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eMétricas Automáticas do Projeto\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCálculo automático de scores baseado na estrutura real do projeto\u003c/li\u003e\n\u003cli\u003eHistórico de tendências com dados persistentes\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMelhorado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eSDK Programático\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eTutanusSDK.analisarGithubActions()\u003c/code\u003e para análise programática de workflows\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTutanusSDK.analisarRepositorio()\u003c/code\u003e para análise global do repositório\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTutanusSDK.registrarDetector()\u003c/code\u003e para registro de plugins customizados\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003ePerformance\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProcessamento paralelo de detectores\u003c/li\u003e\n\u003cli\u003eCache de análise para workflows não modificados\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCorrigido\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDetecções falsas positivas reduzidas com análise contextual\u003c/li\u003e\n\u003cli\u003eTratamento de erros aprimorado em workflows malformados\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.5.0] - 2026-03-15\u003c/h2\u003e\n\u003ch3\u003eAdicionado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSistema de plugins para GitHub Actions com detecção de segurança e boas práticas\u003c/li\u003e\n\u003cli\u003eAnálise avançada de workflows com detecção de anti-padrões\u003c/li\u003e\n\u003cli\u003eIntegração com SDK para análise programática\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMelhorado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePerformance do scanner de arquivos otimizada com processamento paralelo\u003c/li\u003e\n\u003cli\u003ePrecisão dos detectores de código frágil e vazamentos de memória\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.4.3] - 2026-02-20\u003c/h2\u003e\n\u003ch3\u003eAdicionado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eGerenciamento de Nomes de Variáveis\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eNovo comando \u003ccode\u003enames\u003c/code\u003e: Varre o projeto e extrai nomes de variáveis para mapeamento em \u003ccode\u003enames/name.txt\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eNovo comando \u003ccode\u003erename\u003c/code\u003e: Aplica renomeações de variáveis em massa baseadas no arquivo de mapeamento.\u003c/li\u003e\n\u003cli\u003eScript automatizado para sugestão de traduções (Português) para nomes de variáveis.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAlterado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSegurança de Tipagem\u003c/strong\u003e\u003cul\u003e\n\u003cli\u003eRefinamento massivo de tipos \u003ccode\u003eany\u003c/code\u003e e \u003ccode\u003eunknown\u003c/code\u003e em todo o core e CLI via \u003ccode\u003efix-types\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eMelhoria na inferência de tipos em callbacks assíncronos e interfaces de plugins.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRobustez do Renomeador\u003c/strong\u003e\u003cul\u003e\n\u003cli\u003eImplementação de lista de nomes protegidos para evitar renomeação acidental de propriedades nativas (Node.js/JS).\u003c/li\u003e\n\u003cli\u003eAjuste no gerador de código para evitar erros de sintaxe em casts do TypeScript.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCorrigido\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eErros de Compilação\u003c/strong\u003e Correção de erros de sintaxe gerados pelo Babel em \u003ccode\u003eanalista-html.ts\u003c/code\u003e, \u003ccode\u003edetector-markdown.ts\u003c/code\u003e e \u003ccode\u003eprocessamento-diagnostico.ts\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCLI\u003c/strong\u003e Resolução do erro \u003ccode\u003eERR_INVALID_MODULE_SPECIFIER\u003c/code\u003e na execução global do pacote via ESM loader.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.3.9] - 2026-02-19\u003c/h2\u003e\n\u003ch3\u003eAdicionado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eGerenciamento\u003c/strong\u003e de Nomes de Variáveis*\u003cul\u003e\n\u003cli\u003eNovo comando \u003ccode\u003enames\u003c/code\u003e: Varre o projeto e extrai nomes de variáveis para mapeamento em \u003ccode\u003enames/name.txt\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eNovo comando \u003ccode\u003erename\u003c/code\u003e: Aplica renomeações de variáveis em massa baseadas no arquivo de mapeamento.\u003c/li\u003e\n\u003cli\u003eScript automatizado para sugestão de traduções (Português) para nomes de variáveis.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAlterado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSegurança\u003c/strong\u003e de \u003cem\u003eTipagem\u003c/em\u003e\u003cul\u003e\n\u003cli\u003eRefinamento massivo de tipos \u003ccode\u003eany\u003c/code\u003e e \u003ccode\u003eunknown\u003c/code\u003e em todo o core e CLI via \u003ccode\u003efix-types\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eMelhoria na inferência de tipos em callbacks assíncronos e interfaces de plugins.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRobustez\u003c/strong\u003e do \u003cem\u003eRenomeador\u003c/em\u003e\u003cul\u003e\n\u003cli\u003eImplementação de lista de nomes protegidos para evitar renomeação acidental de propriedades nativas (Node.js/JS).\u003c/li\u003e\n\u003cli\u003eAjuste no gerador de código para evitar erros de sintaxe em casts do TypeScript.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCorrigido\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eErros\u003c/strong\u003e de Compilação* Correção de erros de sintaxe gerados pelo Babel em \u003ccode\u003eanalista-html.ts\u003c/code\u003e, \u003ccode\u003edetector-markdown.ts\u003c/code\u003e e \u003ccode\u003eprocessamento-diagnostico.ts\u003c/code\u003e.\u003cul\u003e\n\u003cli\u003e\u003cem\u003eCLI\u003c/em\u003e Resolução do erro \u003ccode\u003eERR_INVALID_MODULE_SPECIFIER\u003c/code\u003e na execução global do pacote via ESM loader.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.3.8] - 2026-02-18\u003c/h2\u003e\n\u003ch3\u003eAdicionado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eManutenção\u003c/strong\u003e Documentação e CHANGELOG atualizados para refletir o estado real do projeto.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRefatoração\u003c/strong\u003e Pequenas melhorias e correções de bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.3.6] - 2026-01-23\u003c/h2\u003e\n\u003ch3\u003eAdicionado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eExtração Avançada de Sinais\u003c/strong\u003e Sistema inteligente de análise de sinais do projeto para reestruturação mais precisa\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDetecção de padrões arquiteturais e tecnologias dominantes\u003c/li\u003e\n\u003cli\u003eAnálise de complexidade estrutural para decisões estratégicas\u003c/li\u003e\n\u003cli\u003eAjuste contextual de destinos baseado em sinais detectados\u003c/li\u003e\n\u003cli\u003eIntegração com \u003ccode\u003eOperarioEstrutura\u003c/code\u003e para planejamento estratégico aprimorado\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eValidações Aprimoradas\u003c/strong\u003e Melhorias em plugins de análise para CSS, HTML e XML\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eValidações de qualidade de código e acessibilidade\u003c/li\u003e\n\u003cli\u003eVerificações de segurança aprimoradas\u003c/li\u003e\n\u003cli\u003eMensagens de validação expandidas\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eSistema de Pontuação Contextual\u003c/strong\u003e Mecanismo de pontuação que considera sinais avançados\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAjustes contextuais baseados na análise de projeto\u003c/li\u003e\n\u003cli\u003ePontuação mais precisa para diferentes tipos de projeto\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAlterado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eConfiguração Lint-Staged\u003c/strong\u003e Otimização da configuração para melhor legibilidade e performance\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMapeamento de Reversão\u003c/strong\u003e Melhorias na organização de importações e consistência\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCorrigido\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSegurança HTML\u003c/strong\u003e Correção de expressão regular vulnerável na filtragem HTML (Code Scanning Alert #47)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eValidações de Segurança\u003c/strong\u003e Reforço das verificações de segurança em análise de HTML\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInterno\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTipos Expandidos\u003c/strong\u003e Novos campos em \u003ccode\u003eSinaisProjetoAvancados\u003c/code\u003e para detecção de padrões e tecnologias\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMensagens de Plugin\u003c/strong\u003e Expansão das mensagens de validação para melhor feedback\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.3.5] - 2026-01-23\u003c/h2\u003e\n\u003ch2\u003e[0.3.4] - 2026-01-23\u003c/h2\u003e\n\u003ch3\u003eAdicionado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eManutenção\u003c/strong\u003e Documentação e CHANGELOG atualizados para refletir o estado real do projeto.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRefatoração\u003c/strong\u003e Pequenas melhorias e correções de bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.3.3] - 2026-01-21\u003c/h2\u003e\n\u003ch3\u003eAdicionado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMelhoria na estabilidade da saída JSON do comando \u003ccode\u003ediagnosticar\u003c/code\u003e para integração em CI.\u003c/li\u003e\n\u003cli\u003eTestes adicionais e validações em analistas que processam arquivos Markdown.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAlterado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRedução de falsos positivos em deteções de async não tratado em fluxos assíncronos.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCorrigido\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTratamento de erros assíncronos em \u003ccode\u003emapa-reversao\u003c/code\u003e e correções menores em logs e mensagens.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.3.2] - 2026-01-19\u003c/h2\u003e\n\u003ch3\u003eAdicionado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eScript \u003ccode\u003emd: add-disclaimer\u003c/code\u003e para inserir aviso de proveniência em arquivos Markdown.\u003c/li\u003e\n\u003cli\u003eUtilitários de manutenção para geração e verificação de relatórios.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAlterado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMelhorias na geração de relatórios e pequenas otimizações de performance.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCorrigido\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAjustes em documentação e comentários internos; correções de pequenos bugs em scripts.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.3.1] - 2026-01-17\u003c/h2\u003e\n\u003ch3\u003eAdicionado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBaseline de testes e ajustes iniciais na configuração do CI para validação de analistas.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCorrigido\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorreções em flags do CLI (\u003ccode\u003e--export\u003c/code\u003e, \u003ccode\u003e--json\u003c/code\u003e) e comportamento de exportação de relatórios.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.3.0] - 2026-01-15\u003c/h2\u003e\n\u003ch3\u003eAdicionado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eNovos Comandos CLI\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eformatar\u003c/code\u003e - Aplica formatação estilo Tutanus (whitespace, seções, finais de linha) com suporte a Prettier\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eotimizar-svg\u003c/code\u003e - Otimiza SVGs do projeto usando otimizador interno (svgo-like)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eatualizar\u003c/code\u003e - Atualiza o Tutanus verificando integridade via Guardian antes\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ereverter\u003c/code\u003e - Gerencia mapa de reversão para moves aplicados (listar, arquivo, move, limpar)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eNovos Analistas e Detectores\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edetector-arquitetura\u003c/code\u003e - Análise de padrões arquiteturais\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edetector-codigo-fragil\u003c/code\u003e - Identifica código frágil e propenso a bugs\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edetector-construcoes-sintaticas\u003c/code\u003e - Detecta construções sintáticas problemáticas\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edetector-duplicacoes\u003c/code\u003e - Identifica código duplicado\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edetector-interfaces-inline\u003c/code\u003e - Detecta interfaces inline que deveriam ser extraídas\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edetector-contexto-inteligente\u003c/code\u003e - Análise contextual avançada\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edetector-fantasmas\u003c/code\u003e - Detecta arquivos órfãos e não utilizados\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edetector-performance\u003c/code\u003e - Identifica problemas de performance\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003ePlugins Multi-linguagem\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eanalista-react\u003c/code\u003e e \u003ccode\u003eanalista-react-hooks\u003c/code\u003e - Análise específica para React\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanalista-tailwind\u003c/code\u003e - Análise de classes Tailwind\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanalista-css\u003c/code\u003e e \u003ccode\u003eanalista-css-in-js\u003c/code\u003e - Análise de estilos\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanalista-html\u003c/code\u003e e \u003ccode\u003eanalista-xml\u003c/code\u003e - Análise de markup\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanalista-svg\u003c/code\u003e - Análise e otimização de SVGs\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanalista-python\u003c/code\u003e - Suporte heurístico para Python\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edetector-markdown\u003c/code\u003e - Validação de arquivos Markdown\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edetector-documentacao\u003c/code\u003e - Análise de qualidade de documentação\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eSistema de Supressão Inline\u003c/strong\u003e \u003ccode\u003e@tutanus-disable-next-line \u0026lt;regra\u0026gt;\u003c/code\u003e funciona para todos os analistas\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eModos de Execução Expandidos\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--executive\u003c/code\u003e - Modo executivo (apenas problemas críticos/alta prioridade)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--compact\u003c/code\u003e - Modo compacto (consolida progresso e mostra o essencial)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--trust-compiler\u003c/code\u003e - Confia no compilador para reduzir falsos positivos\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eSuporte a Mais Linguagens\u003c/strong\u003e PHP, Python (heurístico)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAlterado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNode.js 24+\u003c/strong\u003e Agora requer Node.js ≥ 24.0.4\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRefatoração do Sistema de Mensagens\u003c/strong\u003e Mensagens centralizadas por domínio\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMelhoria no Sistema de Pontuação\u003c/strong\u003e Ajustes contextuais mais precisos\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eGuardian\u003c/strong\u003e Integração mais profunda com comandos de atualização\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCorrigido\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNormalização de line endings para compatibilidade Windows/Linux\u003c/li\u003e\n\u003cli\u003eFalsos positivos em detecção de segredos em arquivos de documentação\u003c/li\u003e\n\u003cli\u003eTratamento de placeholders em strings de configuração\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemovido\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDependência circular interna em \u003ccode\u003etutanus: file: tutanus-0.3.0.tgz\u003c/code\u003e (problema de empacotamento)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003ch2\u003e[0.2.0] - 2025-08-28\u003c/h2\u003e\n\u003ch3\u003eAdicionado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003ePool de Workers\u003c/strong\u003e Sistema completo de paralelização por arquivo para melhorar performance em projetos grandes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eClasse WorkerPool com gerenciamento de workers paralelos\u003c/li\u003e\n\u003cli\u003eSistema de lotes configurável (batchSize padrão: 10 arquivos por worker)\u003c/li\u003e\n\u003cli\u003eTimeout individual por analista (30s padrão) com cancelamento automático\u003c/li\u003e\n\u003cli\u003eFallback automático para processamento sequencial quando workers desabilitados\u003c/li\u003e\n\u003cli\u003eWorker executor em JavaScript puro para threads separadas\u003c/li\u003e\n\u003cli\u003eConfiguração centralizada via variáveis de ambiente\u003c/li\u003e\n\u003cli\u003eFunção de conveniência \u003ccode\u003eprocessarComWorkers()\u003c/code\u003e para fácil integração\u003c/li\u003e\n\u003cli\u003eEstatísticas detalhadas do pool (workers ativos, erros, duração)\u003c/li\u003e\n\u003cli\u003eTestes completos com 9 cenários cobrindo configuração e processamento\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eSistema de Schema Versioning\u003c/strong\u003e Versionamento completo dos relatórios JSON\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMetadados de versão (\u003ccode\u003e_schema\u003c/code\u003e) em todos os relatórios JSON\u003c/li\u003e\n\u003cli\u003eValidação automática de schema com compatibilidade backward\u003c/li\u003e\n\u003cli\u003eMigração automática de relatórios legados\u003c/li\u003e\n\u003cli\u003eUtilitários para leitura de relatórios versionados\u003c/li\u003e\n\u003cli\u003eIntegração com \u003ccode\u003egerador-relatorio.ts\u003c/code\u003e e \u003ccode\u003erelatorio-arquetipos.ts\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eTestes completos (27 testes passando)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eSistema de Pontuação Adaptativa\u003c/strong\u003e Pontuação inteligente baseada no tamanho do projeto\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eConstantes adaptativas baseadas em número de arquivos e diretórios\u003c/li\u003e\n\u003cli\u003eSistema de fatores escaláveis (1x a 5x) para diferentes tamanhos de projeto\u003c/li\u003e\n\u003cli\u003eConfiguração centralizada em \u003ccode\u003econfiguracao-pontuacao.ts\u003c/code\u003e com 3 modos\u003c/li\u003e\n\u003cli\u003ePesos de arquétipo recalibrados para maior realismo\u003c/li\u003e\n\u003cli\u003eSistema de confiança inteligente com ajustes contextuais\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cstrong\u003eCorreção Crítica\u003c/strong\u003e Exclusão padrão de \u003ccode\u003enode_modules\u003c/code\u003e no comando \u003ccode\u003ediagnosticar\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAplicação automática de padrões de exclusão padrão quando nenhum filtro é especificado\u003c/li\u003e\n\u003cli\u003eRedução de ~70% nos arquivos escaneados (2111 → 633 arquivos)\u003c/li\u003e\n\u003cli\u003eManutenção da compatibilidade com filtros explícitos\u003c/li\u003e\n\u003cli\u003eValidação através de testes específicos\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAlterado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCorreção de Exclusão Padrão\u003c/strong\u003e Comando \u003ccode\u003ediagnosticar\u003c/code\u003e agora aplica corretamente padrões de exclusão padrão (\u003ccode\u003enode_modules/**\u003c/code\u003e, \u003ccode\u003edist/**\u003c/code\u003e, \u003ccode\u003ecoverage/**\u003c/code\u003e, etc.) quando nenhum filtro explícito é fornecido\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTimeout por Analista\u003c/strong\u003e Implementado timeout individual de 30 segundos por analista com cancelamento automático\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCorrigido\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eProblema de Exclusão\u003c/strong\u003e Correção crítica onde \u003ccode\u003enode_modules\u003c/code\u003e era escaneado mesmo sem filtros explícitos devido a configuração vazia de \u003ccode\u003eCLI_EXCLUDE_PATTERNS\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.1.0] - 2025-08-18\u003c/h2\u003e\n\u003ch3\u003eAdicionado\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCLI inicial com comandos: \u003ccode\u003ediagnosticar\u003c/code\u003e, \u003ccode\u003eguardian\u003c/code\u003e, \u003ccode\u003epodar\u003c/code\u003e, \u003ccode\u003eanalistas\u003c/code\u003e, \u003ccode\u003eperf\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eBiblioteca inicial de analistas (padrões de uso, funções longas, TODOs, estrutura, dependências).\u003c/li\u003e\n\u003cli\u003eGuardian com baseline e diffs; saída \u003ccode\u003e--json\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInfra\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCI: lint, typecheck, testes, cobertura e gates.\u003c/li\u003e\n\u003cli\u003eLicenças e avisos de terceiros; scripts utilitários.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"changelog\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"changelog\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3uta7d_6k863-.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/14mrh2-p_w84d.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"pt-BR\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"link\",null,{\"rel\":\"stylesheet\",\"href\":\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css\",\"crossOrigin\":\"anonymous\",\"referrerPolicy\":\"no-referrer\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"main\",null,{\"className\":\"flex-1 w-full\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"div\",null,{\"className\":\"min-h-screen bg-canvas text-emphasis\",\"children\":[[\"$\",\"header\",null,{\"className\":\"border-b border-border\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-4xl mx-auto px-6 py-4 flex items-center gap-3\",\"children\":[[\"$\",\"i\",null,{\"className\":\"fa-solid fa-fire text-accent\"}],[\"$\",\"$L4\",null,{\"href\":\"/\",\"className\":\"text-sm font-semibold text-emphasis hover:text-accent transition-colors\",\"children\":\"Tutanus\"}],[\"$\",\"span\",null,{\"className\":\"text-muted text-xs\",\"children\":\"/\"}],[\"$\",\"span\",null,{\"className\":\"text-xs text-muted\",\"children\":\"Changelog\"}]]}]}],[\"$\",\"main\",null,{\"className\":\"max-w-4xl mx-auto px-6 py-12\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3 mb-8\",\"children\":[[\"$\",\"i\",null,{\"className\":\"fa-solid fa-timeline text-accent text-xl\"}],[\"$\",\"h1\",null,{\"className\":\"text-2xl font-bold\",\"children\":\"Changelog\"}]]}],[\"$\",\"div\",null,{\"className\":\"changelog-content text-sm text-muted leading-relaxed\",\"dangerouslySetInnerHTML\":{\"__html\":\"$5\"}}],\"$L6\"]}],\"$L7\"]}],[\"$L8\"],\"$L9\"]}],{},null,false,null]},null,false,\"$@a\"]},null,false,null],\"$Lb\",false]],\"m\":\"$undefined\",\"G\":[\"$c\",[\"$Ld\"]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"sHP-sIMshwWXMCtdszRWm\"}\n"])</script><script>self.__next_f.push([1,"e:I[97367,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"OutletBoundary\"]\nf:\"$Sreact.suspense\"\n12:I[97367,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"ViewportBoundary\"]\n14:I[97367,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"MetadataBoundary\"]\n:HL[\"/_next/static/media/icon-1.008jpsm4iakzh.png\",\"image\"]\n6:[\"$\",\"div\",null,{\"className\":\"mt-12 pt-6 border-t border-border text-center\",\"children\":[\"$\",\"$L4\",null,{\"href\":\"/\",\"className\":\"text-accent text-sm hover:underline\",\"children\":[[\"$\",\"i\",null,{\"className\":\"fa-solid fa-arrow-left mr-1\"}],\"Voltar para a página inicial\"]}]}]\n"])</script><script>self.__next_f.push([1,"7:[\"$\",\"footer\",null,{\"className\":\"border-t border-border\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-6xl mx-auto px-6 py-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-col sm:flex-row items-center justify-between gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3\",\"children\":[[\"$\",\"img\",null,{\"src\":\"/_next/static/media/icon-1.008jpsm4iakzh.png\",\"alt\":\"Tutanus\",\"className\":\"w-5 h-5\"}],[\"$\",\"span\",null,{\"className\":\"text-sm font-semibold text-emphasis\",\"children\":\"Black Diaz\"}],[\"$\",\"span\",null,{\"className\":\"text-xs text-muted\",\"children\":\"MIT-0\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-5 text-xs text-muted\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://github.com/blue-diaz/tutanus\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"hover:text-accent transition-colors\",\"children\":[[\"$\",\"i\",null,{\"className\":\"fa-brands fa-github mr-1\"}],\"GitHub\"]}],[\"$\",\"a\",null,{\"href\":\"/privacy-policy\",\"className\":\"hover:text-accent transition-colors\",\"children\":[[\"$\",\"i\",null,{\"className\":\"fa-solid fa-shield mr-1\"}],\"Privacidade\"]}],[\"$\",\"a\",null,{\"href\":\"/changelog\",\"className\":\"hover:text-accent transition-colors\",\"children\":[[\"$\",\"i\",null,{\"className\":\"fa-solid fa-timeline mr-1\"}],\"Changelog\"]}],[\"$\",\"a\",null,{\"href\":\"/terms-of-use\",\"className\":\"hover:text-accent transition-colors\",\"children\":[[\"$\",\"i\",null,{\"className\":\"fa-solid fa-file-lines mr-1\"}],\"Termos\"]}]]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"8:[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/1rxncug86bump.js\",\"async\":true,\"nonce\":\"$undefined\"}]\n9:[\"$\",\"$Le\",null,{\"children\":[\"$\",\"$f\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@10\"}]}]\n11:[]\na:\"$W11\"\nb:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L12\",null,{\"children\":\"$L13\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L14\",null,{\"children\":[\"$\",\"$f\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L15\"}]}]}],null]}]\nd:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3uta7d_6k863-.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n"])</script><script>self.__next_f.push([1,"13:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"10:null\n15:[[\"$\",\"title\",\"0\",{\"children\":\"Tutanus — CLI de Análise, Diagnóstico e Manutenção de Projetos\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"CLI modular para análise estática, diagnóstico de segurança e manutenção de projetos JavaScript/TypeScript e multi-stack. Suporte a CI/CD, plugins, Guardian e mais.\"}]]\n"])</script></body></html>