Toolchain do Flowral — desenvolvimento moderno, leve e acessível
Especificação do ambiente, não implementação. Apps Flowral continuam em Rust + Slint; base Void glibc + runit + Swirl. Toolchain de desenvolvimento não é pacote obrigatório da ISO.
| Função | Ferramenta |
|---|---|
| Código/build | Rust + Cargo |
| UI nativa | Slint + slint-viewer |
| Hot reload | Slint Live Preview |
| Testes visuais por agente | Slint MCP, headless quando suportado |
| Check contínuo | bacon |
| Comandos curtos | just |
| Cache incremental | sccache |
| Compositor/testes | Swirl aninhado se viável |
| Virtualização | QEMU/KVM + libvirt |
| Controle humano da VM | virt-manager / virt-viewer |
| Controle por agente | virsh, SSH por chave, rsync |
| Guest | Void Linux x86_64 glibc + runit + Swirl |
| Build de pacotes/ISO | xbps-src + void-mklive |
| CI e publicação | GitHub Actions |
| Testes do site | Playwright opcional em CI |
Contrato futuro de comandos just
Não alegar que os comandos já existem. Cada receita terá detecção de ferramentas ausentes, erros curtos e nenhuma operação destrutiva por padrão.
| Comando | Ação prevista |
|---|---|
| just help | lista de tarefas e pré-requisitos |
| just preview | UI Slint em live preview |
| just test-ui | testes Slint/MCP em ambiente isolado |
| just check | fmt, clippy e testes baratos |
| just dev-shell | Swirl nested somente se suporte validado |
| just vm-up | iniciar guest já criado |
| just vm-view | abrir console da VM |
| just vm-shot | capturar screenshot do console |
| just vm-ssh | conectar com usuário sem root |
| just iso | construir imagem em ambiente de teste |
| just perf | medir perfil documentado de RAM/CPU |
Desenvolvimento com menos carga cognitiva
- Usar uma receita por tarefa e logs concisos, sem dezenas de comandos manuais.
- Mostrar a causa e o próximo passo quando um binário, backend ou serviço estiver ausente.
- Criar mocks de Wi-Fi, Bluetooth, energia e MCPs para design de interface, sem modificar sistema hospedeiro.
- Aplicar temas Sakura Light/Dark e demais famílias nas screenshots de regressão.
- Navegação keyboard-only, elementos Slint introspectáveis, foco visível e movimento reduzido.
- Evitar exigir LSP para trabalhar em Neovim; sintaxe e completions básicas suficientes; LSP opcional.
Regras de CI
- PR Rust: cargo fmt --check, cargo clippy e cargo test quando houver workspace.
- PR UI: snapshots reais, teste de teclado e verificação visual com Slint MCP.
- PR shell: testes nested/VM somente quando runner dispõe de compositor/driver apropriado.
- PR de ISO: build versionado, boots BIOS/UEFI em virtualização suportada, artefatos/hashes.
- Benchmark real no ThinkPad: fora dos runners hospedados convencionais; não inventar memória/energia.
- Não construir ISO inteira a cada mudança de documentação ou espaçamento Slint.
Segurança
MCP somente local e debug; não expor porta. VM isolada, sem partição host montada em escrita em testes não confiáveis. SSH por chave de desenvolvimento, sem root automático. Backup antes de operações perigosas; não compartilhar credenciais ou registros de Wi-Fi do usuário em screenshots, logs e artifacts.
Ver live preview e workflow de agentes.