# `ksp-app-config-desk` `ksp-app-config-desk` est l'application desktop spécialisée de management et de validation de la configuration KSP. La crate est un package Tauri mixte : ```text package : ksp-app-config-desk lib : ksp_app_config_desk_lib bin : ksp-app-config-desk ``` ## Responsabilités L'application reste une couche d'interface/composition. Les responsabilités de parsing, validation, profils, environnement, `.env`, secrets et persistence restent dans `ksp-config-lib`; le runtime Logging restera possédé par `ksp-logging-lib`. Le gabarit desktop actif fournit maintenant : - le verrou single-instance ; - l'assemblage Tauri centralisé dans `src/tauri.rs` ; - les fenêtres `splash` et `main` ; - le frontend Vanilla TypeScript + Vite sous `frontend/` ; - SCSS, Bootstrap et Font Awesome ; - SimpleBar + `resize-observer-polyfill` pour le scrolling du shell ; - `tauri-plugin-tracing` côté Rust et `@fltsci/tauri-plugin-tracing` côté frontend ; - les ports dédiés `1430` pour Vite HTTP et `1431` pour le WebSocket de développement ; - la destination frontend externe commune à Tauri et Vite. Le bridge de logging frontend KSP à target explicite n'est pas encore introduit : il appartient à une tranche dédiée afin de passer par `ksp-logging-lib` et de ne pas figer le target vide du bridge JS générique comme contrat KSP. ## Layout frontend ```text frontend/ ├── imgs/ ├── sass/ │ ├── _app.scss │ ├── _bootswatch.scss │ ├── _fontawesome.scss │ ├── _simplebar.scss │ ├── _variables.scss │ ├── main.scss │ └── splash.scss ├── ts/ │ ├── main.ts │ └── splash.ts ├── main.html └── splash.html ``` Les futurs bindings TS-RS seront générés sous : ```text frontend/ts/bindings/ksp_app_config_desk/... ``` Le répertoire de bindings n'est pas créé artificiellement avant le premier DTO réel. ## Artefacts frontend Les artefacts frontend construits ne sont pas versionnés. `tauri.conf.json` fixe : ```text ../../builds/khadhroony-solana-project/ksp-app-config-desk/dist ``` `vite.config.ts` résout cette même destination depuis la racine de la crate, ce qui maintient `dist` hors du workspace source et l'aligne avec la stratégie `.cargo/config.toml` pour les artefacts Rust. ## Ports desktop `ksp-app-config-desk` utilise : ```text Vite HTTP : 1430 Vite WS : 1431 ``` Le port HTTP est strict. Les futures applications desk utilisent les couples suivants `1432/1433`, `1434/1435`, etc. ## Dépendances frontend Les bibliothèques consommées par le bundle applicatif sont déclarées sous `dependencies` : `@fltsci/tauri-plugin-tracing`, `@fortawesome/fontawesome-free`, `@tauri-apps/api`, `bootstrap`, `simplebar` et `resize-observer-polyfill`. Les outils de compilation/développement et déclarations de types appartiennent à `devDependencies`, notamment `@tauri-apps/cli`, `@types/bootstrap`, `@types/node`, `sass-embedded`, `typescript` et `vite`. Les commandes npm directes sont réservées à l'installation ou à la mise à jour de ces dépendances ; le cycle normal de développement et de build est lancé depuis la racine du workspace par Tauri avec la configuration explicite de l'application.