Files
khadhroony-solana-project/deltas/0.2.9/pre.009.md
2026-08-24 17:26:27 +02:00

2.6 KiB
Raw Blame History

Delta 0.2.9-pre.009 — bidi standard + backpressure + half-close + shutdown

Base

0.2.9-pre.008-fix.001
gate opérateur final : fmt/audit/check/Clippy/workspace PASS sans warning
Transport : 370 unit + 47 public API + 41 release-completeness + 4 doctests

Changements

  • ouvre /geyser.Geyser/Subscribe avec le channel Tonic N1 existant ;
  • ajoute SolanaYellowstoneGrpcSubscribeSession et son état public sûr ;
  • branche directement une mpsc request bornée dans le stream client Tonic ;
  • ajoute try_update() avec validation, borne protobuf et erreurs Full/Closed structurées ;
  • promeut les conversions request et décodeurs pre.004008 de test-only vers runtime privé ;
  • expose YellowstoneSubscribeUpdate couvrant les neuf variantes standard ;
  • répond automatiquement au Ping serveur avec un request ping-only id=1 et conserve Pong observable ;
  • traite le server half-close comme terminaison normale de pre.009 ;
  • ajoute client half-close, shutdown borné, Drop best-effort et overflow terminal ;
  • conserve les Status distants sous forme de diagnostics KSP sûrs sans recopier message/details/metadata ;
  • ajoute les codes grpc_backpressure_overflow et grpc_session_closed.

Fixture locale

Cas Preuve
round-trip bidi PASS source
mutation request PASS source
Ping -> ping id=1 PASS source
Pong observable PASS source
server half-close PASS source
client half-close PASS source
shutdown hostile borné PASS source
Drop session PASS source
slow receiver overflow PASS source
remote Status sûr PASS source
update malformed PASS source
inbound oversized PASS source
outbound oversized PASS source

Frontières

OUT pre.009 : reconnect/resubscribe/from_slot replay policy/gaps/duplicates
OUT 0.2.9  : SubscribeDeshred
OUT pre.009 : PublicNode / Config V3 / provider facade

Aucune dépendance ou feature Cargo n'est ajoutée. Le runtime n'utilise toujours pas yellowstone-grpc-client et n'expose aucun type Tonic/protobuf brut.

Validation candidate

cargo fmt --all
python3 scripts/audit_rust_workspace_rules.py
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-onchain-transport-lib
cargo test -p ksp-core-lib --test workspace_dependencies
cargo test --workspace

Le cargo tree n'est pas requis : aucune dépendance ni feature n'a changé.