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

69 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- file: deltas/0.2.9/pre.009.md -->
<!-- version: 1 -->
# Delta `0.2.9-pre.009` — bidi standard + backpressure + half-close + shutdown
## Base
```text
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
```text
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
```bash
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é.