v0.2.9-pre.004-fix.001

This commit is contained in:
2026-08-24 12:09:48 +02:00
parent e4bbc78a41
commit 20320dba7b
5 changed files with 104 additions and 9 deletions

View File

@@ -1,9 +1,9 @@
<!-- file: docs/plans/016-V0_2_9_YELLOWSTONE_GRPC_PLAN.md -->
<!-- version: 10 -->
<!-- version: 11 -->
# Plan `0.2.9` — moteur Yellowstone gRPC + standard Solana + PublicNode
> **Statut : `0.2.9-pre.004` candidate. `pre.003-fix.001` est fermée sur gate opérateur intégralement vert : fmt/audit/check/Clippy/workspace PASS, Transport 354 unit + 43 public API + 36 completeness + 4 doctests, et graphes Cargo inspectés sans seconde version Tonic/Prost/Solana. `pre.004` matérialise uniquement la fondation `SubscribeRequest` standard : sept maps nommées, commitment, account-data slices ordonnées, ping, `from_slot`, bornes communes, unicité globale des noms et Debug sans payload arbitraire. Les champs détaillés Accounts/Slots/Transactions/Blocks restent réservés à `pre.005007` et aucun stream bidi n'est encore ouvert. PublicNode et Config V3 restent hors tranche. `0.2.9` reste bornée à un moteur client Yellowstone partagé, une façade Solana Yellowstone standard et une première intégration concrète PublicNode. Seuls OrbitFlare puis Helius LaserStream gRPC sont actuellement planifiés comme releases provider suivantes ; les autres providers restent en TODO/IDEAS sans numéro réservé. Chaque prerelease vise 1520 minutes de travail effectif et la release complète doit rester clôturable dans une seule session de chat.**
> **Statut : `0.2.9-pre.004-fix.001` candidate. Le premier gate opérateur de `pre.004` est fonctionnellement vert (359 unit + 44 public API + 37 completeness + 4 doctests, workspace PASS) mais `cargo check`/Clippy/workspace émettent 10 warnings `dead_code` sur les conversions protobuf encore utilisées uniquement par les tests. Le fix compile ces helpers sous `#[cfg(test)]` jusqu'à leur consommation runtime lors de l'ouverture du stream. Aucun contrat public, filtre ou wire n'est modifié. `pre.003-fix.001` est fermée sur gate opérateur intégralement vert : fmt/audit/check/Clippy/workspace PASS, Transport 354 unit + 43 public API + 36 completeness + 4 doctests, et graphes Cargo inspectés sans seconde version Tonic/Prost/Solana. `pre.004` matérialise uniquement la fondation `SubscribeRequest` standard : sept maps nommées, commitment, account-data slices ordonnées, ping, `from_slot`, bornes communes, unicité globale des noms et Debug sans payload arbitraire. Les champs détaillés Accounts/Slots/Transactions/Blocks restent réservés à `pre.005007` et aucun stream bidi n'est encore ouvert. PublicNode et Config V3 restent hors tranche. `0.2.9` reste bornée à un moteur client Yellowstone partagé, une façade Solana Yellowstone standard et une première intégration concrète PublicNode. Seuls OrbitFlare puis Helius LaserStream gRPC sont actuellement planifiés comme releases provider suivantes ; les autres providers restent en TODO/IDEAS sans numéro réservé. Chaque prerelease vise 1520 minutes de travail effectif et la release complète doit rester clôturable dans une seule session de chat.**
## 1. Objet, base et état d'ouverture
@@ -919,8 +919,8 @@ pre.002 DONE — moteur Yellowstone : proto/dependencies + settings/errors + ch
pre.003 DONE — moteur TLS/metadata + façade N2 unary + fixture locale + 7 unary RPCs
budget : 1520 min ; gate final fix.001 : fmt/audit/check/Clippy/workspace PASS + graphes Cargo inspectés
pre.004 CANDIDATE — standard Solana : Subscribe foundation + maps/commitment/ping/from_slot/data slices/bounds
budget : 1520 min ; preuve : map vide/entrée nommée vide/common wire exact + rejets déterministes avant I/O
pre.004 FIX.001 CANDIDATE — standard Solana : Subscribe foundation + maps/commitment/ping/from_slot/data slices/bounds
budget : 1520 min ; premier gate fonctionnel PASS, fix warning-only sur helpers wire test-only
pre.005 standard Solana : Accounts + Slots filters/updates
budget : 1520 min ; preuve : fixtures exactes + enum/optional/malformed/adversarial

