v0.2.8-pre.001-fix.002
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
<!-- file: docs/validation/011-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET.md -->
|
||||
<!-- version: 3 -->
|
||||
<!-- version: 5 -->
|
||||
|
||||
# Validation `0.2.8` — Helius LaserStream WebSocket
|
||||
|
||||
> **Statut : gate `0.2.8-pre.001` positif ; architecture corrigée par `0.2.8-pre.001-fix.001`.** Les graphes Cargo opérateur sont reçus et non bloquants. La validation runtime à venir doit prouver deux façades protocolaires distinctes partageant un seul moteur `WsSession`, et non un `WsSession` Helius générique exposant des méthodes provider non supportées.
|
||||
> **Statut : gate `0.2.8-pre.001` positif ; architecture corrigée par `pre.001-fix.001`, forecast et nomenclature clarifiés par `pre.001-fix.002`.** Les graphes Cargo opérateur sont reçus et non bloquants. La validation runtime doit prouver deux façades protocolaires distinctes partageant un seul moteur `WsSession` et préserver une distinction explicite entre Helius LaserStream **WebSocket** et le futur LaserStream gRPC.
|
||||
|
||||
## 1. Références
|
||||
|
||||
@@ -13,6 +13,7 @@ plan docs/plans/015-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET_PL
|
||||
base stable v0.2.7 / deltas/0.2.7/rel.001.md
|
||||
pre.001 deltas/0.2.8/pre.001.md
|
||||
fix architecture deltas/0.2.8/pre.001-fix.001.md
|
||||
fix forecast/nomenclature deltas/0.2.8/pre.001-fix.002.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
|
||||
@@ -98,20 +99,22 @@ Verdict : doublons transitifs, aucune nouvelle dépendance Helius, aucune anomal
|
||||
|
||||
### 4.2 Invariants architecture
|
||||
|
||||
| Critère | Décision | Preuve cible | État |
|
||||
|-------------------------------------|-----------------------------------------------|---------------------------------|--------|
|
||||
| actor physique | un seul `WsSession` actor partagé | source/runtime canary | décidé |
|
||||
| façade standard | `SolanaStandardWsSession` | public API canary | décidé |
|
||||
| façade Helius | `HeliusLaserStreamWsSession` | public API canary | décidé |
|
||||
| escape hatch Helius | aucun `inner()`/`into_inner()` public | API/source canary | décidé |
|
||||
| generic Helius `WsSession::connect` | ne doit pas permettre de contourner la façade | invalid protocol pre-I/O canary | décidé |
|
||||
| Helius unsupported | absent de la façade | compile-fail/API absence canary | décidé |
|
||||
| standard Helius commun | délégation vers le même wire/actor | exact fixture | décidé |
|
||||
| DTO duplication | seulement si wire/sémantique divergent | public/source audit | décidé |
|
||||
| Config direction | Config -> Transport uniquement | ownership tests | décidé |
|
||||
| heartbeat | Helius-only, actor commun | deterministic timers | décidé |
|
||||
| secret | query URL derrière `WsEndpointUrl` | redaction canaries | décidé |
|
||||
| new Rust dependency | aucune | manifest/tree audit | décidé |
|
||||
| Critère | Décision | Preuve cible | État |
|
||||
|-------------------------------------|------------------------------------------------------------------|---------------------------------|--------|
|
||||
| actor physique | un seul `WsSession` actor partagé | source/runtime canary | décidé |
|
||||
| façade standard | `SolanaStandardWsSession` | public API canary | décidé |
|
||||
| façade Helius | `HeliusLaserStreamWsSession` | public API canary | décidé |
|
||||
| namespace LaserStream WS | `WsProtocolKind` + `ws_endpoints` possèdent `helius_laserstream` | API/Config/docs canary | décidé |
|
||||
| LaserStream gRPC | backend/type/Config distincts, hors `0.2.8` | absence de réutilisation WS | décidé |
|
||||
| escape hatch Helius | aucun `inner()`/`into_inner()` public | API/source canary | décidé |
|
||||
| generic Helius `WsSession::connect` | ne doit pas permettre de contourner la façade | invalid protocol pre-I/O canary | décidé |
|
||||
| Helius unsupported | absent de la façade | compile-fail/API absence canary | décidé |
|
||||
| standard Helius commun | délégation vers le même wire/actor | exact fixture | décidé |
|
||||
| DTO duplication | seulement si wire/sémantique divergent | public/source audit | décidé |
|
||||
| Config direction | Config -> Transport uniquement | ownership tests | décidé |
|
||||
| heartbeat | Helius-only, actor commun | deterministic timers | décidé |
|
||||
| secret | query URL derrière `WsEndpointUrl` | redaction canaries | décidé |
|
||||
| new Rust dependency | aucune | manifest/tree audit | décidé |
|
||||
|
||||
## 5. `transactionSubscribe` à couvrir
|
||||
|
||||
@@ -159,6 +162,8 @@ aucun payload brut dans logs/snapshots
|
||||
[ ] un seul actor/socket implementation path
|
||||
[ ] SolanaStandardWsSession public et constructible
|
||||
[ ] HeliusLaserStreamWsSession public et constructible
|
||||
[ ] `helius_laserstream` reste possédé par le namespace WebSocket
|
||||
[ ] aucune API/Config gRPC n'est anticipée ou aliasée sur le contrat WS
|
||||
[ ] WsSession historique standard reste compatible
|
||||
[ ] Helius facade n'expose pas blockSubscribe
|
||||
[ ] Helius facade n'expose pas slotsUpdatesSubscribe
|
||||
@@ -221,27 +226,28 @@ Contrat cible : opt-in, Config résout l'api-key, Transport ne lit pas l'environ
|
||||
|
||||
## 10. Forecast courant
|
||||
|
||||
Le forecast détaillé et normatif est visible dans la section 3 du plan. Résumé :
|
||||
Le plan est la source normative du forecast. La validation reprend la même forme compacte et groupe les fixes sous leur prerelease :
|
||||
|
||||
```text
|
||||
pre.001 audit/sizing
|
||||
pre.001-fix.001 façades séparées + gate Cargo fermé
|
||||
pre.002 socle protocolaire/façades/connect partagé
|
||||
pre.003 6 wrappers Helius communs + absence 3 unsupported
|
||||
pre.004 Config V2 + secrets
|
||||
pre.005 transaction request/unsubscribe
|
||||
pre.006 transaction notification + lifecycle
|
||||
pre.007 heartbeat
|
||||
pre.008 adversarial/security/backpressure
|
||||
pre.009 compliance/non-regression
|
||||
pre.010 live smoke/docs/dependency graph
|
||||
pre.011 final workspace/prompt 0.2.9
|
||||
rel.001 stable
|
||||
pre.001 DONE — audit/sizing/matrice/dependencies
|
||||
fix.001 DONE — façades séparées + gate Cargo fermé
|
||||
fix.002 DONE — forecast compact + namespace LaserStream WS/gRPC
|
||||
pre.002 socle protocolaire/façades/connect partagé
|
||||
pre.003 6 familles Helius communes + absence 3 unsupported
|
||||
pre.004 Config V2 + secrets
|
||||
pre.005 transaction request/unsubscribe
|
||||
pre.006 transaction notification + lifecycle
|
||||
pre.007 heartbeat Helius WebSocket
|
||||
pre.008 adversarial/security/backpressure
|
||||
pre.009 compliance/non-regression
|
||||
pre.010 live smoke/docs/dependency graph
|
||||
pre.011 final workspace/prompt 0.2.9
|
||||
rel.001 stable
|
||||
```
|
||||
|
||||
Le forecast reste souple ; le numéro final n'est jamais un critère de clôture.
|
||||
Le forecast reste souple ; les fixes ne sont pas comptés comme des prereleases planifiées supplémentaires et le numéro final n'est jamais un critère de clôture.
|
||||
|
||||
## 11. Gate initial après fix
|
||||
## 11. Gate initial après `pre.001-fix.002`
|
||||
|
||||
```text
|
||||
[x] base stable inspectée
|
||||
@@ -260,7 +266,9 @@ Le forecast reste souple ; le numéro final n'est jamais un critère de clôture
|
||||
[x] Config shape décidée
|
||||
[x] credential strategy décidée
|
||||
[x] aucune nouvelle dépendance justifiée
|
||||
[x] forecast recalibré et rendu visible dans le plan
|
||||
[x] forecast recalibré au format compact historique et fixes groupés sous `pre.001`
|
||||
[x] namespace `helius_laserstream` explicitement WebSocket-owned
|
||||
[x] futur LaserStream gRPC maintenu distinct et hors contrat WS
|
||||
[x] cargo tree direct exécuté par opérateur
|
||||
[x] cargo tree duplicates exécuté par opérateur
|
||||
[x] doublons ciblés analysés comme transitifs/non bloquants
|
||||
|
||||
Reference in New Issue
Block a user