# Delta `0.2.6-pre.003-fix.002` — canari environnement + profils Logging génériques ## Base requise ```text 0.2.6-pre.003-fix.001 appliquée workspace.package.version = 0.2.6-pre.3.fix.1 ``` La validation opérateur de `pre.003-fix.001` confirme `cargo fmt --all`, l’audit structurel, `cargo check --workspace`, `cargo clippy --workspace --all-targets`, `cargo test -p ksp-app-config-desk`, `cargo test -p ksp-app-wallet-desk` ainsi que le comportement Tauri/trace frontend. `cargo test -p ksp-config-lib` et `cargo test --workspace` révèlent toutefois un dernier défaut du canari d’inventaire `.env.example` : le scanner interprète le fragment `KSP_APP_WALLET_DESK` de l’identifiant Rust `FILE_ID_COMPOSITE_KSP_APP_WALLET_DESK` comme une variable d’environnement réelle. ## Type de livraison ```text ksp-general-0.2.6-pre.003-fix.002.zip ``` Le correctif touche tests Rust et configuration runtime Logging. La version technique devient : ```text workspace.package.version = 0.2.6-pre.3.fix.2 commit = v0.2.6-pre.003-fix.002 ``` `ksp-app-wallet-desk/package.json` et `tauri.conf.json` suivent le signal technique `0.2.6-pre.3.fix.2`. Aucune dépendance Cargo ou npm n’est ajoutée ou modifiée. ## Correction du scanner `.env.example` `collect_environment_names` exige désormais une frontière lexicale valide avant et après un nom KSP/KSPB. Un fragment inclus dans un identifiant Rust plus long n’est donc plus considéré comme une variable runtime. Le canari couvre explicitement : ```text FILE_ID_COMPOSITE_KSP_APP_WALLET_DESK -X-> KSP_APP_WALLET_DESK KSP_PUBLIC_RPC_URL_SUFFIXED -X-> KSP_PUBLIC_RPC_URL_SUFFIXED "KSP_PUBLIC_RPC_URL" -> KSP_PUBLIC_RPC_URL ``` Aucune fausse entrée `KSP_APP_WALLET_DESK` n’est ajoutée à `.env.example`. ## Profils standard Logging `config/std.logging.json` conserve `local_dev` pour compatibilité et ajoute une surface générique réutilisable : ```text console_error console_warn console_info console_debug console_trace file_info superdev supertrace ``` Les cinq profils `console_*` n’activent que la console au niveau correspondant. `file_info` désactive la console et écrit tous les targets KSP au niveau `info` dans le sink global `info/ksp-info.log`. `superdev` utilise : ```text console = debug fichiers = debug, un par target KSP racine ``` `supertrace` utilise : ```text console = debug fichiers = trace, un par target KSP racine ``` Les targets racines actuellement couvertes sont : ```text ksp-app-config-desk ksp-app-wallet-desk ksp-config-lib ksp-core-lib ksp-logging-lib ksp-onchain-transport-lib ksp-wallet-lib ``` Les filtres de sortie sont des préfixes : les sous-targets tels que `ksp-app-wallet-desk.frontend.main` sont donc routés dans le fichier du target racine correspondant. ## Composite Wallet Desk Le profil ad hoc `wallet_desk_dev` est supprimé. Les profils `devnet`, `temporary` et `tests` de `cfg.composite.ksp-app-wallet-desk` sélectionnent temporairement : ```text logging -> cfg.std.logging / supertrace ``` Ce choix permet de garder la console lisible en `debug` tout en conservant les événements `trace` frontend dans le fichier `targets/trace/ksp-app-wallet-desk.log`. Le niveau Logging reste entièrement piloté par la composition Config et pourra être remplacé plus tard par `superdev`, `console_info` ou un autre profil sans changement du runtime Wallet Desk. ## Canaris Les tests Config vérifient désormais la présence de la famille de profils Logging et les propriétés structurantes de `superdev`/`supertrace`. Le test de composition Wallet Desk vérifie la sélection `supertrace`, la console `debug` et les sept sinks `trace` par target. ## Validation opérateur requise Après application : ```bash cargo fmt --all python3 scripts/audit_rust_workspace_rules.py cargo check --workspace cargo clippy --workspace --all-targets cargo test -p ksp-config-lib cargo test -p ksp-app-config-desk cargo test -p ksp-app-wallet-desk cargo test --workspace KSP_WALLETS_DIRECTORY=var/wallet-desk-pre003 cargo tauri dev -c crates/ksp-app-wallet-desk/tauri.conf.json ``` Pendant le `tauri dev`, les événements frontend `trace` ne sont plus attendus dans la console `supertrace` lorsque leur niveau dépasse `debug`, mais ils doivent être présents dans le fichier de lancement correspondant au target `ksp-app-wallet-desk`. Les événements Rust/frontend `debug` restent visibles en console. `cargo tauri build -c crates/ksp-app-wallet-desk/tauri.conf.json` reste exclu de ce fix et réservé à la toute dernière validation de `0.2.6`. ## Suite Après validation de `pre.003-fix.002`, `pre.004` peut brancher l’inventory réel `.kspwallet` sur la base Config/Logging stabilisée.