v0.2.9-pre.009-fix.001
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
<!-- file: docs/plans/016-V0_2_9_YELLOWSTONE_GRPC_PLAN.md -->
|
||||
<!-- version: 18 -->
|
||||
<!-- version: 19 -->
|
||||
|
||||
# Plan `0.2.9` — moteur Yellowstone gRPC + standard Solana + PublicNode
|
||||
|
||||
> **Statut : `0.2.9-pre.008-fix.001` est fermée sur gate opérateur sans warning : fmt/audit/check/Clippy/workspace PASS, Transport 370 unit + 47 public API + 41 completeness + 4 doctests. `0.2.9-pre.009` est candidate : stream bidi standard réel, mutation request, Ping/Pong, backpressure, half-close et shutdown borné ; reconnect/replay restent `pre.010`.**
|
||||
> **Statut : `0.2.9-pre.009` est fonctionnellement verte sur gate opérateur (Transport 379 unit + 48 public API + 42 completeness + 4 doctests, workspace PASS), mais Clippy signale deux warnings d’hygiène. `0.2.9-pre.009-fix.001` est candidate pour les supprimer sans modifier le protocole ni le lifecycle ; reconnect/replay restent `pre.010`.**
|
||||
|
||||
## 1. Objet, base et état d'ouverture
|
||||
|
||||
@@ -934,8 +934,8 @@ pre.007 DONE — standard Solana : Transactions + transaction_status
|
||||
pre.008 DONE — standard Solana : Blocks + block_meta + entry
|
||||
budget : 15–20 min ; gate final fix.001 : fmt/audit/check/Clippy/workspace PASS sans warning + Transport 370/47/41/4
|
||||
|
||||
pre.009 CANDIDATE — moteur partagé : bidi mutation + Ping/Pong + half-close + backpressure + shutdown
|
||||
budget : 15–20 min ; preuve : fixture locale bidi + bounded queues + half-close/drop/timeout déterministes
|
||||
pre.009 FIX.001 CANDIDATE — moteur partagé : bidi mutation + Ping/Pong + half-close + backpressure + shutdown
|
||||
budget : 15–20 min ; gate fonctionnel 379/48/42/4 + workspace PASS ; fix de deux warnings Clippy
|
||||
|
||||
pre.010 moteur partagé : reconnect/resubscribe + from_slot/ReplayInfo + gaps/duplicates
|
||||
budget : 15–20 min ; preuve : reconnect local déterministe + aucune promesse lossless
|
||||
@@ -1371,3 +1371,20 @@ Le reconnect est volontairement absent de `pre.009` : un server half-close est n
|
||||
|
||||
**Gate candidat :** audit statique clean ; fixture locale couvre round-trip, mutation, Ping/Pong, server half-close, client half-close, shutdown hostile borné, Drop best-effort, update overflow, Status distant sûr, update malformed et rejet outbound oversized. Compilation/Clippy/tests opérateur requis avant fermeture.
|
||||
|
||||
## 27. `pre.009-fix.001` — compaction de l’update transaction et hygiène du canari `Send`
|
||||
|
||||
Le gate opérateur de `pre.009` valide intégralement le comportement bidi : fmt/audit/check passent ; Transport passe 379/379 unit, 48/48 public API, 42/42 release-completeness et 4/4 doctests ; le dependency canary Core passe 3/3 et `cargo test --workspace` est vert. Clippy termine avec succès mais signale deux warnings :
|
||||
|
||||
```text
|
||||
large_enum_variant YellowstoneSubscribeUpdate::Transaction
|
||||
extra_unused_type_parameters assert_send<T: Send>() dans tests/public_api.rs
|
||||
```
|
||||
|
||||
Le fix applique deux corrections sans `allow` :
|
||||
|
||||
- `YellowstoneSubscribeUpdate::Transaction` transporte désormais `Box<YellowstoneTransactionUpdate>`. La queue ne réserve donc plus la taille de la variante transaction (~664 octets) pour chaque élément ; le wire et le DTO transaction eux-mêmes restent inchangés. La modification intervient avant fermeture de la candidate `pre.009`.
|
||||
- le canari `assert_send<T: Send>()` matérialise `PhantomData<T>` afin que le paramètre générique soit effectivement utilisé tout en conservant exactement la même preuve compile-time.
|
||||
|
||||
Aucun changement n’est apporté aux neuf variantes wire, à la mutation request, à Ping/Pong, au half-close, au shutdown, à la backpressure, aux dépendances ou aux frontières de `pre.010`.
|
||||
|
||||
**Gate fix requis :** fmt/audit/check/Clippy sans warning + Transport 379/48/42/4 + dependency canary + workspace.
|
||||
|
||||
Reference in New Issue
Block a user