v0.2.9-pre.012-fix.001
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
<!-- file: docs/validation/012-V0_2_9_YELLOWSTONE_GRPC.md -->
|
||||
<!-- version: 25 -->
|
||||
<!-- version: 26 -->
|
||||
|
||||
# Validation `0.2.9` — Yellowstone gRPC standard + PublicNode
|
||||
|
||||
**Statut courant : `pre.011` est fermée par gate opérateur complet sans warning. `pre.012` est la candidate de fermeture technique : réaudit upstream, smoke PublicNode Mainnet opt-in, graphes Cargo finaux, documentation, audit des tableaux Markdown et prompt `0.2.10 — OrbitFlare Yellowstone gRPC`. Les logs historiques détaillés restent dans `deltas/0.2.9/`.**
|
||||
**Statut courant : le gate déterministe de `pre.012` est vert sans warning ; le smoke PublicNode live et les graphes Cargo finaux ne figurent pas comme exécutés dans le log opérateur fourni. `pre.012-fix.001` ajoute la règle durable de séparation de fermeture et déplace les gates restants vers `pre.013` technique/live, `pre.014` réconciliation documentaire et `pre.015` publication minimale.**
|
||||
|
||||
## 1. Autorités et baseline courante
|
||||
|
||||
@@ -348,75 +348,111 @@ Les détails de commandes, warnings corrigés et fichiers exacts restent dans le
|
||||
|
||||
Cette table remplace les anciens appendices numérotés successivement `19.x`, `20`, `21`, etc. qui rendaient le document ambigu.
|
||||
|
||||
## 12. Gate opérateur `pre.012`
|
||||
## 12. Verdict opérateur `pre.012`
|
||||
|
||||
### 12.1 Preuves source déjà matérialisées
|
||||
### 12.1 Gate déterministe reçu
|
||||
|
||||
| Exigence | État candidate |
|
||||
|----------------------------------------------|----------------------|
|
||||
| réaudit `master` Yellowstone | **PASS SOURCE** |
|
||||
| service `Geyser` et wire N2 inchangés | **PASS SOURCE** |
|
||||
| licence proto Apache-2.0 toujours déclarée | **PASS SOURCE** |
|
||||
| PublicNode Mainnet endpoint officiel | **PASS SOURCE** |
|
||||
| PublicNode Testnet hostname exact | **EXTERNAL BLOCK** |
|
||||
| smoke Mainnet programmatique sans credential | **ADDED, NOT RUN** |
|
||||
| README/USAGE Yellowstone + Config V3 | **SOURCE OK** |
|
||||
| règles tableaux Markdown | **ADDED** |
|
||||
| audit mécanique tableaux | **ADDED** |
|
||||
| prompt `0.2.10` OrbitFlare | **ADDED** |
|
||||
| graphes Cargo finaux | **PENDING OPERATOR** |
|
||||
| workspace final | **PENDING OPERATOR** |
|
||||
| Exigence | Résultat opérateur |
|
||||
|----------------------------------------------|--------------------------------------|
|
||||
| `cargo fmt --all` | **PASS** |
|
||||
| audit Rust workspace | **PASS, 0 candidate export** |
|
||||
| audit Markdown | **PASS, 87 tableaux / 252 fichiers** |
|
||||
| `cargo check --workspace` | **PASS** |
|
||||
| `cargo clippy --workspace --all-targets` | **PASS sans warning** |
|
||||
| Config unit | **113/113 PASS** |
|
||||
| Config public API | **15/15 PASS** |
|
||||
| Config ownership | **5/5 PASS** |
|
||||
| Transport unit | **383/383 PASS** |
|
||||
| Transport public API | **49/49 PASS** |
|
||||
| Transport release completeness | **43/43 PASS** |
|
||||
| Transport doctests | **4/4 PASS** |
|
||||
| workspace dependencies | **3/3 PASS** |
|
||||
| `cargo test --workspace` | **PASS** |
|
||||
| smoke Mainnet programmatique sans credential | **NOT RUN, ignored** |
|
||||
| graphes Cargo finaux | **NOT PROVIDED / NOT RUN** |
|
||||
|
||||
Le réaudit `master` distingue explicitement le plugin courant du dernier tag GitHub indexé : `master` déclare `yellowstone-grpc-geyser 15.1.2`, `yellowstone-grpc-client 13.3.0`, `yellowstone-grpc-proto 12.6.0` et Agave `4.2.0`, alors que la page des releases indexée expose encore `v14.2.2+solana.4.1.0` comme dernière release publiée. Aucun numéro n'est fusionné artificiellement.
|
||||
Le test `yellowstone_publicnode_smoke` compile et apparaît correctement comme `ignored` dans les tests Transport et workspace, mais cela ne constitue pas une exécution live. Aucune preuve de `cargo tree` final n'est présente dans le log fourni.
|
||||
|
||||
### 12.2 Commandes requises
|
||||
### 12.2 Effet de `pre.012-fix.001`
|
||||
|
||||
Le fix ne change ni runtime, ni schema, ni Config, ni smoke. Il corrige le workflow de fermeture afin que les responsabilités restantes ne soient plus mélangées :
|
||||
|
||||
```text
|
||||
pre.013 technique/live : smoke PublicNode + graphes Cargo finaux
|
||||
pre.014 réconciliation documentaire : plan/validation/README/USAGE/références
|
||||
pre.015 publication minimale : prompt suivant + CHANGELOG + ROADMAP
|
||||
rel.001 mécanique stable uniquement
|
||||
```
|
||||
|
||||
Le contenu prompt/README/USAGE déjà préparé en `pre.012` n'est pas supprimé rétroactivement. Le prompt reste un brouillon jusqu'à `pre.015` ; README/USAGE seront réconciliés définitivement en `pre.014`.
|
||||
|
||||
## 13. Gate `pre.013` — technique/live
|
||||
|
||||
Commandes minimales :
|
||||
|
||||
```bash
|
||||
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.9
|
||||
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
|
||||
cargo tree -p ksp-onchain-transport-lib
|
||||
cargo tree -p ksp-onchain-transport-lib --duplicates
|
||||
cargo tree --duplicates
|
||||
```
|
||||
|
||||
Smoke live séparé :
|
||||
|
||||
```bash
|
||||
cargo test -p ksp-onchain-transport-lib --test yellowstone_publicnode_smoke -- --ignored --nocapture
|
||||
```
|
||||
|
||||
Une commande non exécutée n'est jamais déclarée réussie. Le smoke peut révéler un incident externe ; ce résultat doit être consigné sans transformer un échec réseau/provider en défaut local fictif.
|
||||
|
||||
## 13. Compliance finale et verdict stable
|
||||
|
||||
### 13.1 Inventaires à préserver
|
||||
Verdicts attendus :
|
||||
|
||||
```text
|
||||
HTTP current typed 52/52
|
||||
HTTP historical 14/14 Deprecated/Removed
|
||||
Standard WebSocket 9 familles / 18 opérations
|
||||
Helius LaserStream WebSocket 7 familles standard + transaction + slotsUpdates
|
||||
Yellowstone unary 7/7
|
||||
Yellowstone Subscribe standard N2 + 9 updates
|
||||
Config Transport V1/V2/V3 backward-readable
|
||||
smoke Mainnet réellement exécuté
|
||||
GetVersion + GetSlot via TLS sans credential ou incident externe précisément classifié
|
||||
graphes Cargo inspectés
|
||||
aucun changement README/USAGE/prompt/CHANGELOG/ROADMAP
|
||||
```
|
||||
|
||||
### 13.2 Documentation et règles
|
||||
Un défaut local découvert dans ce gate reste dans `pre.013-fix.NNN`. Un incident externe n'est jamais maquillé en PASS local.
|
||||
|
||||
Le format des tableaux Markdown devient normatif dans `RULES_DOCUMENTATION.md` : aucun pipe littéral ou échappé dans une cellule, colonnes alignées sur le contenu le plus large, une seule marge d'espace autour du contenu maximal, et séparateurs dimensionnés exactement. Le canari `scripts/audit_markdown_tables.py` vérifie mécaniquement les fichiers Markdown modifiés hors blocs de code.
|
||||
## 14. Gate `pre.014` — réconciliation documentaire
|
||||
|
||||
Le nettoyage `pre.012` a également normalisé les neuf documents modifiables qui présentaient encore des écarts connus. Le scan de préparation sur les documents KSP, crates et deltas `0.2.9` est vert sur 87 tableaux dans 116 fichiers. Les seuls écarts trouvés par un scan de tout le repository appartiennent à d'anciens deltas `0.1.4` immuables ; ils ne sont pas réécrits uniquement pour du formatage.
|
||||
Cette tranche ferme les documents durables après le gate technique réel :
|
||||
|
||||
### 13.3 Verdict stable
|
||||
```text
|
||||
plan 016
|
||||
validation 012
|
||||
README/USAGE Transport
|
||||
documents de référence 0.2.9 réellement concernés
|
||||
audit Markdown des documents touchés
|
||||
```
|
||||
|
||||
`0.2.9` peut devenir stable lorsque le gate opérateur `pre.012` confirme tous les points locaux suivants :
|
||||
Elle n'introduit aucun nouveau runtime/smoke et ne finalise pas `CHANGELOG.md`, `ROADMAP.md` ni le prompt suivant.
|
||||
|
||||
Le verdict de la validation 012 devient définitif dans cette tranche, sur la base exclusive des preuves réellement exécutées en `pre.013` et des gates antérieurs.
|
||||
|
||||
## 15. Gate `pre.015` — préparation de publication
|
||||
|
||||
Payload fonctionnel autorisé :
|
||||
|
||||
```text
|
||||
prompts/015-V0_2_10_START_PROMPT.md
|
||||
CHANGELOG.md
|
||||
ROADMAP.md
|
||||
```
|
||||
|
||||
Seuls les fichiers mécaniques de version et de traçabilité (`Cargo.toml`, delta `pre.015`) peuvent s'ajouter à ce payload. Aucun README, USAGE, plan, validation, règle, code, test, schema ou config ne doit être corrigé dans `pre.015`.
|
||||
|
||||
Si un tel défaut est découvert, une nouvelle prerelease dédiée est ouverte puis la préparation de publication est rejouée sous un nouveau numéro.
|
||||
|
||||
## 16. Verdict stable attendu avant `rel.001`
|
||||
|
||||
`0.2.9` peut passer à `rel.001` seulement après la séquence suivante :
|
||||
|
||||
```text
|
||||
pre.013 technique/live fermé
|
||||
pre.014 réconciliation documentaire fermée
|
||||
pre.015 prompt/CHANGELOG/ROADMAP fermé
|
||||
```
|
||||
|
||||
Et si tous les invariants suivants sont vrais :
|
||||
|
||||
```text
|
||||
standard vs extension explicitement classifié
|
||||
@@ -427,14 +463,13 @@ resource/backpressure/lifecycle verts
|
||||
reconnect/replay sans promesse lossless
|
||||
Config V3 backward V1/V2
|
||||
provider/protocol distincts
|
||||
PublicNode Mainnet smoke exécuté avec résultat consigné
|
||||
PublicNode Mainnet live exécuté avec résultat consigné
|
||||
Testnet jamais inventé
|
||||
HTTP/WS/Helius non régressés
|
||||
dependency firewall vert
|
||||
cargo graphs inspectés
|
||||
README/USAGE finaux
|
||||
prompt 0.2.10 prêt
|
||||
README/USAGE réconciliés avant la dernière pre
|
||||
validation 012 fermée avant la dernière pre
|
||||
prompt/CHANGELOG/ROADMAP seuls dans la dernière pre
|
||||
workspace final vert
|
||||
```
|
||||
|
||||
Le bloc Testnet n'est pas un faux FAIL local : l'existence du service est confirmée, mais l'endpoint exact reste indisponible dans la source officielle consultée. Il est donc fermé comme limite externe documentée, sans profil ni smoke inventé.
|
||||
|
||||
Reference in New Issue
Block a user