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

# 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](https://supastack.dev/fr/docs/desktop/before-you-start.md) et [Bases du terminal](https://supastack.dev/fr/docs/desktop/terminal-basics.md). 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 agents
```


## Où 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.

[Construisez votre première fonctionnalité desktop](https://supastack.dev/fr/docs/desktop/first-feature.md)

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


## Suivant

[Construire votre première fonctionnalité](https://supastack.dev/fr/docs/desktop/first-feature.md)
