# Delta `0.2.8-pre.002-fix.001` — Clippy et normalisation documentaire ## 1. Objet Ce correctif ferme le défaut Clippy observé après application de `0.2.8-pre.002` et audite l'organisation des documents actifs `0.2.8` afin d'éviter les sections désordonnées ou les fichiers fourre-tout. La livraison `pre.002.md` reste immutable ; ce fix porte uniquement les corrections nouvelles. Version workspace : ```text 0.2.8-pre.2.fix.1 ``` Livraison / commit attendu : ```text 0.2.8-pre.002-fix.001 v0.2.8-pre.002-fix.001 ``` Aucun tag prerelease. ## 2. Clippy : défaut reproduit par l'opérateur Le checkpoint opérateur de `pre.002` a donné : ```text cargo fmt --all OK python3 scripts/audit_rust_workspace_rules.py clean cargo check --workspace OK cargo clippy --workspace --all-targets FAIL cargo test -p ksp-onchain-transport-lib OK cargo test --workspace OK ``` Le seul blocage est `clippy::implicit_return` dans le nouveau fichier : ```text crates/ksp-onchain-transport-lib/unit_tests/ws_protocol_session.rs ``` Cinq diagnostics sont concernés : ```text 1 retour explicite manquant après la boucle `while let` de `accept_until_close` 2 predicates `find` sans `return` explicite 2 closures `map` sans `return` explicite ``` Le runtime WebSocket, les façades protocolaires et les tests fonctionnels ne sont pas en échec : le ciblé Transport et le workspace complet passent avant ce fix. ## 3. Correction Rust Le fix ajoute uniquement les retours explicites exigés par la politique Clippy KSP dans la fixture de test. Aucun changement n'est apporté à : ```text WsSession SolanaStandardWsSession HeliusLaserStreamWsSession WsProtocolKind wire WebSocket reconnect/backpressure/shutdown Config transactionSubscribe heartbeat ``` Comme le correctif modifie du code de test consommé par le build, Cargo passe conformément à `VERSION_WORKFLOW.md` de : ```text 0.2.8-pre.2 ``` à : ```text 0.2.8-pre.2.fix.1 ``` ## 4. Audit structurel des documents Références appliquées : ```text docs/rules/RULES_DOCUMENTATION.md docs/rules/FILE_CONTRACTS.md docs/plans/000-README.md docs/validation/000-README.md ``` Constats : ```text docs/plans : 000-README puis 001..015, ordre cohérent, aucune collision docs/validation : 000-README puis 001..011, ordre cohérent, aucune collision plan 015 : une seule responsabilité, planifier/auditer la release 0.2.8 validation 011 : une seule responsabilité, conserver critères/matrices/preuves 0.2.8 deltas/0.2.8 : journal de livraison séparé, aucun second changelog dans docs/ ``` Aucun nouveau répertoire ou fichier documentaire durable n'est nécessaire. Les plans historiques `0.2.5` à `0.2.7` sont de taille comparable ou supérieure ; la taille du plan `015` ne justifie donc pas à elle seule un split. Deux défauts d'organisation internes sont toutefois corrigés : 1. le plan présentait les décisions de façade dans une première section puis des décisions d'architecture détaillées beaucoup plus loin ; elles sont regroupées dans une seule section `Architecture et frontières de protocole` ; 2. la validation répétait le forecast détaillé alors que `FILE_CONTRACTS.md` attribue cette responsabilité au plan ; cette duplication est supprimée. L'ordre du plan actif devient : ```text état courant forecast souple sources / baseline héritage v0.2.7 audit Helius matrice normative architecture et frontières threat model dépendances stratégie de validation / smoke questions reportées critères de split / clôture checkpoint courant ``` La validation reste organisée autour de : ```text références gate pre.001 matrices provider/façades contrat transaction à valider checklists lifecycle/non-régression/sécurité smoke preuves pre.002/fix contrôle structurel docs ``` ## 5. État de validation `pre.002` reporté correctement Les preuves opérateur reçues sont intégrées à `docs/validation/011-*` : ```text Transport unit tests 313 passed Transport public API tests 37 passed release completeness 25 passed doctor tests compile_fail 2 passed cargo test -p Transport OK cargo test --workspace OK ``` Le seul gate restant à revalider après application du fix est la chaîne complète, en particulier Clippy. ## 6. Fichiers de la livraison Nouveau : ```text deltas/0.2.8/pre.002-fix.001.md ``` Modifiés : ```text Cargo.toml crates/ksp-onchain-transport-lib/unit_tests/ws_protocol_session.rs docs/plans/015-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET_PLAN.md docs/validation/011-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET.md ``` Aucun autre fichier n'est nécessaire. ## 7. Validations exécutées dans le sandbox de préparation Exécuté après le fix : ```text python3 scripts/audit_rust_workspace_rules.py General Rust rule audit: clean Rust export completeness audit: 0 candidate(s) KSP workspace Rust rule audit: clean ``` Audit structurel local des documents : ```text DOC STRUCTURE AUDIT: clean docs/plans = 000..015 ordonné docs/validation = 000..011 ordonné H2/H3 plan actif = cohérent H2/H3 validation = cohérent ``` Le sandbox ne fournit pas Cargo/rustfmt ; aucune commande Cargo n'est donc déclarée réussie pour le fix lui-même. ## 8. Gate opérateur Après application : ```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 ``` Attendu : ```text aucun `clippy::implicit_return` aucun warning Rust 313+ tests Transport hérités/pré.002 verts 37+ public API verts 25+ release completeness verts 2 doctests compile_fail verts workspace complet vert ``` Si ce checkpoint est vert, `pre.002` + `pre.002-fix.001` sont `DONE` et `pre.003` peut commencer. ## 9. Suite `pre.003` reste inchangé : ajouter uniquement sur `HeliusLaserStreamWsSession` les six familles standard Helius supportées : ```text account logs program root signature slot ``` avec réutilisation du wire standard et absence durable de : ```text block slotsUpdates vote ``` Config Helius, `transactionSubscribe` et heartbeat restent hors `pre.003` conformément au forecast.