Files
khadhroony-solana-project/deltas/0.1.4/pre.015-fix.001.md

74 lines
3.6 KiB
Markdown

<!-- file: deltas/0.1.4/pre.015-fix.001.md -->
<!-- version: 1 -->
# 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`.