v0.2.8-pre.010

This commit is contained in:
2026-08-23 18:35:44 +02:00
parent 9c0d4fc197
commit d8bfd7cd2e
7 changed files with 341 additions and 35 deletions

View File

@@ -1,9 +1,9 @@
<!-- file: docs/validation/011-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET.md -->
<!-- version: 22 -->
<!-- version: 23 -->
# Validation `0.2.8` — Helius LaserStream WebSocket
> **Statut : `pre.008` est entièrement vert : 335/335 unit Transport, 40/40 API, 30/30 completeness, 5/5 doctests et workspace complet. `pre.009` est préparé avec réconciliation de la documentation Helius courante : `slotsUpdates` rejoint la façade Helius ; `block` et `vote` restent explicitement non supportés.**
> **Statut : `pre.009` est entièrement vert : 335/335 unit Transport, 41/41 API, 33/33 completeness, 4/4 doctests et workspace complet. `pre.010` est préparé pour synchroniser README/USAGE, verrouiller la stratégie de smoke live architecture-safe et rejouer le cargo tree final.**
## 1. Références
@@ -31,6 +31,7 @@ pre.007 paused-I/O observation fix deltas/0.2.8/pre.007-fix.003.md
pre.007 dependency-firewall fix deltas/0.2.8/pre.007-fix.004.md
pre.008 adversarial/compliance guard deltas/0.2.8/pre.008.md
pre.009 compliance provider/current deltas/0.2.8/pre.009.md
pre.010 docs/smoke/tree final deltas/0.2.8/pre.010.md
validation standard WS docs/validation/010-V0_2_7_ONCHAIN_WEBSOCKET.md
HTTP compliance docs/validation/007-V0_2_4_HTTP_FINAL_COMPLIANCE.md
KSP-TRANSPORT-007 docs/validation/005-V0_2_3_KSP_TRANSPORT_007_RETRO_AUDIT.md
@@ -105,25 +106,25 @@ Verdict : **gate `0.2.8-pre.001` positif ; `pre.002` + `fix.001` et `pre.003` so
## 3. Matrice provider normative
| Capability | Standard KSP | Helius doc actuelle | Décision `0.2.8` | Surface Helius attendue | Preuve finale attendue |
|------------------------------|----------------:|---------------------------------------------------|--------------------------|-------------------------|---------------------------------------|
| `accountSubscribe` pair | oui | supporté | réutiliser wire standard | présente | exact wire + no regression |
| `logsSubscribe` pair | oui | supporté | réutiliser wire standard | présente | exact wire + no regression |
| `programSubscribe` pair | oui | supporté | réutiliser wire standard | présente | exact wire + no regression |
| `rootSubscribe` pair | oui | supporté | réutiliser standard | présente | exact wire + no regression |
| `signatureSubscribe` pair | oui | supporté | réutiliser standard | présente | one-shot conservé |
| `slotSubscribe` pair | oui | supporté | réutiliser standard | présente | exact wire + no regression |
| `blockSubscribe` pair | oui, unstable | non supporté | ne pas exposer Helius | **absente** | API absence + guard interne avant I/O |
| `slotsUpdatesSubscribe` pair | oui, unstable | page spécifique + overview courant = disponible | réutiliser wire standard | présente | exact wire + warning unstable |
| `voteSubscribe` pair | oui, unstable | non supporté | ne pas exposer Helius | **absente** | API absence + guard interne avant I/O |
| `transactionSubscribe` | non standard | extension Helius | ajouter typed | présente | request/ack/notification fixtures |
| `transactionUnsubscribe` | non standard | documenté dans référence transaction | ajouter via handle | présente | exact method + late-message race |
| `tokenAccounts` | non standard | `none/balanceChanged/all` | ajouter typed | présente dans filter | enum + serialization |
| `notifyOn` account | non standard | deprecated, no-op Agave 4.2 | ne pas exposer | absente | absence DTO public |
| `notifyOn` program | non standard | deprecated, no-op Agave 4.2 | ne pas exposer | absente | absence DTO public |
| enhanced account extra | non standard | mentionné, wire exact non publié | report explicite | absente | réaudit final |
| proactive heartbeat | absent standard | 10 min idle, ping recommandé | Helius-only actor policy | interne | deterministic timer tests |
| replay historique | absent standard | pas de contrat WS KSP | interdit | absent | docs/canary no promise |
| Capability | Standard KSP | Helius doc actuelle | Décision `0.2.8` | Surface Helius attendue | Preuve finale attendue |
|------------------------------|----------------:|-------------------------------------------------|--------------------------|-------------------------|---------------------------------------|
| `accountSubscribe` pair | oui | supporté | réutiliser wire standard | présente | exact wire + no regression |
| `logsSubscribe` pair | oui | supporté | réutiliser wire standard | présente | exact wire + no regression |
| `programSubscribe` pair | oui | supporté | réutiliser wire standard | présente | exact wire + no regression |
| `rootSubscribe` pair | oui | supporté | réutiliser standard | présente | exact wire + no regression |
| `signatureSubscribe` pair | oui | supporté | réutiliser standard | présente | one-shot conservé |
| `slotSubscribe` pair | oui | supporté | réutiliser standard | présente | exact wire + no regression |
| `blockSubscribe` pair | oui, unstable | non supporté | ne pas exposer Helius | **absente** | API absence + guard interne avant I/O |
| `slotsUpdatesSubscribe` pair | oui, unstable | page spécifique + overview courant = disponible | réutiliser wire standard | présente | exact wire + warning unstable |
| `voteSubscribe` pair | oui, unstable | non supporté | ne pas exposer Helius | **absente** | API absence + guard interne avant I/O |
| `transactionSubscribe` | non standard | extension Helius | ajouter typed | présente | request/ack/notification fixtures |
| `transactionUnsubscribe` | non standard | documenté dans référence transaction | ajouter via handle | présente | exact method + late-message race |
| `tokenAccounts` | non standard | `none/balanceChanged/all` | ajouter typed | présente dans filter | enum + serialization |
| `notifyOn` account | non standard | deprecated, no-op Agave 4.2 | ne pas exposer | absente | absence DTO public |
| `notifyOn` program | non standard | deprecated, no-op Agave 4.2 | ne pas exposer | absente | absence DTO public |
| enhanced account extra | non standard | mentionné, wire exact non publié | report explicite | absente | réaudit final |
| proactive heartbeat | absent standard | 10 min idle, ping recommandé | Helius-only actor policy | interne | deterministic timer tests |
| replay historique | absent standard | pas de contrat WS KSP | interdit | absent | docs/canary no promise |
## 4. Matrice des façades protocolaires
@@ -986,3 +987,73 @@ Le passage de 5 à 4 doctests est attendu : le canari compile-fail `Helius -X->
Verdict courant : **`pre.009` PREPARED ; `pre.010` bloqué jusqu'au gate opérateur.**
## 24. Fermeture `pre.009` et gate `pre.010`
Résultat opérateur `0.2.8-pre.9` :
```text
[x] cargo fmt --all
[x] audit Rust workspace = clean / 0 candidate
[x] cargo check --workspace = vert, sans warning
[x] cargo clippy --workspace --all-targets = vert, sans warning
[x] Transport unit = 335/335
[x] Transport public API = 41/41
[x] release completeness = 33/33
[x] Transport doctests = 4/4
[x] cargo test --workspace = vert
```
Verdict : **`pre.009` DONE.**
### 24.1 Stratégie live Helius retenue
Les pages Helius courantes confirment :
```text
endpoints WSS unifiés mainnet/devnet avec api-key
slotSubscribe disponible sur endpoint Helius
transactionSubscribe = extension Helius
Ping chaque minute recommandé contre linactivité
```
La sécurité du credential nest pas le seul critère. Lownership KSP impose aussi :
```text
[x] Transport ne lit pas KSP_SECRET_HELIUS_API_KEY
[x] Transport ne dépend pas de Config
[x] Config reste propriétaire de lenvironnement et du secret
[x] le smoke Config -> Transport existant reste une exception transitoire
[x] aucun nouveau smoke cross-crates Helius nest ajouté à Config
```
Le smoke live Helius est donc **différé vers la future surface dintégration/orchestration**. Le scénario minimal recommandé utilisera le profil `helius_devnet` puis `slotSubscribe`; un scénario `transactionSubscribe` restera optionnel et provider-entitlement-dependent. Cette absence de test live committé naffaiblit pas les gates déterministes de `0.2.8`, déjà couverts par fixtures locales, capability guards, reconnect, heartbeat, backpressure et compliance.
### 24.2 Critères `pre.010`
```text
[ ] workspace.package.version = 0.2.8-pre.10
[ ] README décrit Helius = 7 familles standard + transaction
[ ] README rappelle block/vote absents et slotsUpdates unstable
[ ] README/USAGE documentent heartbeat Helius 60 s
[ ] USAGE documente Config helius_devnet -> HeliusLaserStreamWsSession
[ ] KSP_SECRET_HELIUS_API_KEY reste Config-owned
[ ] aucun nouveau smoke Helius live dans Transport avec lecture env/secret
[ ] aucun nouveau smoke Helius cross-crates ajouté à Config
[ ] aucun Transport -> Config
[ ] aucune nouvelle dépendance
[ ] cargo tree -p ksp-onchain-transport-lib inspecté
[ ] cargo tree -p ksp-onchain-transport-lib --duplicates inspecté
[ ] cargo tree --duplicates inspecté
[ ] cargo fmt --all
[ ] audit Rust = clean
[ ] cargo check = sans warning
[ ] cargo clippy = sans warning
[ ] Transport unit = 335
[ ] Transport public API = 41
[ ] release completeness = 34
[ ] Transport doctests = 4
[ ] cargo test --workspace = vert
```
Verdict courant : **`pre.010` PREPARED ; `pre.011` bloqué jusquau gate opérateur et au cargo tree final.**