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 /fr/docs/desktop/project-structure.md (or send Accept: text/markdown).
Structure du projet
Trouvez le shell Rust, la page de démarrage, les scripts de release et la frontière vers l'application web.
Configuration et paramètres
Avant toute étape, lisez Avant de commencer et Bases du terminal. Ouvrez le dossier supastack à sa racine — le dossier contenant package.json. Un checkout Desktop contient apps/desktop et ses scripts de release ; le monorepo All Platforms ajoute le backend Web et l'application mobile. Une variable d'environnement est un paramètre nommé stocké dans un fichier .env local ou votre tableau de bord d'hébergement ; le shell lit SUPASTACK_APP_URL comme un paramètre de terminal, pas depuis un fichier.
1. Ouvrez apps/desktop/src-tauri/src/lib.rs — tout le comportement natif vit dans ce seul fichier.
2. Parcourez apps/desktop/src-tauri/ — configuration, capabilities et icônes.
3. Depuis la racine du dépôt, exécutez corepack pnpm --filter @supastack/desktop dev avec un backend accessible.
Le checkout ne contient que le shell Tauri : le source Rust, sa configuration, la page de démarrage et les scripts de release. Les écrans produit vivent dans l'application web que la fenêtre charge — un checkout uniquement Desktop n'a pas d'écrans d'application propres. Lisez AGENTS.md et .ai/PROJECT_CONTEXT.md avant de modifier le comportement ; les documents miroir .ai/ consignent des décisions invisibles depuis un fichier seul.
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 agentsOù va une modification
Avant de modifier, décidez quel côté possède le changement : tout ce qu'un utilisateur voit comme UI produit appartient à l'application web ; seul le comportement au niveau OS appartient à Rust.
- Comportement de fenêtre, barre d'état, menu, raccourci ou instance unique →
apps/desktop/src-tauri/src/lib.rs. - Une nouvelle permission de webview →
apps/desktop/src-tauri/capabilities/default.json— n'élargissez que lorsqu'une fonction native en a besoin. - Identifiant de bundle, version, endpoint de l'updater ou options de plugins →
apps/desktop/src-tauri/tauri.conf.json. - Icônes produit de substitution → remplacez
placeholder-icon.pnget exécutez le script d'icônes. - Comportement de démarrage, de chargement ou de surcouche hors ligne →
apps/desktop/ui/. - Tout écran, paramètre ou donnée produit → le dépôt de l'application web — le shell ne forke jamais l'UI produit.
Processus d’implémentation
Pour un changement natif, modifiez lib.rs, exécutez cargo check et les tests Rust, puis éprouvez la fenêtre sur chaque OS cible — le comportement de la barre d'état, du raccourci et des deep links diffère par plateforme. Le skill add-a-desktop-capability dans .agents/skills/ suit ce même ordre.
Vérification et dépannage
cargo check intercepte les erreurs de compilation et cargo test couvre la logique pure. La vraie vérification est la fenêtre en cours sous Windows, macOS et Linux — la barre d'état, le raccourci et les deep links ne peuvent pas être prouvés par des tests seuls.
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop typecheck