English · Português
Como contribuir
Issues e pull requests são bem-vindos: relatos de bug com o Ajuda › Diagnóstico anexado, confirmação de agentes marcados "a confirmar", testes no Windows, traduções e documentação.
Estrutura
crates/kabul-core: núcleo em Rust (worktrees, git, harnesses, transcript, configurações, backends de terminal, uso).crates/kabuld: o servidor do celular, de outras máquinas e da colaboração.crates/kabul-cli: CLIkabul,kabul serve(RPC HTTP usado pelos testes ponta a ponta contra o núcleo de verdade) ekabul loadtest.apps/web: interface em React (também a PWA do celular, emsrc/mobile).apps/desktop: casca Tauri.docs: este site (VitePress), em inglês (docs/guide) e português (docs/pt-BR/guia), mais a referência técnica em português na raiz dedocs/.
Comandos
sh
cargo test # núcleo, servidor e CLI
cd apps/web && npm run build # interface
cd apps/web && npm run e2e # Playwright: backend mock e o núcleo real pelo kabul serve
cd apps/web && npm run perf # orçamentos de desempenho (100 workspaces, 30 agentes)
cd apps/web && npm run docs:shortcuts # regenera as tabelas de atalhos a partir de src/i18n/shortcuts.json
cd apps/web && npm run i18n:check # textos da interface: nada fixo no código, nenhuma chave faltando
cd docs && npm ci && npm run docs:dev # este site, recarregando ao salvar
cd docs && npm run docs:build # gera o site (precisa passar antes do merge de mudanças nos docs)Regras
- Nada de dados pessoais em commits, fixtures ou capturas (use o usuário
dev,/home/deve domínios de exemplo). - Código novo que dependa do macOS fica atrás de um adaptador e entra na referência do Windows.
- Textos da interface ficam em
apps/web/src/i18n/locales/{en,pt-BR}/*.jsone são lidos comt("area.chave"); toda chave existe nos dois idiomas, plurais usam{ "one", "other" }comcount, e datas, números, moeda e durações passam porsrc/i18n/format.ts. Onpm run i18n:checkfalha com texto fixo em JSX ou chave faltando num idioma. Detalhes na referência de i18n. - Mudanças na documentação vão nos dois idiomas. Não prometa o que não está confirmado: marque como beta ou "a confirmar".
Commits (Conventional Commits), versões, changelog, CI e releases: CONTRIBUTING.pt-BR.md na raiz do repositório.