# Delta `0.2.2-pre.003-fix.001` — activation production des helpers wire Accounts partagés ## Base requise ```text livraison : 0.2.2-pre.003 workspace.package.version = "0.2.2-pre.3" ``` Le correctif est ouvert après validation locale communiquée le 2026-08-18. `pre.003` active en production les cinq wrappers Accounts, mais leurs chemins de décodage utilisent `crate::decode_wire_json` et `crate::parse_wire_pubkey` alors que les deux réexports crate-private sont restés conditionnés par `#[cfg(test)]` dans `lib.rs` depuis le nettoyage préparatoire de `pre.002-fix.001`. La conséquence est une régression de compilation `E0425` sur `cargo check`, `cargo clippy` et `cargo test`. ## Objectif Rendre production-live uniquement les deux réexports crate-private désormais réellement consommés par les wrappers Accounts, sans modifier leur visibilité externe, sans changer les contrats publics `pre.003`, sans réécrire le delta historique `pre.003.md` et sans commencer la famille Tokens de `pre.004`. ## Version Cargo Le correctif modifie du Rust de production. Conformément à `VER-ID-007` et `VER-ID-010` : ```text 0.2.2-pre.3 -> 0.2.2-pre.3.fix.1 ``` Aucune dépendance ni feature Cargo n'est ajoutée ou retirée. ## Correction Dans `crates/ksp-onchain-transport-lib/src/lib.rs`, les deux réexports internes suivants ne sont plus conditionnés par `#[cfg(test)]` : ```text pub(crate) use self::rpc_common::decode_wire_json; pub(crate) use self::rpc_common::parse_wire_pubkey; ``` Leurs commentaires sont ajustés pour décrire leur rôle réel dans les adapters RPC typés, et non plus uniquement dans les tests préparatoires. La visibilité reste strictement `pub(crate)` : - aucune nouvelle API publique externe n'est créée ; - `rpc_common` reste propriétaire des implémentations ; - les wrappers Accounts peuvent continuer à utiliser la façade interne `crate::...` ; - aucun callsite Accounts n'est modifié ; - aucun `#[allow(...)]` n'est ajouté. ## Fichiers ajoutés ```text deltas/0.2.2/pre.003-fix.001.md ``` ## Fichiers modifiés ```text Cargo.toml crates/ksp-onchain-transport-lib/src/lib.rs ``` ## Fichiers supprimés Aucun. ## Fichiers volontairement inchangés ```text deltas/0.2.2/pre.003.md deltas/0.2.2/pre.002-fix.002.md docs/plans/009-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER_PLAN.md ROADMAP.md CHANGELOG.md crates/ksp-onchain-transport-lib/src/rpc_common.rs crates/ksp-onchain-transport-lib/src/rpc_accounts.rs crates/ksp-onchain-transport-lib/src/rpc_tokens.rs crates/ksp-onchain-transport-lib/src/rpc_cluster.rs crates/ksp-onchain-transport-lib/unit_tests/** crates/ksp-onchain-transport-lib/tests/** crates/ksp-config-lib/** config/** ``` Les deltas déjà publiés restent des traces historiques et ne sont pas réécrits. ## Validation ayant déclenché le correctif Les commandes suivantes ont été exécutées par l'utilisateur sur `0.2.2-pre.003` : ```text cargo fmt --all : exécuté cargo check --workspace : ÉCHEC E0425 cargo clippy --workspace --all-targets : ÉCHEC E0425 cargo test -p ksp-onchain-transport-lib : ÉCHEC E0425 ``` Les erreurs concernent douze usages production dans `rpc_accounts.rs`. Les deux symboles absents sont : ```text crate::decode_wire_json crate::parse_wire_pubkey ``` Le compilateur confirme que leurs réexports existent dans `lib.rs`, mais sont configurés hors build normal par `#[cfg(test)]`. ## Contrôles statiques effectués pendant la préparation du fix - `decode_wire_json` reste défini production-live dans `rpc_common.rs` ; - `parse_wire_pubkey` reste défini production-live dans `rpc_common.rs` ; - seuls leurs deux réexports crate-private perdent `#[cfg(test)]` ; - leur visibilité reste `pub(crate)` ; - les douze callsites `rpc_accounts.rs` restent inchangés ; - aucun `#[allow(dead_code)]` ou autre suppression de lint n'est ajouté ; - aucun wrapper Token/Cluster supplémentaire n'est activé ; - aucune dépendance, feature ou configuration n'est modifiée ; - `workspace.package.version` vaut `0.2.2-pre.3.fix.1` ; - le delta `pre.003.md` reste inchangé. ## Validations du correctif non exécutées dans le sandbox Le sandbox de préparation ne fournit pas la toolchain Cargo utilisée par le checkout opérateur. Les validations Rust du présent fix ne sont donc pas déclarées réussies. Après application, exécuter : ```bash cargo fmt --all cargo check --workspace cargo clippy --workspace --all-targets cargo test -p ksp-onchain-transport-lib ``` Le résultat attendu est une compilation normale des cinq wrappers Accounts, sans les `E0425` signalées et sans nouveau warning. ## Décisions prises - promouvoir les deux réexports internes parce qu'ils ont maintenant des consommateurs production réels ; - conserver `pub(crate)` plutôt que d'élargir l'API publique ; - ne pas modifier les douze callsites Accounts alors que leur chemin via la façade interne crate est cohérent ; - ne pas réintroduire de gating test sur des helpers consommés au runtime ; - ne pas commencer `pre.004` avant validation de ce fix. ## Questions ouvertes Aucune question bloquante. ## Suite Après validation et commit de `0.2.2-pre.003-fix.001`, clôturer `pre.003` puis poursuivre avec `0.2.2-pre.004` pour les cinq wrappers Tokens.