8.2 KiB
Delta 0.2.10-pre.003 — gate technique/live final OrbitFlare Yellowstone
1. Base requise
Base directe attendue :
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 :
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 :
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 :
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 :
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 :
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 :
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 :
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 :
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 :
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 :
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 :
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 :
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é :
2 passed
0 failed
0 ignored
Inspecter ensuite :
cargo tree -p ksp-onchain-transport-lib
cargo tree -p ksp-onchain-transport-lib --duplicates
cargo tree --duplicates
Points obligatoires :
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 :
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 :
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
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é.