View File

@@ -1,9 +1,9 @@
<!-- file: docs/validation/012-V0_2_9_YELLOWSTONE_GRPC.md -->
<!-- version: 11 -->
<!-- version: 12 -->
# Validation `0.2.9` — moteur Yellowstone + standard Solana + PublicNode
> **Statut : `pre.003-fix.001` est fermé sur gate opérateur intégralement vert et graphes Cargo inspectés. `0.2.9-pre.004` est candidate et ajoute uniquement la fondation standard `SubscribeRequest` : sept maps, commitment, account-data slices, ping, `from_slot`, bornes communes et redaction Debug. Aucun stream bidi n'est encore ouvert ; les filtres détaillés Accounts/Slots/Transactions/Blocks restent réservés à `pre.005007`. PublicNode et Config V3 restent hors tranche. OrbitFlare et Helius sont les seules releases provider suivantes planifiées ; les autres providers restent en TODO/IDEAS sans numéro réservé.**
> **Statut : `pre.003-fix.001` est fermé sur gate opérateur intégralement vert et graphes Cargo inspectés. `0.2.9-pre.004-fix.001` est candidate après un premier gate `pre.004` fonctionnellement vert mais non silencieux : 10 warnings `dead_code` concernent uniquement les conversions protobuf privées encore utilisées seulement par les unit tests. Le fix les place sous `#[cfg(test)]` sans changement de runtime/public API. `0.2.9-pre.004` ajoute uniquement la fondation standard `SubscribeRequest` : sept maps, commitment, account-data slices, ping, `from_slot`, bornes communes et redaction Debug. Aucun stream bidi n'est encore ouvert ; les filtres détaillés Accounts/Slots/Transactions/Blocks restent réservés à `pre.005007`. PublicNode et Config V3 restent hors tranche. OrbitFlare et Helius sont les seules releases provider suivantes planifiées ; les autres providers restent en TODO/IDEAS sans numéro réservé.**
## 1. Autorités du gate
@@ -631,3 +631,24 @@ Graphe pertinent confirmé : `tonic 0.14.6`, `tonic-prost 0.14.6`, `prost/prost-
Le proto publié `yellowstone-grpc-proto 12.6.0` a été recontrôlé avant implémentation : les onze champs top-level retenus restent `accounts`, `slots`, `transactions`, `transactions_status`, `blocks`, `blocks_meta`, `entry`, `commitment`, `accounts_data_slice`, `ping`, `from_slot`. Aucun `SubscribeDeshred` n'entre dans la surface KSP.
**Verdict `pre.004` : candidate source prête ; fermeture après gate Cargo opérateur.**
### 19.1 Premier gate opérateur `pre.004` et `pre.004-fix.001`
| Gate / observation | Résultat `pre.004` | État `fix.001` |
|------------------------------------------|----------------------------------------|--------------------------------------------|
| workspace version | `0.2.9-pre.4` | `0.2.9-pre.4.fix.1` |
| `cargo fmt --all` | PASS | à réexécuter |
| audit Rust workspace | PASS / clean | audit local PASS / clean |
| `cargo check --workspace` | PASS + 10 warnings `dead_code` | helpers wire test-only sous `#[cfg(test)]` |
| `cargo clippy --workspace --all-targets` | PASS + mêmes 10 warnings | idem |
| Transport unit | 359/359 PASS | inchangé |
| Transport `public_api` | 44/44 PASS | inchangé |
| Transport `release_completeness` | 37/37 PASS | inchangé |
| Transport doctests | 4/4 PASS | inchangé |
| Core dependency canary | 3/3 PASS | inchangé |
| `cargo test --workspace` | PASS + mêmes warnings à la compilation | à réexécuter sans warning |
Les dix symboles concernés (`to_wire` et `commitment_to_wire`) servent uniquement aux tests de projection protobuf de `pre.004`. Le stream bidi n'étant pas ouvert avant `pre.008`, ils ne font pas encore partie du runtime. `#[cfg(test)]` évite donc un faux code mort de production sans créer une seconde implémentation ni modifier le contrat public. Lors de l'intégration runtime du stream, ces helpers seront naturellement retirés du `cfg(test)` au moment où ils auront un consommateur de production.
**Verdict `pre.004-fix.001` : correctif warning-only prêt ; fermeture de `pre.004` après gate opérateur sans warning.**