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

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 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 à :

[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é.