From 3172cda24159f1da831074cc55b1b288624f5b76 Mon Sep 17 00:00:00 2001 From: SinuS Von SifriduS Date: Mon, 24 Aug 2026 11:00:38 +0200 Subject: [PATCH] v0.2.9-pre.002-fix.002 --- Cargo.toml | 4 ++-- .../tests/public_api.rs | 6 ++--- .../plans/016-V0_2_9_YELLOWSTONE_GRPC_PLAN.md | 8 +++---- .../validation/012-V0_2_9_YELLOWSTONE_GRPC.md | 23 +++++++++++++++++-- 4 files changed, 30 insertions(+), 11 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index ce4fa30..ef26475 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,12 +1,12 @@ # file: Cargo.toml -# version: 239 +# version: 240 [workspace] resolver = "3" members = ["crates/ksp-app-config-desk", "crates/ksp-app-wallet-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-logging-lib", "crates/ksp-onchain-transport-lib", "crates/ksp-wallet-lib"] [workspace.package] -version = "0.2.9-pre.2.fix.1" +version = "0.2.9-pre.2.fix.2" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project" diff --git a/crates/ksp-onchain-transport-lib/tests/public_api.rs b/crates/ksp-onchain-transport-lib/tests/public_api.rs index 0173a9e..f4c2845 100644 --- a/crates/ksp-onchain-transport-lib/tests/public_api.rs +++ b/crates/ksp-onchain-transport-lib/tests/public_api.rs @@ -1,5 +1,5 @@ // file: crates/ksp-onchain-transport-lib/tests/public_api.rs -// version: 39 +// version: 40 //! Integration tests for the public `ksp-onchain-transport-lib` consumer contract. @@ -761,8 +761,8 @@ fn public_v0_2_8_pre_009_helius_slots_updates_surface_reuses_shared_typed_contra assert_eq!(ksp_onchain_transport_lib::WsSubscriptionKind::SlotsUpdates.as_str(), "slots_updates"); } -#[test] -fn public_v0_2_9_pre_002_yellowstone_engine_settings_and_lazy_channel_are_available_from_crate_root() { +#[tokio::test(flavor = "current_thread")] +async fn public_v0_2_9_pre_002_yellowstone_engine_settings_and_lazy_channel_are_available_from_crate_root() { let url = ksp_onchain_transport_lib::YellowstoneGrpcEndpointUrl::parse("http://127.0.0.1:10000") .expect("public Yellowstone gRPC URL parser must accept HTTP fixture endpoint"); let session = ksp_onchain_transport_lib::YellowstoneGrpcSessionSettings::default(); diff --git a/docs/plans/016-V0_2_9_YELLOWSTONE_GRPC_PLAN.md b/docs/plans/016-V0_2_9_YELLOWSTONE_GRPC_PLAN.md index 8e64694..e03d005 100644 --- a/docs/plans/016-V0_2_9_YELLOWSTONE_GRPC_PLAN.md +++ b/docs/plans/016-V0_2_9_YELLOWSTONE_GRPC_PLAN.md @@ -1,9 +1,9 @@ - + # Plan `0.2.9` — moteur Yellowstone gRPC + standard Solana + PublicNode -> **Statut : `0.2.9-pre.002-fix.001` — correctif technique du premier gate opérateur : le channel lazy est conservé comme état N1 de production, `prepare()` refuse proprement l’absence de runtime Tokio au lieu de laisser Tonic paniquer, et les canaries Clippy/runtime sont corrigés. Les gates Cargo doivent être réexécutés après ce fix avant commit. `0.2.9` reste bornée à un moteur client Yellowstone partagé, une façade Solana Yellowstone standard et une première intégration concrète PublicNode. Seuls OrbitFlare puis Helius LaserStream gRPC sont actuellement planifiés comme releases provider suivantes ; les autres providers restent en TODO/IDEAS sans numéro réservé. Chaque prerelease vise 15–20 minutes de travail effectif et la release complète doit rester clôturable dans une seule session de chat.** +> **Statut : `0.2.9-pre.002-fix.002` — second correctif du gate opérateur : `fix.001` est confirmé vert sur fmt/audit/check/Clippy et les 346 unit tests ; seul le canari d’intégration `public_api` appelait encore le channel lazy depuis un test synchrone. `fix.002` place ce canari sous runtime Tokio sans modifier N1 en production. Les tests Transport/workspace doivent être réexécutés avant commit. `0.2.9` reste bornée à un moteur client Yellowstone partagé, une façade Solana Yellowstone standard et une première intégration concrète PublicNode. Seuls OrbitFlare puis Helius LaserStream gRPC sont actuellement planifiés comme releases provider suivantes ; les autres providers restent en TODO/IDEAS sans numéro réservé. Chaque prerelease vise 15–20 minutes de travail effectif et la release complète doit rester clôturable dans une seule session de chat.** ## 1. Objet, base et état d'ouverture @@ -897,8 +897,8 @@ Prévision courante : pre.001 DONE — audit upstream/service/proto + providers gratuits + licences/deps + architecture + threat model + sizing budget : 15–20 min nominal ; preuve : plan + matrice + stratégie B + forecast recalibré -pre.002 FIX.001 CANDIDATE — moteur Yellowstone : proto/dependencies + settings/errors + channel minimal - budget : 15–20 min ; premier gate : fmt/audit/check PASS, Clippy/test ont révélé return implicite + runtime Tokio ; fix appliqué ; cargo tree inspecté +pre.002 FIX.002 CANDIDATE — moteur Yellowstone : proto/dependencies + settings/errors + channel minimal + budget : 15–20 min ; second gate : fmt/audit/check/Clippy + 346 unit PASS ; public_api sync corrigé sous Tokio ; cargo tree inspecté pre.003 moteur Yellowstone : TLS/metadata générique + fixture locale + 7 unary RPCs budget : 15–20 min ; preuve : connect/TLS/timeouts/Status safe + wire unary exact diff --git a/docs/validation/012-V0_2_9_YELLOWSTONE_GRPC.md b/docs/validation/012-V0_2_9_YELLOWSTONE_GRPC.md index e07a1d2..8865fca 100644 --- a/docs/validation/012-V0_2_9_YELLOWSTONE_GRPC.md +++ b/docs/validation/012-V0_2_9_YELLOWSTONE_GRPC.md @@ -1,9 +1,9 @@ - + # Validation `0.2.9` — moteur Yellowstone + standard Solana + PublicNode -> **Statut : matrice ouverte par `0.2.9-pre.001`, corrigée par `pre.001-fix.002`, avancée par `pre.002` puis corrigée par `pre.002-fix.001`. Le premier gate opérateur a validé fmt/audit/check et le graphe, puis a révélé un retour Clippy implicite et l'exigence de runtime Tokio de `connect_lazy()` ; le fix borne désormais ce cas sans panic et attend la réexécution Cargo complète. Le scope distingue moteur Yellowstone, façade Solana standard et première intégration PublicNode. OrbitFlare et Helius sont les seules releases provider suivantes actuellement planifiées ; les autres providers restent en TODO/IDEAS sans numéro réservé.** +> **Statut : matrice ouverte par `0.2.9-pre.001`, corrigée par `pre.001-fix.002`, avancée par `pre.002`, puis corrigée par `pre.002-fix.001` et `pre.002-fix.002`. Le second gate opérateur confirme fmt/audit/check/Clippy et les 346 unit tests ; il a isolé le dernier écart dans le canari d'intégration `public_api`, encore synchrone alors que `prepare()` exige désormais un runtime Tokio actif. `fix.002` corrige uniquement ce canari et attend la réexécution des tests Transport/workspace. Le scope distingue moteur Yellowstone, façade Solana standard et première intégration PublicNode. OrbitFlare et Helius sont les seules releases provider suivantes actuellement planifiées ; les autres providers restent en TODO/IDEAS sans numéro réservé.** ## 1. Autorités du gate @@ -491,3 +491,22 @@ bytes 1.12.1 Aucune version concurrente Tonic/Prost/Solana n'a été introduite dans le graphe Transport. Les répétitions Prost de même version proviennent des unités build/runtime de la crate proto publiée. **Verdict `pre.002-fix.001` : correctif source prêt ; `pre.002` reste ouverte jusqu'à réexécution verte de fmt/audit/check/clippy/tests/workspace et confirmation finale du graphe.** + +### Second passage opérateur après `fix.001` + +| Gate / observation | Résultat `fix.001` | État `fix.002` | +|------------------------------------------|--------------------------------------------------------------------|------------------------------------| +| workspace version | `0.2.9-pre.2.fix.1` | `0.2.9-pre.2.fix.2` | +| `cargo fmt --all` | PASS | à réexécuter | +| audit Rust workspace | PASS / clean | PASS local / clean | +| `cargo check --workspace` | PASS | inchangé | +| `cargo clippy --workspace --all-targets` | PASS | inchangé | +| Transport unit | PASS / 346 passed | inchangé | +| Transport `public_api` | FAIL / 41 passed, 1 failed : `prepare()` appelé hors runtime Tokio | canari placé sous `#[tokio::test]` | +| dependency canary Core | PASS / 3 passed | inchangé | +| graphes Cargo | déjà fournis et inspectés | inchangés | + +Le second échec ne révèle aucune nouvelle faiblesse du moteur N1 : il confirme au contraire le contrat introduit par `fix.001`. Le canari public API doit être exécuté dans le même contexte Tokio que le test unitaire positif ; aucune modification supplémentaire de `YellowstoneGrpcChannel` n'est nécessaire. + +**Verdict `pre.002-fix.002` : correctif de test d'intégration prêt ; `pre.002` reste ouverte jusqu'à réexécution verte de `cargo test -p ksp-onchain-transport-lib`, `cargo test --workspace` et des gates habituels.** +