Compare commits

...
3 Commits
Author SHA1 Message Date
Lucas RayanandClaude Sonnet 5 673b11c88c ci: replace docker/build-push-action with plain docker buildx build
Release / Publish tags (push) Successful in 13s
Release / Plan (reuse the published image?) (push) Successful in 4s
Release / ci (push) Successful in 32s
Release / Build image (amd64) (push) Successful in 20s
Release / Build image (arm64) (push) Successful in 19s
CI / Format and clippy (push) Successful in 16s
CI / Tests (Linux) (push) Successful in 31s
CI / Dependency audit (push) Successful in 16s
CI / Docker image (build and smoke test) (push) Skipped
Release / Gitea release (push) Successful in 3s
docker/build-push-action's upstream repo has ~260MB of git history, which
reliably hangs the act runner's Go-based git clone on the linux-amd64
(Hostinger) runner — confirmed it's not a network or cache issue: curl to
codeload.github.com and a plain `git clone` of the same repo both complete
in seconds from the host and from inside the exact job container. Only
act's own clone of this specific action hangs, every time.

A raw `docker buildx build` with the same flags does the same job without
cloning anything.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAyr8d7HuAdUGB6aA5xmDD
2026-11-01 10:18:18 -03:00
Lucas RayanandClaude Sonnet 5 f2a10ca1a6 docs: mark v0.1.0 as the first real release
CI / Tests (Linux) (push) Successful in 33s
CI / Dependency audit (push) Successful in 19s
Release / Build image (amd64) (push) Canceled after 0s
Release / Build image (arm64) (push) Canceled after 0s
Release / Publish tags (push) Canceled after 0s
Release / Gitea release (push) Canceled after 0s
Release / ci (push) Successful in 34s
Release / Plan (reuse the published image?) (push) Successful in 5s
CI / Docker image (build and smoke test) (push) Skipped
CI / Format and clippy (push) Successful in 15s
The previous "0.1.0 - 2026-10-31" entry documented a pre-implementation
skeleton and explicitly said no release artifact had been published.
Since it was never tagged, fold it into a single accurate v0.1.0 entry
dated today, covering the real first release: all 4 pillars, Docker-only
distribution, and the working dashboard.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAyr8d7HuAdUGB6aA5xmDD
2026-11-01 08:33:51 -03:00
Lucas RayanandClaude Sonnet 5 3e7e730f23 docs: log the dashboard UI work in the changelog
Release / Plan (reuse the published image?) (push) Canceled after 0s
Release / ci (push) Canceled after 0s
Release / Build image (amd64) (push) Canceled after 0s
Release / Build image (arm64) (push) Canceled after 0s
Release / Publish tags (push) Canceled after 0s
Release / Gitea release (push) Canceled after 0s
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAyr8d7HuAdUGB6aA5xmDD
2026-11-01 08:32:26 -03:00
3 changed files with 22 additions and 28 deletions

No files matched your search

