v0.2.9-pre.012-fix.001
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
<!-- file: docs/plans/016-V0_2_9_YELLOWSTONE_GRPC_PLAN.md -->
|
||||
<!-- version: 23 -->
|
||||
<!-- version: 24 -->
|
||||
|
||||
# Plan `0.2.9` — moteur Yellowstone gRPC + standard Solana + PublicNode
|
||||
|
||||
**Statut courant : `0.2.9-pre.011` est fermée par gate opérateur complet sans warning. `0.2.9-pre.012` est la tranche active de fermeture technique : réaudit upstream final, smoke PublicNode Mainnet opt-in, compliance finale, graphes Cargo, README/USAGE, règles de tableaux Markdown et prompt autonome `0.2.10 — OrbitFlare Yellowstone gRPC`. Les journaux détaillés restent dans `deltas/0.2.9/`; ce plan conserve l’état courant et les décisions.**
|
||||
**Statut courant : `0.2.9-pre.012` a passé son gate déterministe local sans warning ; le smoke PublicNode live et les graphes Cargo finaux n'ont pas été exécutés dans le log opérateur fourni. `pre.012-fix.001` introduit une règle durable de séparation des dernières prereleases et recalibre la fermeture : `pre.013` technique/live, `pre.014` réconciliation documentaire, `pre.015` préparation de publication minimale, puis `rel.001`.**
|
||||
|
||||
## 1. Objet et autorité de la release
|
||||
|
||||
@@ -604,25 +604,32 @@ Aucun secret provider n'est versionné.
|
||||
|
||||
Les preuves détaillées restent dans les fichiers `deltas/0.2.9/*.md`. Le plan ne duplique plus leurs journaux complets.
|
||||
|
||||
| Tranche | Objet | État consolidé |
|
||||
|-------------------|----------------------------------------------------------|----------------------|
|
||||
| `pre.001` + fixes | audit upstream, licence, providers, architecture, sizing | **CLOSED** |
|
||||
| `pre.002` + fixes | dépendances, settings/errors, channel minimal | **CLOSED** |
|
||||
| `pre.003` + fix | TLS, metadata, fixture locale, 7 unary | **CLOSED** |
|
||||
| `pre.004` + fix | Subscribe foundation/common | **CLOSED** |
|
||||
| `pre.005` + fix | Accounts + Slots | **CLOSED** |
|
||||
| `pre.006` | namespace privé HTTP explicite | **CLOSED** |
|
||||
| `pre.007` | Transactions + transaction_status | **CLOSED** |
|
||||
| `pre.008` + fix | Blocks + block_meta + entry | **CLOSED** |
|
||||
| `pre.009` + fix | bidi, Ping/Pong, backpressure, half-close, shutdown | **CLOSED** |
|
||||
| `pre.010` + fix | reconnect, from_slot, ReplayInfo, gaps/duplicates | **CLOSED** |
|
||||
| `pre.011` | Config V3 + protocol/provider + PublicNode Mainnet | **CLOSED** |
|
||||
| `pre.012` | live/compliance/docs/graph/prompt suivant | **ACTIVE CANDIDATE** |
|
||||
| Tranche | Objet | État consolidé |
|
||||
|-------------------|----------------------------------------------------------|----------------------------|
|
||||
| `pre.001` + fixes | audit upstream, licence, providers, architecture, sizing | **CLOSED** |
|
||||
| `pre.002` + fixes | dépendances, settings/errors, channel minimal | **CLOSED** |
|
||||
| `pre.003` + fix | TLS, metadata, fixture locale, 7 unary | **CLOSED** |
|
||||
| `pre.004` + fix | Subscribe foundation/common | **CLOSED** |
|
||||
| `pre.005` + fix | Accounts + Slots | **CLOSED** |
|
||||
| `pre.006` | namespace privé HTTP explicite | **CLOSED** |
|
||||
| `pre.007` | Transactions + transaction_status | **CLOSED** |
|
||||
| `pre.008` + fix | Blocks + block_meta + entry | **CLOSED** |
|
||||
| `pre.009` + fix | bidi, Ping/Pong, backpressure, half-close, shutdown | **CLOSED** |
|
||||
| `pre.010` + fix | reconnect, from_slot, ReplayInfo, gaps/duplicates | **CLOSED** |
|
||||
| `pre.011` | Config V3 + protocol/provider + PublicNode Mainnet | **CLOSED** |
|
||||
| `pre.012` | réaudit + smoke ajouté + docs préparatoires | **LOCAL GATE PASS** |
|
||||
| `pre.012-fix.001` | règles de séparation de fermeture + recalibrage | **ACTIVE DOCUMENTARY FIX** |
|
||||
| `pre.013` | gate technique/live PublicNode + graphes finaux | **PLANNED** |
|
||||
| `pre.014` | réconciliation documentaire finale | **PLANNED** |
|
||||
| `pre.015` | prompt + CHANGELOG + ROADMAP | **PLANNED** |
|
||||
|
||||
Gate opérateur de fermeture `pre.011` :
|
||||
Gate opérateur déterministe de `pre.012` reçu le 2026-08-24 :
|
||||
|
||||
```text
|
||||
fmt/audit/check/clippy PASS sans warning
|
||||
fmt/audit Rust PASS sans warning
|
||||
Markdown tables PASS, 87 tableaux / 252 fichiers
|
||||
cargo check PASS
|
||||
cargo clippy PASS sans warning
|
||||
Config unit 113/113
|
||||
Config public API 15/15
|
||||
Config ownership 5/5
|
||||
@@ -632,35 +639,71 @@ Transport completeness 43/43
|
||||
Transport doctests 4/4
|
||||
workspace dependencies 3/3
|
||||
cargo test --workspace PASS
|
||||
PublicNode live smoke NOT RUN, test ignored
|
||||
cargo tree final NOT PROVIDED / NOT RUN in supplied log
|
||||
```
|
||||
|
||||
## 13. Forecast restant
|
||||
`pre.012` reste historiquement une tranche mixte créée avant l'adoption de la nouvelle règle. Son fix ne réécrit pas cette histoire : le prompt `0.2.10` déjà présent est désormais considéré comme un brouillon à finaliser seulement en `pre.015`, et les README/USAGE préparés seront réconciliés en `pre.014`.
|
||||
|
||||
### `pre.012` — fermeture technique et live
|
||||
## 13. Forecast restant recalibré
|
||||
|
||||
Cible active :
|
||||
### `pre.013` — gate technique/live final
|
||||
|
||||
Payload autorisé :
|
||||
|
||||
```text
|
||||
workspace.package.version = 0.2.9-pre.12
|
||||
réaudit upstream final
|
||||
réaudit PublicNode Testnet sans endpoint inventé
|
||||
smoke PublicNode Mainnet opt-in, programmatique et sans credential
|
||||
compliance HTTP 52 current + 14 historical
|
||||
compliance Standard WS 18/18
|
||||
Helius WebSocket non régressé
|
||||
cargo tree direct + duplicates final
|
||||
README/USAGE Transport synchronisés
|
||||
règles Markdown sur les tableaux reformulées et auditées mécaniquement
|
||||
validation 012 fermée si les gates opérateur sont verts
|
||||
prompt 0.2.10 OrbitFlare autonome
|
||||
workspace final vert
|
||||
workspace.package.version = 0.2.9-pre.13
|
||||
exécution du smoke PublicNode Mainnet déjà versionné
|
||||
cargo tree Transport direct
|
||||
cargo tree Transport --duplicates
|
||||
cargo tree --duplicates
|
||||
constat factuel de tout incident réseau/provider/TLS
|
||||
aucune réconciliation README/USAGE
|
||||
aucune finalisation prompt/CHANGELOG/ROADMAP
|
||||
```
|
||||
|
||||
La candidate ajoute un smoke live **ignoré par défaut** ; elle ne modifie pas le runtime Yellowstone déjà fermé. Le smoke Mainnet utilise uniquement la façade provider-neutral KSP, `GetVersion` et `GetSlot`, avec TLS et sans metadata d'authentification.
|
||||
Commande live centrale :
|
||||
|
||||
Le Testnet reste `EXTERNAL BLOCK / NOT GUESSED` tant que PublicNode n'expose pas l'endpoint exact dans une source autoritative.
|
||||
```bash
|
||||
cargo test -p ksp-onchain-transport-lib --test yellowstone_publicnode_smoke -- --ignored --nocapture
|
||||
```
|
||||
|
||||
Si le gate opérateur révèle une anomalie réelle, un `pre.012-fix.001` est créé. Si la fermeture nécessite une nouvelle frontière fonctionnelle plutôt qu'un fix, une `pre.013+` est ouverte ; le numéro n'est pas une deadline.
|
||||
Un échec local du smoke est corrigé dans `pre.013-fix.NNN`. Un incident externe est documenté comme tel. Un fix de `pre.013` ne contient pas de correction documentaire de clôture.
|
||||
|
||||
### `pre.014` — réconciliation documentaire finale
|
||||
|
||||
Payload :
|
||||
|
||||
```text
|
||||
workspace.package.version = 0.2.9-pre.14
|
||||
plan 016 réconcilié avec le gate technique/live réel
|
||||
validation 012 fermée avec uniquement des preuves exécutées
|
||||
README/USAGE Transport relus et corrigés
|
||||
références durables liées à 0.2.9 réconciliées si nécessaire
|
||||
audit Markdown final des documents touchés
|
||||
aucune modification fonctionnelle/runtime
|
||||
aucune finalisation CHANGELOG/ROADMAP/prompt suivant
|
||||
```
|
||||
|
||||
Si une correction de code ou de smoke apparaît ici, `pre.014` ne l'absorbe pas : une nouvelle tranche technique est ouverte, puis la réconciliation documentaire est rejouée.
|
||||
|
||||
### `pre.015` — préparation de publication minimale
|
||||
|
||||
Payload fonctionnel strict :
|
||||
|
||||
```text
|
||||
workspace.package.version = 0.2.9-pre.15
|
||||
prompt 0.2.10 OrbitFlare finalisé
|
||||
CHANGELOG.md synchronisé pour 0.2.9
|
||||
ROADMAP.md état global 0.2.9 / suite synchronisé
|
||||
delta pre.015
|
||||
```
|
||||
|
||||
Aucun README, USAGE, plan, validation, règle, code, test, schema ou config n'est modifié dans cette tranche. Si l'un de ces fichiers nécessite encore une correction, la tranche de publication est décalée après une nouvelle prerelease dédiée.
|
||||
|
||||
### `rel.001` — publication stable
|
||||
|
||||
`rel.001` ne sert qu'à la mécanique de publication stable : version Cargo finale `0.2.9`, delta de release, commit final et tag `v0.2.9` après gate. Aucun rattrapage technique ou documentaire n'y est mélangé.
|
||||
|
||||
## 14. Critères de split
|
||||
|
||||
@@ -670,7 +713,8 @@ Scinder avant dette silencieuse si :
|
||||
2. PublicNode exige une divergence provider-specific significative ;
|
||||
3. le replay nécessite un sous-système de fork/equivocation plus large que la foundation ;
|
||||
4. une tranche dépasse nettement le budget nominal sans frontière claire ;
|
||||
5. le gate final montre une dette dépendance/licence ou une non-régression qui ne peut pas être corrigée proprement dans la tranche.
|
||||
5. le gate technique/live montre une dette dépendance/licence ou une non-régression qui ne peut pas être corrigée proprement dans son couloir ;
|
||||
6. une correction appartenant à un couloir déjà franchi est découverte pendant un couloir ultérieur.
|
||||
|
||||
Le noyau à préserver reste :
|
||||
|
||||
@@ -678,37 +722,29 @@ Le noyau à préserver reste :
|
||||
moteur Yellowstone + façade Solana standard + Config provider-neutral + première intégration PublicNode minimale
|
||||
```
|
||||
|
||||
## 15. Gates opérateur
|
||||
## 15. Gates opérateur restants
|
||||
|
||||
Gate `pre.012` :
|
||||
Gate `pre.013` :
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
Graphes finaux :
|
||||
|
||||
```bash
|
||||
cargo tree -p ksp-onchain-transport-lib
|
||||
cargo tree -p ksp-onchain-transport-lib --duplicates
|
||||
cargo tree --duplicates
|
||||
```
|
||||
|
||||
Smoke live opt-in Mainnet :
|
||||
|
||||
```bash
|
||||
cargo test -p ksp-onchain-transport-lib --test yellowstone_publicnode_smoke -- --ignored --nocapture
|
||||
```
|
||||
|
||||
Le smoke n'est jamais déclaré réussi avant exécution. Un incident externe PublicNode/TLS/réseau est consigné comme tel et ne doit pas être maquillé en PASS local. Le Testnet n'est pas exécuté tant que son endpoint exact n'est pas confirmé par une source PublicNode autoritative.
|
||||
Gate `pre.014` :
|
||||
|
||||
```bash
|
||||
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas/0.2.9
|
||||
cargo test --workspace
|
||||
```
|
||||
|
||||
Gate `pre.015` : audit documentaire ciblé sur `prompts/`, `CHANGELOG.md` et `ROADMAP.md`, plus les validations minimales imposées par le changement de version Cargo. Aucun smoke n'est rejoué dans cette tranche en l'absence de changement technique.
|
||||
|
||||
## 16. Conditions de clôture `0.2.9`
|
||||
|
||||
@@ -724,15 +760,15 @@ bounds/backpressure/shutdown verts
|
||||
reconnect/replay documentés sans lossless implicite
|
||||
Config V3 backward V1/V2
|
||||
provider/protocol distincts
|
||||
PublicNode Mainnet validé
|
||||
Testnet validé si endpoint exact confirmé, sinon report factuel documenté
|
||||
PublicNode Mainnet live exécuté avec résultat consigné
|
||||
Testnet reporté factuellement si endpoint exact non confirmé
|
||||
HTTP 52+14 non régressé
|
||||
Standard WS 18/18 non régressé
|
||||
Helius WS non régressé
|
||||
cargo graphs finaux inspectés
|
||||
README/USAGE finaux synchronisés
|
||||
validation 012 fermée
|
||||
prompt release suivante prêt
|
||||
README/USAGE finaux réconciliés en pre.014
|
||||
validation 012 fermée en pre.014
|
||||
prompt/CHANGELOG/ROADMAP seuls finalisés en pre.015
|
||||
workspace final vert
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user