From cb10fd354bf1225397186722ce77c2d67c988fc6 Mon Sep 17 00:00:00 2001 From: SinuS Von SifriduS Date: Sun, 16 Aug 2026 14:39:36 +0200 Subject: [PATCH] v0.1.4-pre.009 --- Cargo.toml | 4 +- config/std.logging.json | 4 +- crates/ksp-app-config-desk/README.md | 4 +- crates/ksp-app-config-desk/TODO.md | 9 +- crates/ksp-app-config-desk/USAGE.md | 21 +- crates/ksp-app-config-desk/frontend/main.html | 63 +++- .../frontend/sass/_app.scss | 23 +- .../frontend/ts/documents.ts | 279 ++++++++++++++++++ .../ksp-app-config-desk/frontend/ts/main.ts | 10 +- crates/ksp-app-config-desk/package.json | 2 + crates/ksp-app-config-desk/src/app_state.rs | 8 +- crates/ksp-app-config-desk/src/constants.rs | 2 + crates/ksp-app-config-desk/src/documents.rs | 275 +++++++++++++++++ crates/ksp-app-config-desk/src/errors.rs | 5 +- crates/ksp-app-config-desk/src/lib.rs | 9 +- crates/ksp-app-config-desk/src/tauri.rs | 33 ++- .../unit_tests/documents.rs | 32 ++ deltas/0.1.4/pre.009.md | 168 +++++++++++ docs/plans/006-V0_1_4_CONFIG_DESKTOP_PLAN.md | 9 +- docs/rules/RULES_KSP.md | 4 +- 20 files changed, 940 insertions(+), 24 deletions(-) create mode 100644 crates/ksp-app-config-desk/frontend/ts/documents.ts create mode 100644 crates/ksp-app-config-desk/src/documents.rs create mode 100644 crates/ksp-app-config-desk/unit_tests/documents.rs create mode 100644 deltas/0.1.4/pre.009.md diff --git a/Cargo.toml b/Cargo.toml index f3a9638..278494b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,12 +1,12 @@ # file: Cargo.toml -# version: 75 +# version: 76 [workspace] resolver = "3" members = ["crates/ksp-app-config-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-logging-lib"] [workspace.package] -version = "0.1.4-pre.8.fix.3" +version = "0.1.4-pre.9" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project" diff --git a/config/std.logging.json b/config/std.logging.json index cfd688d..e45584d 100644 --- a/config/std.logging.json +++ b/config/std.logging.json @@ -71,7 +71,9 @@ "target_prefix": "ksp-app-config-desk", "level": "debug" } - ] + ] } ] + + } diff --git a/crates/ksp-app-config-desk/README.md b/crates/ksp-app-config-desk/README.md index 39a661b..65b0730 100644 --- a/crates/ksp-app-config-desk/README.md +++ b/crates/ksp-app-config-desk/README.md @@ -1,5 +1,5 @@ - + # `ksp-app-config-desk` @@ -25,6 +25,8 @@ Le gabarit desktop actif fournit maintenant : - le frontend Vanilla TypeScript + Vite sous `frontend/` ; - SCSS, Bootstrap et Font Awesome ; - SimpleBar + `resize-observer-polyfill` pour le scrolling du shell ; +- DataTables 3 + Select 4 pour l’inventaire interactif des documents Config ; +- le panneau Documents générique alimenté par le registre `ksp-config-lib`, avec diagnostics backend et réparation validée ; - `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; diff --git a/crates/ksp-app-config-desk/TODO.md b/crates/ksp-app-config-desk/TODO.md index a3a504f..442731f 100644 --- a/crates/ksp-app-config-desk/TODO.md +++ b/crates/ksp-app-config-desk/TODO.md @@ -1,13 +1,14 @@ - + # TODO `ksp-app-config-desk` -Le gabarit frontend, le bootstrap Config/Logging, `AppState`, le `LoggingGuard` durable, les premiers DTO TS-RS, le bridge frontend logging KSP et le lifecycle `splash -> main` sont maintenant présents. +Le gabarit frontend, le bootstrap Config/Logging, `AppState`, le `LoggingGuard` durable, les premiers DTO TS-RS, le bridge frontend logging KSP, le lifecycle `splash -> main` et le panneau Documents sont maintenant présents. Les prochaines tranches doivent encore : -- développer les panneaux Documents, Profils, Environnement/`.env`, Secrets et Logging ; -- introduire DataTables au premier tableau qui exige tri, filtrage, sélection ou checkbox ; +- développer les panneaux Profils, Environnement/`.env`, Secrets et Logging ; +- faire évoluer le runtime Logging vers des fichiers applicatifs uniques par lancement (`app-name..`) ; +- ramener le target applicatif de `debug` à `info` ou `warn` avant clôture de la release ; - démontrer le hot reload Logging et le panneau de test de routage ; - étudier puis intégrer le retour Rust -> console WebKit via `tauri_plugin_tracing::WebviewLayer` dans le subscriber possédé par `ksp-logging-lib`, afin de pouvoir utiliser `attachConsole()` sans second subscriber, double émission ni boucle avec le bridge KSP. diff --git a/crates/ksp-app-config-desk/USAGE.md b/crates/ksp-app-config-desk/USAGE.md index b0af20f..962c4f6 100644 --- a/crates/ksp-app-config-desk/USAGE.md +++ b/crates/ksp-app-config-desk/USAGE.md @@ -1,11 +1,11 @@ - + # Utilisation de `ksp-app-config-desk` ## État actuel -Le gabarit Rust/Tauri et le frontend Vite/TypeScript/SCSS sont présents. Le backend initialise désormais Config, le runtime Logging et `AppState`; les panneaux métier Config restent volontairement absents à ce stade. +Le gabarit Rust/Tauri et le frontend Vite/TypeScript/SCSS sont présents. Le backend initialise Config, le runtime Logging et `AppState`. Le panneau Documents est fonctionnel ; les panneaux Profils, Environnement/`.env`, Secrets et Logging restent à compléter. La fenêtre `splash` est visible au démarrage. Après readiness du frontend et temporisation résolue par Config, l'application effectue le fade-out, affiche/focalise `main` puis détruit `splash`. La fenêtre principale expose immédiatement la navigation monofenêtre de référence. @@ -136,3 +136,20 @@ Seule la vue d'ensemble consomme déjà `get_app_snapshot`; les autres routes re ## Asset font du splash La police bot3 de référence est `DOS_Amazigh.ttf`. Vérifier l'asset local contre l'empreinte documentée dans `frontend/fonts/README.md` ; `frontend/sass/splash.scss` l'applique au titre du splash. + +## Panneau Documents + +La vue **Documents** liste les documents de kind `Config` depuis le registre `ksp-config-lib`; les schemas ne sont pas codés en dur dans le frontend. DataTables fournit tri, recherche, pagination et sélection simple. + +Pour chaque document, le backend expose : + +- `file_id` ; +- filename mappé ; +- schema associé ; +- path résolu par Config ; +- état valide/invalide ; +- étape de diagnostic `read`, `json`, `schema`, `semantic`, `effective` ou `other`. + +La sélection charge le source brut via `ConfigManagement::read_source()`, y compris lorsque le document est invalide mais lisible. Le bouton **Valider et sauvegarder** envoie le texte à `ConfigManagement::save_source_candidate()` : aucune écriture frontend directe du fichier n’est effectuée. Un candidat invalide est refusé avant persistence et le diagnostic backend reste l’autorité de validation. + +Les clics, sélections, chargements, remplacements DOM et sauvegardes sont tracés via le bridge frontend KSP sans journaliser le contenu du source. diff --git a/crates/ksp-app-config-desk/frontend/main.html b/crates/ksp-app-config-desk/frontend/main.html index 73a0d21..c5d49b8 100644 --- a/crates/ksp-app-config-desk/frontend/main.html +++ b/crates/ksp-app-config-desk/frontend/main.html @@ -1,5 +1,5 @@ - + @@ -55,6 +55,67 @@ + + +