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

# Struttura del progetto

Trova la shell Rust, la pagina di avvio, gli script di rilascio e il confine con l'app web.

## Installazione e configurazione

Prima di qualsiasi passaggio, leggi [Prima di iniziare](https://supastack.dev/it/docs/desktop/before-you-start.md) e [Nozioni di base sul terminale](https://supastack.dev/it/docs/desktop/terminal-basics.md). Apri la cartella supastack alla sua radice — la cartella che contiene package.json. Un checkout Desktop contiene apps/desktop e i suoi script di rilascio; il monorepo All Platforms aggiunge il backend Web e l'app mobile. Una variabile d'ambiente è un'impostazione con nome archiviata in un file .env locale o nella tua dashboard di hosting; la shell legge SUPASTACK_APP_URL come impostazione del terminale, non da un file.

1. Apri `apps/desktop/src-tauri/src/lib.rs` — tutto il comportamento nativo vive in questo unico file.

2. Esplora `apps/desktop/src-tauri/` — configurazione, capabilities e icone.

3. Dalla radice del repository esegui `corepack pnpm --filter @supastack/desktop dev` con un backend raggiungibile.

Il checkout contiene solo la shell Tauri: il sorgente Rust, la sua configurazione, la pagina di avvio e gli script di rilascio. Le schermate di prodotto vivono nell'app web che la finestra carica — un checkout solo Desktop non ha schermate app proprie. Leggi AGENTS.md e .ai/PROJECT_CONTEXT.md prima di modificare il comportamento; i documenti specchio `.ai/` registrano decisioni non visibili da un file da solo.

```
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
```


## Dove va una modifica

Prima di modificare, decidi quale lato possiede la modifica: qualsiasi cosa un utente veda come UI di prodotto appartiene all'app web; solo il comportamento a livello SO appartiene a Rust.

[Costruisci la tua prima funzionalità desktop](https://supastack.dev/it/docs/desktop/first-feature.md)

- Comportamento di finestra, tray, menu, scorciatoia o istanza singola → `apps/desktop/src-tauri/src/lib.rs`.
- Un nuovo permesso della webview → `apps/desktop/src-tauri/capabilities/default.json` — amplia solo quando una funzionalità nativa ne ha bisogno.
- Identificatore del bundle, versione, endpoint dell'updater o opzioni dei plugin → `apps/desktop/src-tauri/tauri.conf.json`.
- Icone di prodotto segnaposto → sostituisci `placeholder-icon.png` ed esegui lo script delle icone.
- Comportamento di avvio, caricamento o overlay offline → `apps/desktop/ui/`.
- Qualsiasi schermata, impostazione o dato di prodotto → il repository dell'app web — la shell non fork mai la UI di prodotto.


## Flusso di implementazione

Per una modifica nativa, modifica `lib.rs`, esegui `cargo check` e i test Rust, poi esercita la finestra su ogni SO di destinazione — il comportamento di tray, scorciatoia e deep link differisce per piattaforma. Lo skill `add-a-desktop-capability` in `.agents/skills/` percorre questo stesso ordine.


## Verifica e risoluzione dei problemi

`cargo check` intercetta gli errori di compilazione e `cargo test` copre la logica pura. La vera verifica è la finestra in esecuzione su Windows, macOS e Linux — tray, scorciatoia e deep link non possono essere dimostrati dai soli test.

```
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop typecheck
```


## Successivo

[Costruisci la tua prima feature](https://supastack.dev/it/docs/desktop/first-feature.md)
