Files
khadhroony-solana-project/deltas/0.2.2/pre.003-fix.001.md

5.3 KiB

Delta 0.2.2-pre.003-fix.001 — activation production des helpers wire Accounts partagés

Base requise

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 :

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)] :

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

deltas/0.2.2/pre.003-fix.001.md

Fichiers modifiés

Cargo.toml
crates/ksp-onchain-transport-lib/src/lib.rs

Fichiers supprimés

Aucun.

Fichiers volontairement inchangés

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 :

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 :

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 :

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.