For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /pt/docs/desktop/project-structure.md (or send Accept: text/markdown).
Estrutura do projeto
Encontre o shell Rust, a página de boot, os scripts de release e o limite com o aplicativo web.
Instalação e configuração
Antes de qualquer etapa, leia Antes de começar e Fundamentos do terminal. Abra a pasta supastack na raiz — a pasta que contém o package.json. Um checkout Desktop contém apps/desktop e seus scripts de release; o monorepo All Platforms adiciona o backend Web e o aplicativo móvel. Uma variável de ambiente é uma configuração nomeada armazenada num arquivo .env local ou no seu painel de hospedagem; o shell lê SUPASTACK_APP_URL como uma configuração de terminal, não de um arquivo.
1. Abra apps/desktop/src-tauri/src/lib.rs — todo o comportamento nativo vive neste único arquivo.
2. Navegue por apps/desktop/src-tauri/ — configuração, capabilities e ícones.
3. A partir da raiz do repositório execute corepack pnpm --filter @supastack/desktop dev com um backend acessível.
O checkout contém apenas o shell Tauri: o código-fonte Rust, sua configuração, a página de boot e os scripts de release. As telas do produto vivem no aplicativo web que a janela carrega — um checkout somente Desktop não tem telas de aplicativo próprias. Leia AGENTS.md e .ai/PROJECT_CONTEXT.md antes de mudar o comportamento; os documentos espelho .ai/ registram decisões que não são visíveis a partir de um arquivo sozinho.
apps/desktop/src-tauri/src/ Rust — window, tray, menus, deep links, updater
apps/desktop/src-tauri/ tauri.conf.json, capabilities/, Cargo.toml, icons
apps/desktop/ui/ Boot page (index.html + boot.js) shown while loading
apps/desktop/scripts/ Release preflight + update manifest
docs/ Runbooks incl. desktop updates
.agents/skills/ Task guides for coding agentsOnde cada alteração pertence
Antes de editar, decida de qual lado a mudança pertence: qualquer coisa que um usuário veja como UI de produto pertence ao aplicativo web; apenas comportamento em nível de SO pertence a Rust.
- Comportamento de janela, bandeja, menu, atalho ou instância única →
apps/desktop/src-tauri/src/lib.rs. - Uma nova permissão de webview →
apps/desktop/src-tauri/capabilities/default.json— amplie apenas quando um recurso nativo precisar. - Identificador de bundle, versão, endpoint do updater ou opções de plugins →
apps/desktop/src-tauri/tauri.conf.json. - Ícones de produto placeholder → substitua
placeholder-icon.pnge execute o script de ícones. - Comportamento de boot, carregamento ou overlay offline →
apps/desktop/ui/. - Qualquer tela, configuração ou dado de produto → o repositório do aplicativo web — o shell nunca bifurca UI de produto.
Fluxo de implementação
Para uma mudança nativa, edite lib.rs, execute cargo check e os testes Rust, depois exercite a janela em cada SO de destino — o comportamento de bandeja, atalho e deep link difere por plataforma. O skill add-a-desktop-capability em .agents/skills/ percorre esta mesma ordem.
Verificação e resolução de problemas
cargo check captura erros de compilação e cargo test cobre a lógica pura. A verificação real é a janela em execução no Windows, macOS e Linux — bandeja, atalho e deep links não podem ser provados apenas por testes.
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop typecheck