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 /it/docs/desktop/project-structure.md (or send Accept: text/markdown).
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 e Nozioni di base sul terminale. 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 agentsDove 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.
- 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.pnged 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