From be5e3464eeb081b65b03e44d083b664fa5888e5c Mon Sep 17 00:00:00 2001 From: SinuS Von SifriduS Date: Tue, 25 Aug 2026 15:18:28 +0200 Subject: [PATCH] v0.2.10-pre.003 --- Cargo.toml | 4 +- deltas/0.2.10/pre.003.md | 252 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 254 insertions(+), 2 deletions(-) create mode 100644 deltas/0.2.10/pre.003.md diff --git a/Cargo.toml b/Cargo.toml index 5f7d50a..e24494e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,12 +1,12 @@ # file: Cargo.toml -# version: 264 +# version: 265 [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.10-pre.2.fix.1" +version = "0.2.10-pre.3" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project" diff --git a/deltas/0.2.10/pre.003.md b/deltas/0.2.10/pre.003.md new file mode 100644 index 0000000..f2ef601 --- /dev/null +++ b/deltas/0.2.10/pre.003.md @@ -0,0 +1,252 @@ + + + +# Delta `0.2.10-pre.003` — gate technique/live final OrbitFlare Yellowstone + +## 1. Base requise + +Base directe attendue : + +```text +livraison : 0.2.10-pre.002-fix.001 +Cargo : 0.2.10-pre.2.fix.1 +commit : v0.2.10-pre.002-fix.001 +``` + +Identité de cette tranche : + +```text +livraison : 0.2.10-pre.003 +Cargo : 0.2.10-pre.3 +commit : v0.2.10-pre.003 +aucun tag prerelease +``` + +Cette prerelease est exclusivement le couloir **technique/live final** de `0.2.10`. Elle ne porte aucune réconciliation README/USAGE/plan/validation, aucune finalisation CHANGELOG/ROADMAP et aucun prompt `0.2.11`. + +## 2. Gate acquis de `pre.002-fix.001` + +La validation opérateur reçue le 2026-08-25 ferme le défaut d'auth classifié dans `pre.002`. + +Le gate déterministe est intégralement vert : + +```text +cargo fmt --all PASS +python3 scripts/audit_rust_workspace_rules.py clean / 0 export candidate / clean +python3 scripts/audit_markdown_tables.py PASS, 99 tables / 99 files +cargo check --workspace PASS +cargo clippy --workspace --all-targets PASS +cargo test --workspace PASS +Config unit 114/114 PASS +Config ownership 5/5 PASS +Config public API 15/15 PASS +Transport unit 383/383 PASS +Transport public API 49/49 PASS +Transport release completeness 43/43 PASS +Transport doctests 4/4 PASS +workspace dependency canary 3/3 PASS +``` + +Le smoke OrbitFlare Devnet authentifié est également vert : + +```text +endpoint http://devnet.rpc.orbitflare.com:10000 +auth License Key ORBIT-* -> secret metadata x-token +Subscribe PASS +Slot > 0 PASS +server Ping PASS +close borné PASS +résultat 1 passed / 0 failed +``` + +Cette preuve ferme la branche de divergence heartbeat : OrbitFlare émet le `SubscribeUpdate::Ping` Yellowstone standard et le moteur N1 `0.2.9` possède déjà la réponse automatique déterministe. Aucun heartbeat provider, aucune façade OrbitFlare et aucune modification N1/N2 ne sont nécessaires. + +## 3. Responsabilité de `pre.003` + +`pre.003` ne matérialise aucun nouveau comportement. Elle rejoue et ferme les preuves techniques finales après le fix d'auth : + +```text +version Cargo prerelease synchronisée +workspace complet sans warning +invariants Rust/Markdown +Config V3 OrbitFlare x-token non régressée +Yellowstone N1/N2 non régressés +HTTP 52 current + 14 historical non régressés +WebSocket standard et Helius non régressés +smoke live OrbitFlare Devnet final +smokes PublicNode Mainnet/Testnet finaux si credentials opérateur disponibles +graphes Cargo Transport et doublons inspectés +aucun SDK OrbitFlare runtime +aucune dépendance Transport -> Config +``` + +Le payload de `pre.003` ne change ni code runtime, ni test, ni Config, ni schema, ni dépendance. Le seul changement technique est le signal de version Cargo obligatoire pour une prerelease non-fix. + +## 4. Invariants à fermer + +Les fichiers moteur Yellowstone restent hors modification : + +```text +crates/ksp-onchain-transport-lib/src/grpc_settings.rs +crates/ksp-onchain-transport-lib/src/grpc_channel.rs +crates/ksp-onchain-transport-lib/src/grpc_unary.rs +crates/ksp-onchain-transport-lib/src/grpc_subscribe.rs +crates/ksp-onchain-transport-lib/src/grpc_stream.rs +``` + +Le gate doit confirmer : + +```text +N1 gRPC provider-neutral inchangé +N2 Yellowstone standard inchangé +OrbitFlare composé par endpoint + provider + cluster + x-token Config V3 +X-ORBIT-KEY absent du data-plane Yellowstone +License Key jamais exposée par Debug/CLI +pas de format Config V4 +pas de provider proto +pas de second raw Tonic client +pas de orbitflare-sdk runtime +``` + +## 5. Gate déterministe final + +Après application de `pre.003` : + +```bash +cargo fmt --all +python3 scripts/audit_rust_workspace_rules.py +python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas/0.2.10 +cargo check --workspace +cargo clippy --workspace --all-targets +cargo test -p ksp-config-lib +cargo test -p ksp-onchain-transport-lib +cargo test -p ksp-core-lib --test workspace_dependencies +cargo test --workspace +``` + +Seuils minimaux attendus : + +```text +Config unit 114 +Config ownership 5 +Config public API 15 +Transport unit 383 +Transport public API 49 +Transport release completeness 43 +Transport doctests 4 +workspace dependency canary 3 +``` + +Toute régression imputable à KSP ouvre `pre.003-fix.NNN`. Elle ne doit pas être repoussée dans le couloir documentaire `pre.004`. + +## 6. Smoke OrbitFlare Devnet final + +Saisir la License Key sans l'inscrire dans l'historique : + +```bash +read -rsp 'OrbitFlare License Key: ' ORBITFLARE_LICENSE_KEY; echo +printf '%s\n' "$ORBITFLARE_LICENSE_KEY" \ + | cargo test -p ksp-onchain-transport-lib --test yellowstone_orbitflare_smoke -- --ignored --nocapture +unset ORBITFLARE_LICENSE_KEY +``` + +Attendu : + +```text +orbitflare_devnet_yellowstone_streams_slots_and_emits_standard_server_ping_with_license_x_token ... ok +1 passed +0 failed +0 ignored +``` + +Le smoke doit encore prouver dans une même session bornée : + +```text +auth x-token acceptée +Subscribe standard ouvert +Slot non nul reçu +SubscribeUpdate::Ping standard observé +fermeture bornée +``` + +Un incident externe OrbitFlare/réseau démontré comme tel est documenté comme `EXTERNAL BLOCK`. Un échec de mapping, metadata, moteur, protocol ou fermeture imputable à KSP ouvre un fix technique. + +## 7. PublicNode et graphes finaux + +Les smokes PublicNode Mainnet/Testnet restent les canaris provider du standard livré par `0.2.9`. Si les deux credentials opérateur sont disponibles pendant ce gate, les rejouer : + +```bash +read -rsp 'PublicNode Mainnet Yellowstone x-token: ' PUBLICNODE_MAINNET_TOKEN; echo +read -rsp 'PublicNode Testnet Yellowstone x-token: ' PUBLICNODE_TESTNET_TOKEN; echo +printf '%s\n%s\n' "$PUBLICNODE_MAINNET_TOKEN" "$PUBLICNODE_TESTNET_TOKEN" \ + | cargo test -p ksp-onchain-transport-lib --test yellowstone_publicnode_smoke -- --ignored --nocapture +unset PUBLICNODE_MAINNET_TOKEN PUBLICNODE_TESTNET_TOKEN +``` + +Attendu lorsque rejoué : + +```text +2 passed +0 failed +0 ignored +``` + +Inspecter ensuite : + +```bash +cargo tree -p ksp-onchain-transport-lib +cargo tree -p ksp-onchain-transport-lib --duplicates +cargo tree --duplicates +``` + +Points obligatoires : + +```text +yellowstone-grpc-proto 12.6.x sur la stack attendue +Tonic/Prost KSP-owned sans seconde génération incompatible +aucun yellowstone-grpc-client runtime +aucun orbitflare-sdk runtime +aucune dépendance ksp-onchain-transport-lib -> ksp-config-lib +aucun tracing direct Transport +aucun nouveau doublon introduit par 0.2.10 +``` + +Les smokes PublicNode ne deviennent pas un blocker si leurs credentials ne sont simplement pas disponibles au moment du gate : leur non-régression déterministe reste couverte par les suites Transport/Config et le code live n'a pas changé. En revanche, tout échec effectivement observé lors d'un rerun doit être classifié, jamais ignoré. + +## 8. Critère de fermeture technique + +`pre.003` est fermée lorsque : + +```text +gate déterministe final vert +OrbitFlare Devnet Subscribe -> Slot + Ping live PASS +graphes Cargo finaux inspectés +N1 inchangé +N2 inchangé +Config V3 x-token cohérente et redacted +aucun provider overlay nécessaire +aucun heartbeat provider nécessaire +aucun SDK OrbitFlare ajouté +aucun défaut technique reporté vers pre.004 +``` + +Une fois ce gate acquis, la prochaine tranche est obligatoirement : + +```text +0.2.10-pre.004 — réconciliation documentaire finale +``` + +Elle portera plan, validation, README/USAGE et références durables. Elle ne doit pas porter de nouveau correctif technique. + +## 9. Modifications de cette livraison + +```text +Cargo.toml + # version: 264 -> 265 + workspace.package.version: 0.2.10-pre.2.fix.1 -> 0.2.10-pre.3 + +deltas/0.2.10/pre.003.md + ajout du présent gate technique/live final +``` + +Aucun autre fichier n'est modifié.