3.1 KiB
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 :
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 warningunreachable_codedansws_session.rs;cargo clippy --workspace --all-targets: échec sur trois violationsclippy::implicit_returnplus le warningunreachable_code;cargo test --workspace: tests fonctionnels verts, dont les cinq nouveaux canaris WebSocket depre.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_commandn'utilise plusreturn match ...lorsque toutes les branches divergent déjà par desreturnexplicites ; 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_updateretourne explicitementcurrent.checked_add(1)afin de respecterclippy::implicit_return; - le header de version de
ws_session.rspasse de1à2.
Aucun changement n'est apporté :
- à
WsSessionou à 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-libetTRACING_TARGET = "ksp-onchain-transport-lib".
4. Version Cargo
Le Cargo.toml racine passe à :
[workspace.package]
version = "0.2.7-pre.4.fix.1"
Aucune autre entrée Cargo n'est modifiée.
5. Validation attendue
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é.