> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# 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](https://supastack.dev/pt/docs/desktop/before-you-start.md) e [Fundamentos do terminal](https://supastack.dev/pt/docs/desktop/terminal-basics.md). 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 agents
```


## Onde 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.

[Construa seu primeiro recurso desktop](https://supastack.dev/pt/docs/desktop/first-feature.md)

- 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.png` e 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
```


## Seguinte

[Constrói a tua primeira funcionalidade](https://supastack.dev/pt/docs/desktop/first-feature.md)
