v0.2.7-pre.004-fix.001
This commit is contained in:
79
deltas/0.2.7/pre.004-fix.001.md
Normal file
79
deltas/0.2.7/pre.004-fix.001.md
Normal file
@@ -0,0 +1,79 @@
|
||||
<!-- 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é.
|
||||
Reference in New Issue
Block a user