v0.2.5-pre.004-fix.002

This commit is contained in:
2026-08-19 11:47:32 +02:00
parent a0a5595186
commit 3c069347b7
3 changed files with 160 additions and 4 deletions

View File

@@ -1,12 +1,12 @@
# file: Cargo.toml
# version: 149
# version: 150
[workspace]
resolver = "3"
members = ["crates/ksp-app-config-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-logging-lib", "crates/ksp-onchain-transport-lib", "crates/ksp-wallet-lib"]
[workspace.package]
version = "0.2.5-pre.4.fix.1"
version = "0.2.5-pre.4.fix.2"
edition = "2024"
license = "MIT"
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-wallet-lib/tests/dependency_boundary.rs
// version: 5
// version: 6
//! Wallet-specific dependency and ownership canaries.
@@ -81,6 +81,7 @@ fn wallet_sources_use_core_pubkey_logging_facade_and_no_environment() -> std::io
assert!(all_source.contains("pub(crate) const TRACING_TARGET: &str = \"ksp-wallet-lib\";"));
assert!(!all_source.contains("solana_pubkey::"));
assert!(!all_source.contains("std::env::"));
assert!(!all_source.contains("tracing::"));
let direct_tracing_path = ["tracing", "::"].concat();
assert!(!all_source.contains(direct_tracing_path.as_str()));
return std::result::Result::Ok(());
}

View File

@@ -0,0 +1,155 @@
<!-- file: deltas/0.2.5/pre.004-fix.002.md -->
<!-- version: 1 -->
# Delta `0.2.5-pre.004-fix.002` — faux positif du canari global Logging sur le canari Wallet
## Base requise
```text
livraison : 0.2.5-pre.004-fix.001
workspace.package.version = "0.2.5-pre.4.fix.1"
```
La base conserve les réorganisations opérateur déjà acquises dans `crates/ksp-wallet-lib/src/constants.rs` et `crates/ksp-wallet-lib/src/lib.rs`. Ce fix ne touche pas ces fichiers.
## Motif
Les validations opérateur de `pre.004-fix.001` donnent :
```text
cargo fmt --all OK
cargo check --workspace OK
cargo clippy --workspace --all-targets OK
cargo test -p ksp-wallet-lib OK : 22 passés, 1 benchmark ignoré + intégration/API/doctests
cargo test --workspace ECHEC : 1 canari Logging
```
L'unique échec est :
```text
ksp-logging-lib/tests/ownership.rs
workspace_crates_do_not_bypass_ksp_logging_facade
crates/ksp-wallet-lib/tests/dependency_boundary.rs bypasses ksp-logging-lib via tracing
```
Le canari global Logging scanne tous les fichiers Rust des crates, tests compris, à la recherche d'un chemin direct `tracing::`.
Le canari Wallet contenait lui-même ce motif littéral afin de vérifier son absence dans `crates/ksp-wallet-lib/src/**` :
```rust
assert!(!all_source.contains("tracing::"));
```
Le canari global détectait donc la chaîne de test elle-même. Il s'agit d'un faux positif de composition entre deux canaris corrects pris isolément, et non d'une dépendance ou d'un appel direct à `tracing` dans le code Wallet.
## Correction
Le canari Wallet conserve exactement la même vérification mais construit le motif interdit à l'exécution :
```rust
let direct_tracing_path = ["tracing", "::"].concat();
assert!(!all_source.contains(direct_tracing_path.as_str()));
```
Le fichier source du test ne contient ainsi plus le token contigu recherché par le canari global, tandis que le contrôle Wallet continue de détecter toute apparition réelle de ce chemin dans `src/**`.
Le correctif ne :
- retire aucun canari ;
- n'ajoute aucun `#[allow]` ;
- ne modifie pas `ksp-logging-lib` ;
- ne modifie aucune API Wallet ;
- ne modifie aucune primitive crypto, aucun wire `.kspwallet`, aucun paramètre Argon2 et aucun vecteur.
## Benchmark Argon2 enregistré
Le benchmark opérateur de `pre.004-fix.001`, exécuté après les validations Wallet, donne :
```text
memory_kib=65536 iterations=3 parallelism=1 elapsed_ms=1742
memory_kib=131072 iterations=3 parallelism=1 elapsed_ms=3459
memory_kib=262144 iterations=3 parallelism=1 elapsed_ms=6925
```
Ces mesures sont enregistrées comme entrée du gate `pre.005`. Elles ne figent pas le profil de création dans ce fix.
## Version Cargo
Le correctif modifie un test Rust participant au build :
```text
0.2.5-pre.4.fix.1 -> 0.2.5-pre.4.fix.2
```
## Fichiers modifiés
```text
Cargo.toml
crates/ksp-wallet-lib/tests/dependency_boundary.rs
```
## Fichiers ajoutés
```text
deltas/0.2.5/pre.004-fix.002.md
```
## Fichiers supprimés
Aucun.
## Fichiers volontairement inchangés
```text
crates/ksp-wallet-lib/src/**
crates/ksp-wallet-lib/Cargo.toml
deltas/0.2.5/pre.004.md
deltas/0.2.5/pre.004-fix.001.md
docs/**
ROADMAP.md
CHANGELOG.md
```
## Validation attendue après application
```bash
cargo fmt --all
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-wallet-lib
cargo test --workspace
```
Le test de régression déterminant pour ce fix est :
```bash
cargo test -p ksp-logging-lib --test ownership
```
Il doit confirmer simultanément :
```text
dependency_scanner_distinguishes_tauri_plugin_tracing_from_tracing OK
workspace_crates_do_not_bypass_ksp_logging_facade OK
```
## Décisions
- conserver le canari Wallet interdisant le chemin direct vers `tracing` ;
- ne pas affaiblir le canari global Logging ;
- éliminer uniquement la représentation littérale auto-détectée dans le test Wallet ;
- ne pas modifier le périmètre fonctionnel de `pre.004` ;
- reporter la décision sur le profil Argon2 de création à `pre.005`, à partir des mesures opérateur déjà obtenues.
## Questions ouvertes
Aucune nouvelle question fonctionnelle introduite par ce correctif.
Le profil Argon2 de création reste la décision d'ouverture de `pre.005`.
## Commit attendu
```text
v0.2.5-pre.004-fix.002
```