Completes the English-only standardization for code, comments, scripts
and CI templates (UI/CLI-facing strings stay bilingual pt-BR/en,
untouched). Covers the remaining crates/, apps/gui/ui/ and
apps/gui/src-tauri/ comments, .gitea/ workflow and template comments,
.githooks/ hooks, and the scripts/ source comments for the files
already renamed in a prior commit (check.sh, generate-logo.py,
install-hooks.sh).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAyr8d7HuAdUGB6aA5xmDD
Same root cause and fix as Guará: tauri-bundler's prepare_tools runs
'dd ... seek=8 conv=notrunc' on the cached linuxdeploy-x86_64 binary on
the aarch64 Gitea runner. A bash wrapper script there loses its shebang
to the dd and fails with ENOENT; a native ELF launcher survives because
bytes 8-10 of the ELF header are unused EI_PAD padding. Replace the
wrapper with a small ELF launcher compiled with cc, and cache
AppRun-x86_64 explicitly.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAyr8d7HuAdUGB6aA5xmDD
The updater reads the latest release from Gitea. update::apply refuses to
overwrite anything but the CLI. Release workflow builds the Linux CLI;
scripts/build-gui.sh builds the Linux and Windows desktop app. Docs say Linux
and Windows only.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Notes come from the matching CHANGELOG.md section. The macOS and Windows
binaries the old release workflow built need runners this Gitea does not have.
The CI also ignores .wolf, .claude and the release files.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- app.js/app.css/index.html: telas novas para Evil Twin (PSK e
Enterprise), regras de mutação/máscara na quebra de senha, WPS,
indicador de modo (monitor/gerenciado) movido para baixo do seletor de
interface, e aviso específico quando a placa não entrega captura de
verdade (ver bug de ScanSnapshot.warning no engine).
- Lista de redes/BSSIDs não reordena mais a cada poll: ordem de chegada
como critério de desempate e sinal arredondado em buckets de 4 dBm,
porque reordenar pelo sinal instantâneo fazia as linhas flutuarem de
posição debaixo do cursor a cada atualização.
- "Forçar handshake" religa a captura sozinho se ela tiver sido parada
(esperando o AP reaparecer no canal certo antes de disparar o job, e
travando o alvo numa variável local pra não perder o BSSID se o diálogo
fechar no meio da espera).
- Grid da aba Ataques trocado de CSS grid pra colunas (alvenaria): cards
com alturas muito diferentes na mesma linha deixavam buracos vazios
enormes com align-items:start.
- check-ui-i18n.mjs: ajustes de cobertura para as novas telas.
- Logo oficial (sabia.png) e conjunto de ícones do app desktop.
- Interface em português e inglês: tradutor por observação do DOM, seletor
de idioma e checagem de cobertura de tradução no CI.
- CI/CD com caches (rust-cache, .deb do Tauri em cache) e pipeline de release
multiplataforma (CLI em 5 alvos + app desktop via tauri-action), templates
de issue/PR.
- Suíte de testes de integração do sabia-core (scan e2e, handshake/crack
4-way e PMKID, pcap, trilha de auditoria) — 46 testes verdes.
- Documentação completa pt/en: README, ROADMAP, SECURITY, CONTRIBUTING,
CHANGELOG e docs/ (cli, interface, arquitetura), com enquadramento de uso
autorizado.
- Correções de clippy (-D warnings) e formatação em toda a árvore.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>