Files
2026-08-25 15:18:28 +02:00

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é.