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 /de/docs/desktop/internals.md (or send Accept: text/markdown).
Ein Blick in die Desktop-Shell
Boot-Seite, Navigations-Gate, Plugin-Stack und Konfigurationsreferenz.
Die Boot-Seite
Das Fenster lädt zuerst die gebündelte Seite in apps/desktop/ui: Sie liest die injizierte __SUPASTACK_APP_URL__, prüft das Backend mit einem 10-Sekunden-Timeout und leitet bei Erreichbarkeit weiter. Ein unerreichbares Backend rendert einen „Can't reach host“-Zustand mit einem Retry, der auch bei Netzwerkwiederkehr feuert — ein Kaltstart zeigt so nie ein leeres Fenster. Ein ?target=-Query-Parameter lässt die Seite in einem normalen Browser testen.
Native Funktionen sind Plugins, kein IPC
Die Shell registriert keine eigenen Commands — jede native Fähigkeit kommt über Tauri-Plugins: single-instance mit dem deep-link-Feature (das Argumente eines zweiten Starts unter Windows und Linux routet), deep-link, window-state (nur Geometrie — Zoom und Kanal behalten eigene Sidecars), opener, dialog, process (Neustart nach dem Update), updater, autostart und global-shortcut plus das tray-icon-Feature. Die Shell zu erweitern heißt, ein Plugin und eine Permission hinzuzufügen — nicht Webview-UI zu forken.
Das Navigations-Gate
Navigation bleibt für die gebündelten Shell-Seiten, den Dev-Server-Origin und den exakt konfigurierten App-Origin erlaubt. HTTP(S)-, mailto:- und tel:-Links ohne Zugangsdaten verlassen die App über den Systembrowser per opener-Plugin; jedes andere Schema wird abgebrochen. Ein Deep Link, der eintrifft, bevor das Fenster existiert, wird im Managed State gepuffert und angewendet, sobald es existiert.
Konfigurations- und Capability-Referenz
tauri.conf.json setzt productName, version (vor einem Release erhöhen — der Workflow kann sie überschreiben), die Kennung (check:release-config verlangt, sie von com.supastack.desktop zu ändern), das supastack-Deep-Link-Schema, den Updater-Sentinel-Block, Bundle-Ziele und die Platzhalter-Icons. capabilities/default.json gewährt core:default plus opener:allow-open-url — erweitern Sie es nur, wenn ein neues Plugin mehr braucht.
Wie die Shell getestet wird
corepack pnpm --filter @supastack/desktop test prüft die Boot-Seite syntaktisch und führt die Rust-Unit-Suite aus, die URL-Auflösung, Deep Links, Zoom und Kanal-Logik abdeckt; typecheck führt cargo check aus. Die JavaScript-Release-Skripte werden von den Vitest-Suiten des Repositories abgedeckt, und die CI-Pipeline baut bei jeder Änderung echte Installer auf allen drei Betriebssystemen.
corepack pnpm --filter @supastack/desktop typecheck
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop check:release-configÜberprüfung und Fehlerbehebung
Führen Sie nach Änderungen an src-tauri die Paket-Suite aus und prüfen Sie das native Verhalten anschließend von Hand auf jedem Ziel-OS — Unit-Checks belegen die Regeln, nicht das Fenster. Halten Sie neues Shell-Verhalten in Plugins und Menüeinträgen, damit die Webview eine schlichte Web-App bleibt.