Files
khadhroony-solana-project/deltas/0.2.7/pre.002-fix.001.md

157 lines
5.5 KiB
Markdown

<!-- file: deltas/0.2.7/pre.002-fix.001.md -->
<!-- version: 2 -->
# Delta `0.2.7-pre.002-fix.001` — Clippy strict, canaris desktop et signal Cargo synchronisé
## 1. Base requise
```text
0.2.7-pre.002 appliquée
workspace.package.version = 0.2.7-pre.2
```
La validation opérateur de `0.2.7-pre.002` confirme :
```text
cargo fmt --all OK
python3 scripts/audit_rust_workspace_rules.py clean
cargo check --workspace OK avec 2 warnings dead_code WS
cargo test -p ksp-onchain-transport-lib 256 unit + 28 public API + 22 release completeness OK
```
`cargo clippy --workspace --all-targets` échoue sur les règles workspace strictes `clippy::implicit_return` et `clippy::question_mark_used`. `cargo test --workspace` atteint ensuite le canari Config Desk qui compare encore la version packagée stable `0.2.6` à la prerelease Cargo courante.
Cette version 2 du fichier delta accompagne l'archive d'échange **corrigée** de `pre.002-fix.001`. L'archive `pre.002-fix.001` précédemment transmise sans mise à jour du `Cargo.toml` racine est révoquée avant application/commit : elle ne doit pas être utilisée.
## 2. Signal technique
Le correctif touche des sources Rust et des tests Rust. Conformément à `VER-ID-007`, `VER-ID-010` et au contrat `Cargo.toml` de `FILE_CONTRACTS.md`, le signal Cargo est synchronisé :
```text
livraison = 0.2.7-pre.002-fix.001
workspace.package.version = 0.2.7-pre.2.fix.1
commit = v0.2.7-pre.002-fix.001
```
Aucun tag prerelease.
Toutes les crates qui utilisent `version.workspace = true` héritent automatiquement de `0.2.7-pre.2.fix.1`.
Le manifeste racine passe aussi :
```text
# version: 193 -> 194
```
Aucune dépendance, feature, membre workspace ou lint n'est modifié.
## 3. Corrections Transport
`crates/ksp-onchain-transport-lib/src/ws_settings.rs` et `ws_lifecycle.rs` sont alignés avec les lints workspace stricts :
- les helpers `as_str()` utilisent un `return match` explicite ;
- les propagations d'erreur n'utilisent plus l'opérateur `?`, interdit par `clippy::question_mark_used` ;
- les constructeurs crate-internal de snapshots, encore réservés aux tests dans `pre.002`, sont compilés uniquement sous `cfg(test)` afin de supprimer les warnings `dead_code` avant leur consommation runtime future.
Aucun contrat public, default WebSocket, logging target ou règle de redaction n'est modifié. Le tracing reste exclusivement émis via `ksp-logging-lib` avec le `TRACING_TARGET` de `ksp-onchain-transport-lib`; aucun `tracing` direct n'est introduit.
## 4. Canaris desktop packagés
Le test Config Desk :
```text
pre_018_packaged_runtime_bundles_config_resources_and_activates_shared_writable_root
```
ne compare plus `tauri.conf.json` et `package.json` à chaque valeur de `CARGO_PKG_VERSION`. Cette égalité rendait le test faux dès l'ouverture d'une prerelease Cargo alors que les ressources desktop packagées restaient volontairement sur la baseline stable `0.2.6`.
Le canari Wallet Desk analogue est corrigé dans la même livraison afin d'éviter le même faux négatif lors du `cargo test --workspace` suivant.
Les garanties conservées sont :
```text
version tauri >= 0.2.6
version package >= 0.2.6
version tauri == version package
```
Le cœur SemVer est comparé sur `major.minor.patch`; un suffixe prerelease éventuel ne change pas ce floor. Wallet Desk conserve en plus la vérification que le HTML embarque la version packagée réellement déclarée.
Les versions npm/Tauri ne sont pas forcées à suivre chaque prerelease Cargo par ce correctif.
## 5. Fichiers ajoutés
```text
deltas/0.2.7/pre.002-fix.001.md
```
## 6. Fichiers modifiés
```text
Cargo.toml
crates/ksp-app-config-desk/tests/desktop_contract.rs
crates/ksp-app-wallet-desk/tests/desktop_contract.rs
crates/ksp-onchain-transport-lib/src/ws_lifecycle.rs
crates/ksp-onchain-transport-lib/src/ws_settings.rs
```
## 7. Fichiers supprimés
```text
aucun
```
## 8. Validations exécutées pour la préparation de l'archive corrigée
Sur la reconstruction `0.2.7-pre.002 + pre.002-fix.001 corrigé` :
```text
python3 scripts/audit_rust_workspace_rules.py OK / clean
inspection workspace.package.version 0.2.7-pre.2.fix.1
inspection absence de tracing direct OK
inspection absence de ? dans ws_settings.rs OK
inspection contenu archive OK
```
## 9. Validations non exécutées dans le sandbox
Cargo n'est pas disponible dans l'environnement de préparation. Aucun gate Cargo n'est déclaré réussi pour cette archive corrigée.
## 10. Validation opérateur requise
Après application de **cette archive corrigée uniquement** :
```bash
cargo fmt --all
python3 scripts/audit_rust_workspace_rules.py
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-onchain-transport-lib
cargo test -p ksp-app-config-desk --test desktop_contract
cargo test -p ksp-app-wallet-desk --test desktop_contract
cargo test --workspace
```
Si ce checkpoint est vert, le commit attendu est :
```text
v0.2.7-pre.002-fix.001
```
La tranche suivante reste `0.2.7-pre.003`.
## 11. Décisions prises
```text
le fix code porte bien un signal Cargo fix.1
les canaris desktop conservent un floor >= 0.2.6 au lieu d'une égalité à CARGO_PKG_VERSION
aucune modification fonctionnelle supplémentaire de la surface WebSocket
aucune synchronisation forcée des versions npm/Tauri avec les prereleases Cargo
```
## 12. Questions ouvertes
```text
aucune pour ce correctif
```