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

# Dentro la shell desktop

Pagina di avvio, gate di navigazione, stack di plugin e riferimento di configurazione.

## La pagina di avvio

La finestra carica prima la pagina in bundle in apps/desktop/ui: legge il __SUPASTACK_APP_URL__ iniettato, sonda il backend con un timeout di dieci secondi e reindirizza verso di esso quando è raggiungibile. Un backend irraggiungibile mostra uno stato «Can't reach host» con un'azione Riprova che scatta anche al ripristino della rete, così un avvio a freddo non mostra mai una finestra vuota. Un parametro query ?target= permette di provare la pagina in un browser normale.


## Le funzionalità native sono plugin, non IPC

La shell non registra comandi personalizzati — ogni capacità nativa arriva tramite i plugin Tauri: single-instance con la feature deep-link (che instrada gli argomenti di secondo avvio su Windows e Linux), deep-link, window-state (solo geometria — zoom e canale mantengono i propri sidecar), opener, dialog, process (riavvio dopo l'aggiornamento), updater, autostart e global-shortcut, più la feature tray-icon. Estendere la shell significa aggiungere un plugin e un permesso, non fare il fork della UI della webview.


## Il gate di navigazione

La navigazione resta consentita per le pagine della shell in bundle, l'origine del dev-server e l'esatta origine dell'app configurata. I link HTTP(S) senza credenziali, mailto: e tel: escono tramite il browser di sistema attraverso il plugin opener; ogni altro schema viene annullato. Un deep link che arriva prima che la finestra esista viene messo in buffer nello stato gestito e applicato appena esiste.


## Riferimento di config e capability

tauri.conf.json imposta productName, version (da incrementare prima di una release — il workflow può sovrascriverla), l'identifier (check:release-config richiede di cambiarlo da com.supastack.desktop), lo schema di deep link supastack, il blocco updater sentinella, i target del bundle e le icone segnaposto. capabilities/default.json concede core:default più opener:allow-open-url — allargalo solo quando un nuovo plugin ne ha bisogno.


## Come viene testata la shell

corepack pnpm --filter @supastack/desktop test controlla la sintassi della pagina di avvio ed esegue la suite di unit test Rust che copre risoluzione degli URL, deep link, zoom e logica di canale; typecheck esegue cargo check. Gli script di rilascio JavaScript sono coperti dalle suite vitest del repository, e la pipeline CI compila installer reali su tutti e tre i sistemi operativi a ogni modifica.

```
corepack pnpm --filter @supastack/desktop typecheck
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop check:release-config
```


## Verifica e risoluzione dei problemi

Esegui la suite del package dopo aver toccato src-tauri, poi verifica il comportamento nativo a mano su ogni sistema operativo di destinazione — i controlli unitari provano le regole, non la finestra. Mantieni il nuovo comportamento della shell dentro plugin e voci di menu, così la webview resta una semplice app web.


## Successivo

[Panoramica dei moduli](https://supastack.dev/it/docs/modules.md)
