133 lines
4.7 KiB
Markdown
133 lines
4.7 KiB
Markdown
<!-- 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`, 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.
|