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

90 lines
4.5 KiB
Markdown

<!-- file: deltas/0.2.6/pre.003-fix.001.md -->
<!-- version: 1 -->
# Delta `0.2.6-pre.003-fix.001` — corrections Config + visibilité Logging frontend
## Base requise
```text
0.2.6-pre.003 appliquée
workspace.package.version = 0.2.6-pre.3
```
La validation opérateur de `pre.003` a confirmé `cargo fmt --all`, l'audit structurel, `cargo check --workspace`, `cargo test -p ksp-app-wallet-desk` et le démarrage `cargo tauri dev`. Elle a également révélé un warning Clippy dans l'adapter Wallet, un test registry obsolète et une fixture Config Desk incomplète ; `cargo test -p ksp-config-lib` puis `cargo test --workspace` ne sont donc pas verts sur la livraison initiale.
## Type de livraison
```text
ksp-general-0.2.6-pre.003-fix.001.zip
```
Le correctif touche Rust, TypeScript et configuration runtime. Conformément à `VER-ID-007`/`VER-ID-010`, la version technique devient :
```text
workspace.package.version = 0.2.6-pre.3.fix.1
commit = v0.2.6-pre.003-fix.001
```
## Corrections de validation
Le warning Clippy `redundant_pattern_matching` de `ksp-config-lib/src/wallet.rs` est corrigé avec `validation.is_err()`.
Le canari registry historique n'affirme plus qu'aucun runtime composite n'existe : `cfg.composite.ksp-app-wallet-desk` est maintenant un document réellement enregistré et associé à `schema.composite`.
Les fixtures utilisées par Config Desk sont complétées avec `std.wallet.json` et `composite.ksp-app-wallet-desk.json`. Le test d'inventory vérifie désormais Logging, Transport, Wallet et le composite enregistré au lieu d'échouer sur un fichier fixture absent.
## Logging composite Wallet Desk
`cfg.composite.ksp-app-wallet-desk` référençait déjà le composant `logging`. Le correctif rend cette sélection explicite et spécifique à Wallet Desk :
```text
logging -> cfg.std.logging / wallet_desk_dev
```
Le profil `wallet_desk_dev` ajouté à `std.logging.json` conserve le niveau global KSP à `info`, mais ouvre `ksp-app-wallet-desk` à `trace`. La console est routée à `trace` uniquement pour ce target prefix et un fichier dédié `wallet-desk/ksp-app-wallet-desk.log` reçoit également les événements `trace`. Les profils `devnet`, `temporary` et `tests` du composite utilisent tous ce profil Logging.
Cette configuration est volontairement orientée développement de Wallet Desk afin de rendre immédiatement observables les actions frontend sans rendre tous les targets KSP globalement verbeux. Elle pourra être resserrée plus tard sans modifier le bridge.
## Instrumentation frontend
Le bridge existant `frontend -> emit_frontend_log -> ksp-logging-lib` est conservé. `main.ts` ajoute un listener de capture générique pour les contrôles interactifs :
```text
button
a
input / select / textarea
[role=button] / [role=tab]
[data-view]
[data-shell-action]
```
Chaque clic produit un événement `trace` `Frontend control clicked` avec uniquement des métadonnées techniques sûres : tag, id, type, rôle, état disabled, `data-view` et `data-shell-action`. Le texte et la valeur du contrôle ne sont pas sérialisés ; cela évite de créer plus tard une fuite de password ou d'autre donnée sensible lorsque les formulaires Wallet seront ajoutés. Les logs sémantiques spécifiques (`navigation activated`, actions shell, IPC) restent en complément.
## Dépendances
Aucune dépendance Cargo ou npm n'est ajoutée/modifiée. `package.json` et `tauri.conf.json` changent uniquement leur version applicative vers `0.2.6-pre.3.fix.1`. Aucune commande npm directe n'est requise.
## 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
```
Dans l'application, cliquer sur les boutons de navigation et les contrôles du shell doit produire des événements `TRACE` sous `ksp-app-wallet-desk.frontend.main` visibles dans la console et dans le fichier de log Wallet Desk du lancement. Aucun password/value de contrôle ne doit apparaître.
`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 ce fix, `pre.004` peut brancher l'inventory réel `.kspwallet` sur la base Config/Logging désormais cohérente.