# Changelog [English](CHANGELOG.md) · **Português** Formato baseado no [Keep a Changelog](https://keepachangelog.com/pt-BR/1.1.0/); versões seguem SemVer. ## [Unreleased] ### Adicionado - **Pilar 1 (v1.2):** Periodograma de Rayleigh/Schuster com grade limitada ao intervalo observado ($T \le \text{span}/3$), portão de significância por regularidade e exclusões de infraestrutura (NTP, mDNS/LLMNR/NBNS, SSDP, não-TCP/UDP). - **Pilar 2 (v1.0):** Detector de sessões TCP persistentes com encadeamento de timeouts de inatividade (intervalos $\le 3600$s sem novo SYN), score logarítmico de persistência e métricas de PCR e tentativas falhas na evidência. - **Pilar 3 (v1.0):** Detector de capacidade de informação em subdomínios DNS ($I = H \times C$ bits/h) para identificar túneis de alta entropia, com Divergência Jensen-Shannon (JSD) registrada na evidência. - **Pilar 4 (v1.0):** Fusão noisy-OR ponderada por host ($w_1=w_2=w_3=0.75$) com vínculo determinístico de evidências, ranqueando hosts na saída humana do `acaua analyze` via seção `hosts:`. - **Ingestão de `dns.log` do Zeek:** Particionamento diário Hive Parquet para consultas DNS com mapeamento determinístico de colunas pelo cabeçalho TSV. - **Esquema de armazenamento Parquet (v1.2):** Esquema de 15 colunas para `conn.log` suportando `conn_state`, `history`, `orig_pkts`, `resp_pkts`, `orig_ip_bytes`, `resp_ip_bytes`. - **Relato de alertas em memória:** Rota `/api/alerts` do daemon web agora serve os alertas da análise mais recente. - **Dashboard de verdade na UI:** Navegação lateral agora troca de painel de fato, em vez de um scroll sem efeito. Novo painel Hosts ranqueia os hosts observados por score de fusão, com detalhamento por pilar (P1/P2/P3). Painel de Alertas é filtrável/ordenável por pilar e score, com evidência completa renderizada em tabela formatada. Painel de Visão Geral ganhou KPIs e dois gráficos SVG interativos (top hosts por score de fusão, distribuição de alertas por pilar). ### Modificado - **Breaking (0.x):** A fórmula v1.2 do Pilar 1 altera pontuações e a geração de `Alert.id` para refletir a grade limitada e a agregação por inícios de sessão. - Distribuição migrada para 100% Docker e docker-compose (daemon servidor e dashboard web); tarballs binários nativos e instaladores desktop descontinuados. - DuckDB agora é dependência obrigatória em tempo de execução, linkada dinamicamente contra a `libduckdb.so` oficial pré-compilada (v1.5.6) com SHA-256 fixado via `scripts/fetch-libduckdb.sh`. - MSRV do workspace atualizado para Rust 1.88 (exigido pelo `duckdb ~1.10506.1`). - Runtime do container e imagem base atualizados para Debian 13 trixie. ### Corrigido - Correção de falsos positivos críticos em capturas curtas onde candidatos a período excediam a duração observada. - Correção na contagem de partições em `ingest_dir` para utilizar a união dos conjuntos de datas em vez de somar contagens de arquivos. - Erros de execução do DuckDB agora são contabilizados em `files_failed` em vez de linhas ruins. - Atualização do status da checagem do `doctor` de "skeleton" para "ok" / "degraded". - Encerramento limpo em `SIGTERM` ao rodar como PID 1 em ambientes de container. ### Removido - Aplicativo desktop Tauri (`apps/gui/src-tauri`) e scripts de build desktop associados. - Flag de autoatualização (`acaua update --apply`) e sobrescrita de binário em disco. Atualizações agora são feitas via pull de imagem (`docker compose pull`). ## [0.1.0] - 2026-10-31 ### Adicionado - Workspace Rust com `acaua-core` e `acaua-cli`. - Esqueleto da CLI com `serve`, `analyze`, `doctor` e `update [--apply]`. - Esqueleto da API Axum com rotas de health, status, alertas, análise e checagem de atualização. - UI vanilla embutida e shell desktop Tauri. - Stubs determinísticos de pilares, fusão, armazenamento, Zeek e updater com testes de fumaça. - Documentação em inglês/português, workflows de CI/release e script local de verificação. ### Notas - Os quatro pilares matemáticos não estão implementados. - O parser Zeek e o armazenamento DuckDB são stubs. - Nenhum artefato de release foi publicado.