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

145 lines
4.1 KiB
Markdown

<!-- file: deltas/0.2.5/pre.003-fix.001.md -->
<!-- version: 1 -->
# Delta `0.2.5-pre.003-fix.001` — conformité Clippy du wire Wallet V1
## Base requise
```text
livraison : 0.2.5-pre.003
workspace.package.version = "0.2.5-pre.3"
```
La base opérateur inclut les ajustements de présentation appliqués localement après `pre.003` dans `crates/ksp-wallet-lib/src/constants.rs` et `crates/ksp-wallet-lib/src/lib.rs`. Ce fix ne touche pas ces deux fichiers et doit donc être appliqué par-dessus cet état opérateur.
## Motif
La validation opérateur de `pre.003` donne :
```text
cargo fmt --all OK
cargo check --workspace OK
cargo clippy --workspace --all-targets OK avec 1 warning Wallet
cargo test -p ksp-wallet-lib OK
```
Clippy signale `clippy::collapsible_if` dans `crates/ksp-wallet-lib/src/wire.rs` lors de la vérification de l'unicité des `slot_id` OWNER/VIEW.
Même si ce lint n'est actuellement qu'un warning, KSP ne clôt pas volontairement une tranche Rust avec un warning connu dans le code introduit par la tranche lorsqu'une correction locale et sémantiquement neutre est disponible.
## Correction
Le test :
```rust
if let Some(view_slot_ref) = view_slot.as_ref() {
if owner_slot.slot_id() == view_slot_ref.slot_id() {
// ...
}
}
```
est remplacé par une let-chain Rust 2024 équivalente :
```rust
if let Some(view_slot_ref) = view_slot.as_ref()
&& owner_slot.slot_id() == view_slot_ref.slot_id()
{
// ...
}
```
Aucune sémantique wire, aucun invariant `.kspwallet`, aucun transcript/AAD, aucune dépendance et aucune API publique ne changent.
## Version Cargo
Le correctif modifie une source Rust de production. Conformément aux règles de signalement technique du workspace :
```text
0.2.5-pre.3 -> 0.2.5-pre.3.fix.1
```
## Fichiers modifiés
```text
Cargo.toml
crates/ksp-wallet-lib/src/wire.rs
```
## Fichiers ajoutés
```text
deltas/0.2.5/pre.003-fix.001.md
```
## Fichiers supprimés
Aucun.
## Fichiers opérateur volontairement préservés
Le fix n'embarque pas et ne réécrit pas :
```text
crates/ksp-wallet-lib/src/constants.rs
crates/ksp-wallet-lib/src/lib.rs
```
Les regroupements `pub const` / `pub(crate) const` et `pub use` / `pub(crate) use` effectués par l'opérateur restent donc intacts.
## Validation attendue après application
```bash
cargo fmt --all
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-wallet-lib
```
Le checkpoint de dépendances de `pre.003` doit également auditer l'arbre après l'introduction de `base64` :
```bash
cargo tree -p ksp-wallet-lib
cargo tree -p ksp-wallet-lib -d
cargo tree -i base64
```
Objectifs du contrôle :
```text
Wallet ne dépend toujours que de ses frontières autorisées
base64 provient de la déclaration workspace et n'introduit pas une seconde génération injustifiée
aucune dépendance Config / Transport / Tauri / tracing direct / client RPC Solana n'apparaît sous Wallet
les duplications éventuelles de l'arbre sont comprises et justifiées
```
`cargo tree -d` peut afficher des duplications appartenant à d'autres branches du workspace lorsqu'il est lancé globalement ; le contrôle ciblé `-p ksp-wallet-lib` constitue la vue de référence de ce fix.
## Validations opérateur pré-fix enregistrées
- `cargo fmt --all` : OK ;
- `cargo check --workspace` : OK ;
- `cargo clippy --workspace --all-targets` : terminé avec un unique warning `clippy::collapsible_if` dans `wire.rs` ;
- `cargo test -p ksp-wallet-lib` : OK :
- 18 unit tests ;
- 2 dependency-boundary tests ;
- 5 public API tests ;
- 2 doctests `compile_fail`.
## Décisions
- corriger le warning au lieu de l'accepter ou de poser un `#[allow]` local ;
- ne pas modifier les ajustements manuels `constants.rs` / `lib.rs` de l'opérateur ;
- ajouter le contrôle `cargo tree` à la validation de la tranche ayant introduit `base64` ;
- ne pas élargir le périmètre fonctionnel de `pre.003`.
## Questions ouvertes
Aucune nouvelle question fonctionnelle introduite par ce correctif.
## Commit attendu
```text
v0.2.5-pre.003-fix.001
```