Files
khadhroony-solana-project/deltas/0.2.6/pre.003-fix.002.md

133 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- file: deltas/0.2.6/pre.003-fix.002.md -->
<!-- version: 1 -->
# 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`, laudit 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 dinventaire `.env.example` : le scanner interprète le fragment `KSP_APP_WALLET_DESK` de lidentifiant Rust `FILE_ID_COMPOSITE_KSP_APP_WALLET_DESK` comme une variable denvironnement 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 nest 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 nest 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` nest 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_*` nactivent 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 linventory réel `.kspwallet` sur la base Config/Logging stabilisée.