v0.1.4-pre.004

This commit is contained in:
2026-08-16 10:40:23 +02:00
parent fa6d4e1039
commit fcc1e9913d
20 changed files with 633 additions and 17 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/006-V0_1_4_CONFIG_DESKTOP_PLAN.md -->
<!-- version: 4 -->
<!-- version: 5 -->
# Plan `0.1.4` — `ksp-app-config-desk`
@@ -220,6 +220,28 @@ Aucun framework React/Vue/Svelte n'est nécessaire pour ce manager spécialisé.
Le premier éditeur raw utilisera un contrôle texte natif correctement stylé ; aucun éditeur de code lourd n'est ajouté tant qu'un besoin fonctionnel ne l'impose pas.
### 3.4 Conventions frontend, artefacts et ports des applications desk
Le layout frontend reprend la convention éprouvée de bot3 : les sources web sont contenues dans `frontend/`, les modules TypeScript dans `frontend/ts/`, les styles SCSS dans `frontend/sass/` et les bindings TS-RS générés sous `frontend/ts/bindings/`. Les DTO Rust restent propriétaires de leur contrat ; les fichiers TypeScript générés ne sont jamais édités manuellement et `bindings/` reste ignoré par Git.
Les artefacts frontend construits doivent être séparés des sources. Pour `ksp-app-config-desk`, la destination contractuelle est fixée à :
```text
../../builds/khadhroony-solana-project/ksp-app-config-desk/dist
```
Cette valeur est utilisée par `build.frontendDist` dans `tauri.conf.json`. `vite.config.ts` utilisera la même destination comme `build.outDir` lors de son introduction. Elle remplace le `../dist`/`../../dist` historique du gabarit bot3.
La gestion npm suit une règle simple : npm est utilisé directement pour installer ou mettre à jour les dépendances (`npm i -D ...`). Le cycle normal de développement et de build passe par Tauri ; `cargo tauri dev` et `cargo tauri build` déclenchent eux-mêmes `npm run dev` / `npm run build` au travers des hooks Tauri. Il n'est pas demandé à l'opérateur de lancer séparément le serveur Vite. Aucun lockfile npm n'est versionné.
Chaque application Tauri desk KSP reçoit un couple de ports Vite/HMR propre. La première application réserve :
| Application | Port Vite HTTP | Port HMR |
|-----------------------|---------------:|---------:|
| `ksp-app-config-desk` | `1430` | `1431` |
Les applications suivantes incrémentent le couple de deux ports (`1432/1433`, puis `1434/1435`, etc.). Vite doit utiliser un port strict afin qu'une collision soit signalée au lieu de provoquer un basculement silencieux vers un autre port. Cette allocation permet de faire fonctionner simultanément plusieurs applications desk en mode développement.
## 4. Audit des dépendances actuelles au 2026-08-16
Aucune dépendance n'est ajoutée par `pre.001`. Les versions suivantes ont été revérifiées depuis les registres/documentations officiels afin de fixer la génération candidate à réévaluer **au moment exact de l'ajout** :
@@ -329,7 +351,7 @@ crates/ksp-app-config-desk/
│ │ ├── frontend_log.ts
│ │ ├── state.ts
│ │ └── bindings/ # généré, ignoré
│ └── scss/
│ └── sass/
│ ├── main.scss
│ ├── splash.scss
│ └── _shared.scss
@@ -1117,10 +1139,16 @@ pre.004 squelette Rust Tauri
- main.rs/lib.rs/tauri.rs minimaux
- builder Tauri configuré par étapes courtes/réassignées, sans chaîne monolithique
- tauri.conf/capabilities/icône
- frontendDist externe contractuel
- réservation 1430/1431 et convention des couples de ports desk
- layout frontend/ts/bindings + frontend/sass fixé sans dépendances npm prématurées
- single-instance
pre.005 squelette frontend/gabarit
- package.json + Vite/TypeScript
- npm utilisé pour la gestion des dépendances, cycle dev/build lancé par Tauri
- build.outDir identique au frontendDist externe
- port Vite 1430 strict + HMR 1431
- SCSS/Bootstrap/Font Awesome
- SimpleBar + resize-observer-polyfill comme socle du gabarit
- @fltsci/tauri-plugin-tracing avec plugin Rust

View File

@@ -1,5 +1,5 @@
<!-- file: docs/rules/RULES_KSP.md -->
<!-- version: 22 -->
<!-- version: 23 -->
# Règles spécifiques à KSP
@@ -214,6 +214,10 @@
- **KSP-APP-019** — Les applications Tauri KSP utilisent l'écosystème `tracing` à leur frontière desktop via le plugin Tauri de tracing retenu (`tauri-plugin-tracing` ou successeur explicitement validé) et des adapters similaires au modèle éprouvé de khadhroony-bot3. Elles n'utilisent pas `tauri-plugin-log` ni la façade `log`, sauf décision architecturale future explicite qui remplacerait cette règle. L'application ne configure pas directement `tracing-subscriber`/`tracing-appender` : `ksp-logging-lib` reste propriétaire du runtime Logging, le plugin Tauri servant d'adapter d'intégration desktop.
- **KSP-APP-020** — La première version de `ksp-app-config-desk` n'est clôturable que si l'UI permet de créer, modifier, sauvegarder et sélectionner plusieurs profils Logging, dont au minimum un profil mono-fichier et un profil multi-fichiers avec sorties séparées plus sortie logiciel/console, puis de recharger à chaud la configuration Logging et de constater effectivement le nouveau routage sans redémarrage de l'application.
- **KSP-APP-021** — `ksp-app-config-desk` est conçu comme un gestionnaire Config extensible : la première version peut fournir un éditeur Logging typé, mais son architecture/navigation/état ne doit pas figer l'application sur `std.logging.json`. De futurs `file_id`, schemas et éditeurs spécialisés doivent pouvoir être ajoutés sans déplacer la propriété des documents, de leur validation ou de leur persistence hors de `ksp-config-lib`.
- **KSP-APP-022** — La construction d'un `tauri::Builder` KSP reste progressive et lisible : une variable builder est configurée/réassignée par étapes courtes ou helpers ciblés plutôt qu'au moyen d'une longue chaîne monolithique, afin qu'un plugin, state, setup ou groupe de commandes puisse être désactivé sans restructurer l'ensemble du runtime.
- **KSP-APP-023** — Le gabarit Tauri KSP place les sources web sous `frontend/`, les modules TypeScript sous `frontend/ts/`, les styles SCSS sous `frontend/sass/` et les bindings TS-RS générés sous `frontend/ts/bindings/`. Les bindings et artefacts générés ne sont pas versionnés ; les DTO Rust applicatifs restent la source des contrats TS-RS.
- **KSP-APP-024** — Chaque application desk Tauri KSP possède un couple de ports Vite/HMR exclusif. L'allocation commence à `1430/1431` pour `ksp-app-config-desk` puis progresse par paires (`1432/1433`, `1434/1435`, etc.). Le port Vite est strict afin qu'une collision échoue explicitement au lieu de sélectionner silencieusement un autre port.
- **KSP-APP-025** — npm est utilisé directement pour installer ou mettre à jour les dépendances frontend (`npm i -D ...`). Le cycle normal de développement/build d'une application Tauri passe par les commandes Tauri, qui déclenchent les scripts npm configurés via `beforeDevCommand`/`beforeBuildCommand`; les lockfiles frontend restent non versionnés.
## Data plane / control plane