# Delta `0.2.9-pre.010-fix.001` — Clippy reconnect + cohérence crate-root ## 1. Base ```text 0.2.9-pre.010 workspace.package.version = 0.2.9-pre.10 ``` Le gate opérateur fourni confirme : ```text cargo fmt --all PASS python3 scripts/audit_rust_workspace_rules.py PASS / clean cargo check --workspace PASS cargo clippy --workspace --all-targets PASS + 2 warnings Transport unit 383/383 PASS Transport public_api 49/49 PASS Transport release_completeness 43/43 PASS Transport doctests 4/4 PASS cargo test --workspace PASS ``` ## 2. Motif Deux `clippy::collapsible_if` subsistent dans `grpc_stream.rs` : ```text ContinuityTracker::observe() éviction du cache borné run_subscribe_actor() Ping -> send_automatic_ping ``` La revue de code détecte également une incohérence documentaire dans `src/lib.rs` : le commentaire crate-root reste au niveau `pre.009` et affirme encore que reconnect/replay sont hors tranche, alors que `pre.010` les a matérialisés. ## 3. Correctifs ### 3.1 Clippy Les deux `if` imbriqués sont convertis en let-chains équivalentes. Aucun `#[allow(clippy::...)]` n'est ajouté. Aucune sémantique n'est modifiée : ```text cache duplicate toujours borné à 512 identités Ping automatique même send_automatic_ping, mêmes erreurs terminales reconnect inchangé ReplayInfo/from_slot inchangés gaps/duplicates compteurs inchangés backpressure/shutdown inchangés ``` ### 3.2 Documentation crate-root `ksp-onchain-transport-lib/src/lib.rs` décrit maintenant explicitement `0.2.9-pre.010` : reconnect borné KSP-owned, reprise depuis le dernier request/slot observé, gap prudent via ReplayInfo et duplicates observables sans promesse exactly-once/lossless. ### 3.3 Signal de version Le correctif touche du Rust ; conformément à `VER-ID-007`/`VER-ID-010` : ```text workspace.package.version = 0.2.9-pre.10.fix.1 commit attendu = v0.2.9-pre.010-fix.001 ``` ## 4. Documentation de release Mise à jour : ```text docs/plans/016-V0_2_9_YELLOWSTONE_GRPC_PLAN.md docs/validation/012-V0_2_9_YELLOWSTONE_GRPC.md ``` Le premier gate opérateur et le statut du fix y sont enregistrés. `pre.011` reste explicitement non commencée avant fermeture sans warning du présent fix. ## 5. Frontières inchangées ```text OUT fix.001 : Config V3 / PublicNode / provider facade OUT 0.2.9 : SubscribeDeshred aucune dépendance / feature Cargo ajoutée aucun wire protobuf modifié aucun contrat public reconnect/replay modifié ``` ## 6. Gate opérateur attendu ```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-core-lib --test workspace_dependencies cargo test --workspace ``` Attendu : Clippy sans warning, Transport 383 unit / 49 public API / 43 release-completeness / 4 doctests et workspace vert. Aucun `cargo tree` supplémentaire n'est requis, le graphe Cargo étant inchangé.