v0.2.8-pre.009

This commit is contained in:
2026-08-23 18:16:03 +02:00
parent 7c12ec886b
commit 9c0d4fc197
10 changed files with 579 additions and 59 deletions

View File

@@ -1,9 +1,9 @@
<!-- file: docs/validation/011-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET.md -->
<!-- version: 21 -->
<!-- version: 22 -->
# Validation `0.2.8` — Helius LaserStream WebSocket
> **Statut : `pre.007-fix.003` est vert côté Transport à 331/331 + 40 API + 29 completeness + 4 doctests, mais `cargo test --workspace` échoue sur le canari `transport_manifest_preserves_ksp_dependency_firewall`, resté figé sur les anciennes features Tokio dev. `pre.007-fix.004` met ce canari en cohérence avec le manifest déjà livré, sans changement runtime.**
> **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.**
## 1. Références
@@ -29,6 +29,8 @@ pre.007 test determinism fix deltas/0.2.8/pre.007-fix.001.md
pre.007 scheduler observation fix deltas/0.2.8/pre.007-fix.002.md
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
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
@@ -112,7 +114,7 @@ Verdict : **gate `0.2.8-pre.001` positif ; `pre.002` + `fix.001` et `pre.003` so
| `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 | docs divergentes ; index exhaustif = non supporté | ne pas exposer Helius | **absente** | API absence + divergence documentée |
| `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 |
@@ -136,7 +138,7 @@ Verdict : **gate `0.2.8-pre.001` positif ; `pre.002` + `fix.001` et `pre.003` so
| Root | oui | oui | partagé standard |
| Signature | oui | oui | partagé standard |
| Slot | oui | oui | partagé standard |
| SlotsUpdates | oui | **non** | standard seulement |
| SlotsUpdates | oui | oui | partagé standard |
| Vote | oui | **non** | standard seulement |
| Helius Transaction | **non** | oui | provider-specific |
@@ -894,3 +896,93 @@ La correction `Debug` ne retire aucune donnée de l'API fonctionnelle : `transac
Verdict courant : **`pre.008` PREPARED ; `pre.009` bloqué jusqu'au gate opérateur.**
## 23. Fermeture `pre.008` et gate `pre.009`
Résultat opérateur `0.2.8-pre.8` :
```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 = 40/40
[x] release completeness = 30/30
[x] Transport doctests = 5/5
[x] cargo test --workspace = vert
```
Verdict : **`pre.008` DONE.**
### 23.1 Réaudit Helius final avant compliance
Le réaudit du 2026-08-23 révèle une évolution de la documentation Helius par rapport au checkpoint `pre.001` :
```text
overview LaserStream WebSocket
-> annonce le support du jeu complet des méthodes standard
-> énumère account/block/logs/program/root/signature/slot/slotsUpdates/vote + unsubscribe
page blockSubscribe
-> garde explicitement "Helius does not support"
page voteSubscribe
-> garde explicitement "Helius does not support"
page slotsUpdatesSubscribe
-> unstable
-> endpoints Helius mainnet/devnet
-> request/notification/result documentés
-> aucune mention de non-support Helius
page slotsUpdatesUnsubscribe
-> subscriptionId entier
-> result bool
```
Arbitrage : **la page spécifique de méthode prévaut sur la formulation générale lorsqu'elles divergent**. Le support Helius final retenu devient :
```text
standard Helius : account/logs/program/root/signature/slot/slotsUpdates
provider Helius : transaction
absent Helius : block/vote
```
Le point `accountSubscribe` « advanced filters » reste non matérialisé : l'overview le mentionne, mais la page API spécifique ne publie aucun wire provider-specific supplémentaire au-delà du contrat standard et de `notifyOn` deprecated/no-op. Aucun champ n'est inventé.
### 23.2 Critères `pre.009`
```text
[ ] workspace.package.version = 0.2.8-pre.9
[ ] HeliusLaserStreamWsSession expose slots_updates_subscribe
[ ] Helius slotsUpdates réutilise SolanaSlotUpdate et WsSubscriptionKind::SlotsUpdates
[ ] wire exact slotsUpdatesSubscribe / slotsUpdatesUnsubscribe inchangé
[ ] warning unstable standard conservé
[ ] compile-fail Helius slotsUpdates retiré
[ ] compile-fail Helius block conservé
[ ] compile-fail Helius vote conservé
[ ] compile-fail Helius into_inner conservé
[ ] compile-fail SolanaStandard transactionSubscribe conservé
[ ] HTTP = 52 current + 14 historical
[ ] Standard WebSocket = 9 familles / 18 méthodes
[ ] Helius = 7 familles standard + transaction
[ ] Config -> Transport reste la seule direction
[ ] KSP_SECRET_HELIUS_API_KEY reste inventorié
[ ] Transport n'ajoute aucune dépendance Config/Store/Program/tracing direct
[ ] aucune nouvelle dépendance
[ ] aucun second actor/socket/registry
[ ] cargo fmt --all
[ ] audit Rust = clean
[ ] cargo check = sans warning
[ ] cargo clippy = sans warning
[ ] Transport unit = 335
[ ] Transport public API = 41
[ ] release completeness = 33
[ ] Transport doctests = 4
[ ] cargo test --workspace = vert
```
Le passage de 5 à 4 doctests est attendu : le canari compile-fail `Helius -X-> slotsUpdatesSubscribe` est supprimé parce que la méthode devient volontairement publique. Les quatre canaris négatifs restants sont `Helius -X-> block`, `Helius -X-> vote`, `Helius -X-> into_inner` et `SolanaStandard -X-> transactionSubscribe`.
Verdict courant : **`pre.009` PREPARED ; `pre.010` bloqué jusqu'au gate opérateur.**