+12 -8
View File
@@ -75,15 +75,19 @@ jobs:
registry: ${{ env.REGISTRY }} registry: ${{ env.REGISTRY }}
username: ${{ gitea.actor }} username: ${{ gitea.actor }}
password: ${{ secrets.REGISTRY_TOKEN }} password: ${{ secrets.REGISTRY_TOKEN }}
# Plain `docker buildx build` instead of docker/build-push-action: that
# action's upstream repo (~260MB of git history) reliably hangs the
# act runner's Go-based clone on the Hostinger host, even when curl/git
# to github.com are both fast. Same end result, no action to clone.
- name: Build and push (per architecture) - name: Build and push (per architecture)
uses: docker/build-push-action@v7 run: |
with: docker buildx build \
context: . --platform "${{ matrix.platform }}" \
platforms: ${{ matrix.platform }} --push \
push: true -t "${{ needs.plan.outputs.image }}:build-${{ gitea.sha }}-${{ matrix.arch }}" \
tags: ${{ needs.plan.outputs.image }}:build-${{ gitea.sha }}-${{ matrix.arch }} --cache-from "type=registry,ref=${{ needs.plan.outputs.image }}:buildcache-${{ matrix.arch }}" \
cache-from: type=registry,ref=${{ needs.plan.outputs.image }}:buildcache-${{ matrix.arch }} --cache-to "type=registry,ref=${{ needs.plan.outputs.image }}:buildcache-${{ matrix.arch }},mode=max" \
cache-to: type=registry,ref=${{ needs.plan.outputs.image }}:buildcache-${{ matrix.arch }},mode=max .
# Runs the image that was just pushed, on its own architecture. # Runs the image that was just pushed, on its own architecture.
- name: Smoke test - name: Smoke test
run: scripts/smoke-image.sh "${{ needs.plan.outputs.image }}:build-${{ gitea.sha }}-${{ matrix.arch }}" run: scripts/smoke-image.sh "${{ needs.plan.outputs.image }}:build-${{ gitea.sha }}-${{ matrix.arch }}"
+5 -10
View File
@@ -6,6 +6,8 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versio
## [Unreleased] ## [Unreleased]
## [0.1.0] - 2026-11-01
### Added ### Added
- **Pillar 1 (v1.2):** Rayleigh/Schuster periodogram with grid bounded by the observed span ($T \le \text{span}/3$), regularity gating, and infrastructure exclusions (NTP, mDNS/LLMNR/NBNS, SSDP, non-TCP/UDP). - **Pillar 1 (v1.2):** Rayleigh/Schuster periodogram with grid bounded by the observed span ($T \le \text{span}/3$), regularity gating, and infrastructure exclusions (NTP, mDNS/LLMNR/NBNS, SSDP, non-TCP/UDP).
- **Pillar 2 (v1.0):** Persistent TCP session detector with inactivity chaining (gaps $\le 3600$s without SYN), logarithmic duration scoring, and PCR / failed attempt metrics in evidence. - **Pillar 2 (v1.0):** Persistent TCP session detector with inactivity chaining (gaps $\le 3600$s without SYN), logarithmic duration scoring, and PCR / failed attempt metrics in evidence.
@@ -14,6 +16,7 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versio
- **Zeek `dns.log` ingestion:** Daily Hive Parquet partitioning for DNS queries with deterministic column mapping by TSV header. - **Zeek `dns.log` ingestion:** Daily Hive Parquet partitioning for DNS queries with deterministic column mapping by TSV header.
- **Parquet storage schema (v1.2):** 15-column schema for `conn.log` supporting `conn_state`, `history`, `orig_pkts`, `resp_pkts`, `orig_ip_bytes`, `resp_ip_bytes`. - **Parquet storage schema (v1.2):** 15-column schema for `conn.log` supporting `conn_state`, `history`, `orig_pkts`, `resp_pkts`, `orig_ip_bytes`, `resp_ip_bytes`.
- **In-memory alert reporting:** Web daemon `/api/alerts` route now serves alerts from the most recent analysis run. - **In-memory alert reporting:** Web daemon `/api/alerts` route now serves alerts from the most recent analysis run.
- **Real dashboard UI:** Sidebar navigation now switches panels instead of a no-op scroll. New Hosts panel ranks observed hosts by fusion score with per-pillar (P1/P2/P3) drill-down. Alerts panel is filterable/sortable by pillar and score, with full evidence rendered as a formatted table. Overview panel adds KPI tiles and two interactive SVG charts (top hosts by fusion score, alert distribution by pillar).
### Changed ### Changed
- **Breaking (0.x):** Pillar 1 formula v1.2 modifies scores and changes `Alert.id` generation to reflect the corrected bounded grid and session-based aggregation. - **Breaking (0.x):** Pillar 1 formula v1.2 modifies scores and changes `Alert.id` generation to reflect the corrected bounded grid and session-based aggregation.
@@ -33,17 +36,9 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versio
- Tauri desktop application (`apps/gui/src-tauri`) and associated desktop build scripts. - Tauri desktop application (`apps/gui/src-tauri`) and associated desktop build scripts.
- Self-update flag (`acaua update --apply`) and in-place binary overwrite. Updates are now handled via image pulls (`docker compose pull`). - Self-update flag (`acaua update --apply`) and in-place binary overwrite. Updates are now handled via image pulls (`docker compose pull`).
## [0.1.0] - 2026-10-31 ### Initial scaffold
### Added
- Rust workspace with `acaua-core` and `acaua-cli`. - Rust workspace with `acaua-core` and `acaua-cli`.
- CLI skeleton with `serve`, `analyze`, `doctor` and `update [--apply]`. - CLI skeleton with `serve`, `analyze`, `doctor` and `update [--apply]`.
- Axum API skeleton with health, status, alerts, analyze and update-check routes. - Axum API skeleton with health, status, alerts, analyze and update-check routes.
- Embedded vanilla UI and Tauri desktop shell. - Embedded vanilla UI (desktop shell since removed; see Removed above).
- Deterministic pillar, fusion, storage, Zeek and updater stubs with smoke tests.
- English/Portuguese documentation, CI/release workflows and local check script. - English/Portuguese documentation, CI/release workflows and local check script.
### Notes
- The four mathematical pillars are not implemented.
- The Zeek parser and DuckDB storage are stubs.
- No release artifact has been published.
+5 -10
View File
@@ -6,6 +6,8 @@ Formato baseado no [Keep a Changelog](https://keepachangelog.com/pt-BR/1.1.0/);
## [Unreleased] ## [Unreleased]
## [0.1.0] - 2026-11-01
### Adicionado ### 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 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 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.
@@ -14,6 +16,7 @@ Formato baseado no [Keep a Changelog](https://keepachangelog.com/pt-BR/1.1.0/);
- **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. - **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`. - **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. - **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 ### 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. - **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.
@@ -33,17 +36,9 @@ Formato baseado no [Keep a Changelog](https://keepachangelog.com/pt-BR/1.1.0/);
- Aplicativo desktop Tauri (`apps/gui/src-tauri`) e scripts de build desktop associados. - 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`). - 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 ### Esqueleto inicial
### Adicionado
- Workspace Rust com `acaua-core` e `acaua-cli`. - Workspace Rust com `acaua-core` e `acaua-cli`.
- Esqueleto da CLI com `serve`, `analyze`, `doctor` e `update [--apply]`. - 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. - Esqueleto da API Axum com rotas de health, status, alertas, análise e checagem de atualização.
- UI vanilla embutida e shell desktop Tauri. - UI vanilla embutida (shell desktop removido depois; ver Removido acima).
- 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. - 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.