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/internals.md (or send Accept: text/markdown).
Dans l'enveloppe desktop
Page de démarrage, filtre de navigation, pile de plugins et référence de configuration.
La page de démarrage
La fenêtre charge d'abord la page intégrée d'apps/desktop/ui : elle lit le __SUPASTACK_APP_URL__ injecté, sonde le backend avec un délai de dix secondes et y redirige quand il est joignable. Un backend injoignable affiche un état Can't reach host avec un Réessayer qui se déclenche aussi au retour du réseau, donc un démarrage à froid ne montre jamais une fenêtre vide. Un paramètre de requête ?target= exerce la page dans un navigateur ordinaire.
Les fonctionnalités natives sont des plugins, pas de l'IPC
L'enveloppe n'enregistre aucune commande personnalisée — chaque capacité native arrive par des plugins Tauri : single-instance avec la fonctionnalité deep-link (qui achemine les arguments de second lancement sur Windows et Linux), deep-link, window-state (géométrie uniquement — le zoom et le canal gardent leurs propres fichiers annexes), opener, dialog, process (redémarrage après mise à jour), updater, autostart et global-shortcut, plus la fonctionnalité tray-icon. Étendre l'enveloppe signifie ajouter un plugin et une permission, pas forker l'interface de la webview.
Le filtre de navigation
La navigation reste pour les pages intégrées de l'enveloppe, l'origine du serveur de développement et l'origine exacte configurée de l'application. Les liens HTTP(S) sans identifiants, mailto: et tel: sortent par le navigateur système via le plugin opener ; tout autre schéma est annulé. Un lien profond arrivant avant que la fenêtre n'existe est mis en tampon dans l'état géré et appliqué une fois qu'elle existe.
Référence de configuration et de capabilities
tauri.conf.json définit productName, version (à incrémenter avant une publication — le workflow peut l'écraser), l'identifiant (check:release-config exige de le changer depuis com.supastack.desktop), le schéma de lien profond supastack, le bloc sentinelle de l'updater, les cibles de bundle et les icônes d'espace réservé. capabilities/default.json accorde core:default plus opener:allow-open-url — n'élargissez-le que lorsqu'un nouveau plugin en a besoin.
Comment l'enveloppe est testée
corepack pnpm --filter @supastack/desktop test vérifie la syntaxe de la page de démarrage et exécute la suite de tests unitaires Rust couvrant la résolution d'URL, les liens profonds, le zoom et la logique de canal ; typecheck lance cargo check. Les scripts de publication JavaScript sont couverts par les suites vitest du dépôt, et le pipeline CI construit de vrais installateurs sur les trois systèmes d'exploitation pour chaque changement.
corepack pnpm --filter @supastack/desktop typecheck
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop check:release-configVérification et dépannage
Exécutez la suite du package après avoir touché src-tauri, puis vérifiez le comportement natif à la main sur chaque système cible — les vérifications unitaires prouvent les règles, pas la fenêtre. Gardez tout nouveau comportement de l'enveloppe dans des plugins et des entrées de menu pour que la webview reste une application Web ordinaire.