# Delta `0.1.4-pre.015-fix.001` — clarification document/runtime Logging et Clippy ## Statut Correctif de `0.1.4-pre.015` livré pour validation locale. La persistence typée de `pre.015` fonctionne : création/clonage/renommage/suppression de profils, multi-sinks, sauvegarde atomique et refus d'un candidat invalide ont été exercés. Deux points nécessitent néanmoins un correctif avant validation de la tranche : - `cargo clippy --workspace --all-targets` signale un `collapsible_if` dans le test public de `ksp-config-lib` ; - l'interface peut laisser croire que **Recharger** applique au runtime actif une modification persistée, alors que `pre.015` ne fait volontairement aucun hot reload. ## Cause du comportement console `console.enabled=false` est bien persisté dans `std.logging.json`, mais le subscriber `tracing` global a déjà été construit au démarrage du processus. En `pre.015`, ni **Sauvegarder** ni le rechargement du brouillon ne passent par `ksp_logging_lib::reinitialize()`. Par conséquent : 1. la sauvegarde modifie la source persistée ; 2. **Recharger le document** relit cette source et resynchronise le brouillon ; 3. le runtime Logging du processus courant reste inchangé ; 4. un redémarrage de l'application applique la nouvelle source ; 5. le hot reload sans redémarrage reste la responsabilité de `pre.016`. Les lignes émises par Cargo, Tauri CLI et Vite avant/pendant `cargo tauri dev` ne sont pas des événements du runtime Logging KSP et ne sont jamais contrôlées par `console.enabled`. ## Modifications ### Clippy - correction du `collapsible_if` dans `crates/ksp-config-lib/tests/public_api.rs` avec une chaîne `if let ... && let ...` compatible Rust 2024 ; - aucun affaiblissement du test public `LoggingFileConfig::set_ansi()`. ### Config Desk - renommage du bouton Logging **Recharger** en **Recharger le document** ; - ajout d'un avertissement permanent distinguant clairement la source persistée du subscriber actif ; - après sauvegarde, le rapport indique explicitement `document persisté · runtime actif inchangé` ; - après rechargement, le statut précise que seul le brouillon est resynchronisé avec la source ; - le modal d'abandon d'un brouillon sale précise lui aussi qu'il ne recharge pas le runtime. ### Documentation - README et USAGE explicitent la frontière `document persisté` / `runtime actif` ; - USAGE rappelle que les sorties Cargo/Tauri/Vite restent visibles même lorsque la console KSP est désactivée ; - plan `0.1.4` complète `pre.015` avec cette distinction et conserve `pre.016` comme propriétaire du hot reload. ## Version technique ```text 0.1.4-pre.15.fix.1 ``` ## Validation attendue ```bash cargo fmt --all cargo check --workspace cargo clippy --workspace --all-targets cargo test -p ksp-app-config-desk cargo test -p ksp-config-lib cargo tauri dev -c crates/ksp-app-config-desk/tauri.conf.json ``` Puis : 1. dans Logging, décocher **Console / Enabled** pour le profil par défaut ; 2. sauvegarder puis **Recharger le document** : la case doit rester décochée, mais les logs applicatifs du processus courant peuvent continuer car le runtime n'a pas été reconfiguré ; 3. arrêter complètement l'application puis relancer `cargo tauri dev -c crates/ksp-app-config-desk/tauri.conf.json` ; 4. distinguer les messages Cargo/Tauri/Vite des événements KSP : avec `console.enabled=false`, aucune nouvelle ligne applicative horodatée `ksp-app-config-desk...` ne doit être routée vers la console par le runtime KSP ; 5. réactiver ensuite la console dans la source si nécessaire pour poursuivre les validations `pre.015` avant `pre.016`.