From c4636ac8b9181b775291b1f67158afa2fc3b364d Mon Sep 17 00:00:00 2001 From: SinuS Von SifriduS Date: Tue, 18 Aug 2026 07:53:17 +0200 Subject: [PATCH] v0.2.2-pre.003-fix.001 --- Cargo.toml | 2 +- crates/ksp-onchain-transport-lib/src/lib.rs | 6 +- deltas/0.2.2/pre.003-fix.001.md | 154 ++++++++++++++++++++ 3 files changed, 157 insertions(+), 5 deletions(-) create mode 100644 deltas/0.2.2/pre.003-fix.001.md diff --git a/Cargo.toml b/Cargo.toml index 582352b..f54cd11 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,7 +6,7 @@ resolver = "3" members = ["crates/ksp-app-config-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-logging-lib", "crates/ksp-onchain-transport-lib"] [workspace.package] -version = "0.2.2-pre.3" +version = "0.2.2-pre.3.fix.1" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project" diff --git a/crates/ksp-onchain-transport-lib/src/lib.rs b/crates/ksp-onchain-transport-lib/src/lib.rs index 84a8053..97170c7 100644 --- a/crates/ksp-onchain-transport-lib/src/lib.rs +++ b/crates/ksp-onchain-transport-lib/src/lib.rs @@ -165,11 +165,9 @@ pub use self::rpc_common::SolanaContextConfig; pub use self::rpc_common::SolanaRpcContext; /// Generic contextual result returned by typed Solana HTTP RPC adapters. pub use self::rpc_common::SolanaRpcResponse; -#[cfg(test)] -/// Decodes one private serde wire type into the shared Transport error domain for staged DTO tests. +/// Decodes one private serde wire type into the shared Transport error domain for typed RPC adapters. pub(crate) use self::rpc_common::decode_wire_json; -#[cfg(test)] -/// Parses a base58 public key without echoing its wire value into diagnostics for staged DTO tests. +/// Parses a base58 public key without echoing its wire value into diagnostics for typed RPC adapters. pub(crate) use self::rpc_common::parse_wire_pubkey; /// Functional category used by the audited Solana HTTP JSON-RPC registry. pub use self::rpc_method::HttpRpcCategory; diff --git a/deltas/0.2.2/pre.003-fix.001.md b/deltas/0.2.2/pre.003-fix.001.md new file mode 100644 index 0000000..96891eb --- /dev/null +++ b/deltas/0.2.2/pre.003-fix.001.md @@ -0,0 +1,154 @@ + + + +# 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.