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

80 lines
3.1 KiB
Markdown

<!-- file: deltas/0.2.7/pre.004-fix.001.md -->
<!-- version: 1 -->
# Delta `0.2.7-pre.004-fix.001` — conformité Clippy du runtime WebSocket
## 1. Objet
Ce correctif ferme les écarts de compilation stricte détectés par la validation opérateur de `0.2.7-pre.004` sans modifier la surface fonctionnelle WebSocket, les dépendances ni l'architecture de session.
Comme le correctif modifie du code Rust, le signal technique Cargo est synchronisé avec l'identité de livraison conformément aux règles KSP :
```text
livraison = 0.2.7-pre.004-fix.001
workspace.package.version = 0.2.7-pre.4.fix.1
commit = v0.2.7-pre.004-fix.001
```
Aucun tag prerelease.
## 2. Écarts détectés sur `pre.004`
La validation opérateur a confirmé :
- `cargo fmt --all` : OK ;
- `scripts/audit_rust_workspace_rules.py` : clean ;
- `cargo check --workspace` : compilation réussie mais un warning `unreachable_code` dans `ws_session.rs` ;
- `cargo clippy --workspace --all-targets` : échec sur trois violations `clippy::implicit_return` plus le warning `unreachable_code` ;
- `cargo test --workspace` : tests fonctionnels verts, dont les cinq nouveaux canaris WebSocket de `pre.004`.
Le problème est donc limité à la conformité aux règles Rust strictes du workspace et non au comportement couvert par les tests.
## 3. Corrections `ws_session.rs`
Le runtime WebSocket est conservé fonctionnellement à l'identique.
Les corrections sont :
- `handle_session_command` n'utilise plus `return match ...` lorsque toutes les branches divergent déjà par des `return` explicites ; cela supprime l'expression inatteignable signalée par Rust ;
- la collecte des requêtes JSON-RPC expirées n'utilise plus une closure `filter_map` à retours implicites ; une boucle explicite construit désormais la liste des identifiants expirés ;
- la closure passée à `AtomicU64::fetch_update` retourne explicitement `current.checked_add(1)` afin de respecter `clippy::implicit_return` ;
- le header de version de `ws_session.rs` passe de `1` à `2`.
Aucun changement n'est apporté :
- à `WsSession` ou à sa surface publique ;
- aux états de lifecycle ;
- aux limites de message/frame/write buffer ;
- au pending map et aux timeouts ;
- aux dépendances `tokio-tungstenite` / `futures-util` ;
- au firewall de dépendances ;
- au tracing : toutes les émissions restent exclusivement via `ksp-logging-lib` et `TRACING_TARGET = "ksp-onchain-transport-lib"`.
## 4. Version Cargo
Le `Cargo.toml` racine passe à :
```toml
[workspace.package]
version = "0.2.7-pre.4.fix.1"
```
Aucune autre entrée Cargo n'est modifiée.
## 5. Validation attendue
```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 --workspace
```
Le smoke Devnet reste opt-in et n'est pas requis pour ce correctif.
## 6. Suite
Si ce checkpoint est vert, `0.2.7-pre.004` est considéré clos via `pre.004-fix.001` et la série peut poursuivre avec `0.2.7-pre.005` : limites adversariales, control frames, cancellation, close et shutdown borné.