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
3.6 KiB
Contribuindo com o Sabiá
English · Português
Obrigado por ajudar! Regras de ouro:
- Só auditoria autorizada. Todo recurso novo é para testar redes próprias ou com autorização. Operações sensíveis (desautenticação) exigem confirmação explícita e ficam na trilha de auditoria. PRs que escondem atividade da trilha ou removem as confirmações são recusados.
- Teste os parsers com dados reais. Novos leitores (radiotap, 802.11, EAPOL, pcap) precisam de teste com quadros conhecidos — veja
crates/sabia-core/tests/e os ajudantes emcrates/sabia-core/src/testutil.rs. Nada de parser sem teste. - Seja honesto sobre o que funciona. Se um recurso só roda no Linux, ou só cobre WPA2-PSK, diga isso no
--help, no README e no teste. - Código, comentários e commits 100% em inglês. Todo código-fonte, comentários, scripts, workflows de CI e mensagens de commit devem ser escritos em inglês, enquanto a interface gráfica/CLI permanece bilíngue (PT-BR e EN via
i18n-en.js).
Fluxo
scripts/install-hooks.sh # uma vez: ativa os hooks commit-msg e pre-push
scripts/check.sh # rápido (segundos): fmt, clippy como no CI, tradução, scripts, workflows, semver
scripts/check.sh --full # inclui cargo test --workspace e cargo audit
O CI roda em Linux; rode a verificação antes do push: quase tudo que faz o CI falhar aparece aqui em segundos. Mudanças só de documentação (*.md, docs/) pulam o CI.
A captura ao vivo só existe no Linux (AF_PACKET + netlink); o código dos caminhos de Windows e macOS continua compilando e é coberto pelo cargo check.
Releases e Versionamento
As versões seguem estritamente o Versionamento Semântico 2.0.0 (MAJOR.MINOR.PATCH), sincronizadas entre Cargo.toml, apps/gui/src-tauri/Cargo.toml e apps/gui/src-tauri/tauri.conf.json (validado por scripts/check.sh).
Enviar uma tag v* faz o CI do Gitea criar a release (as notas vêm do CHANGELOG.md, então atualize-o antes) e anexar o CLI para Linux (x86_64 e aarch64) e o app desktop para Linux (x86_64 e aarch64) e Windows.
Não há build para macOS: ele exige o SDK e a assinatura da Apple, que um runner Linux não tem.
Onde mexer
Mapa dos módulos em docs/pt-BR/arquitetura.md. O que falta e o que é bem-vindo está no ROADMAP.
- Parsing de quadros:
radiotap.rs,dot11.rs,eapol.rs. - Rádio e sistema:
iface.rs,netlink.rs,scan.rs,capture.rs,inject.rs. - Handshake e quebra:
handshake.rs,crack.rs. - App e API:
crates/sabia-cli/src/eapps/gui/.
Interface e tradução
O texto-fonte da interface é em português; o inglês vem de apps/gui/ui/i18n-en.js, aplicado em tempo de execução por i18n.js. Ao adicionar ou mudar texto visível, rode node scripts/check-ui-i18n.mjs e inclua a tradução — o CI recusa português sem par em inglês. Não traduza dados do usuário (SSID, BSSID, valores) nem termos técnicos (WPA, EAPOL, pcap…).
Documentação
Mantenha o par pt/en: todo arquivo *.md e docs/* tem a versão em português (*.pt-BR.md, docs/pt-BR/) e em inglês.
Commits
Os commits devem seguir Conventional Commits 1.0.0 em inglês (feat:, fix:, chore:, ci:, docs:, refactor:, test:, perf:, build:), ex.: fix(eapol): validate replay counter on message 2. Uma mudança lógica por PR. Validado automaticamente por .githooks/commit-msg.
Licença
Ao contribuir, você concorda em licenciar sob MIT ou Apache-2.0, como o resto do projeto.