v0.2.8-pre.006
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
<!-- file: docs/validation/011-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET.md -->
|
||||
<!-- version: 15 -->
|
||||
<!-- version: 16 -->
|
||||
|
||||
# Validation `0.2.8` — Helius LaserStream WebSocket
|
||||
|
||||
> **Statut : `pre.004` + ses fixes sont validés. `pre.005-fix.001` corrige les erreurs de type et les chemins de visibilité, mais son checkpoint émet encore neuf warnings `dead_code` sur des helpers wire privés non consommés en production. `pre.005-fix.002` les compile uniquement sous `#[cfg(test)]` jusqu'à `pre.006`, sans modifier le contrat public Helius.**
|
||||
> **Statut : `pre.005` + ses deux fixes sont validés sans warning. `pre.006` est préparé avec `transactionNotification`, handle live, remap reconnect, late-notification handling et backpressure ciblée sur l'actor WebSocket unique.**
|
||||
|
||||
## 1. Références
|
||||
|
||||
@@ -23,6 +23,7 @@ pre.004 provenance fix deltas/0.2.8/pre.004-fix.002.md
|
||||
pre.005 deltas/0.2.8/pre.005.md
|
||||
pre.005 visibility/test fix deltas/0.2.8/pre.005-fix.001.md
|
||||
pre.005 dead-code fix deltas/0.2.8/pre.005-fix.002.md
|
||||
pre.006 actor transaction deltas/0.2.8/pre.006.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
|
||||
@@ -136,7 +137,7 @@ Verdict : **gate `0.2.8-pre.001` positif ; `pre.002` + `fix.001` et `pre.003` so
|
||||
|
||||
### 4.2 Invariants architecture
|
||||
|
||||
| Critère | Décision | Preuve cible | État |
|
||||
| Critère | Décision | Preuve cible | État |
|
||||
|-------------------------------------|------------------------------------------------------------------|---------------------------------|--------------------|
|
||||
| actor physique | un seul `WsSession` actor partagé | source/runtime canary | pre.002 implémenté |
|
||||
| façade standard | `SolanaStandardWsSession` | public API canary | pre.002 implémenté |
|
||||
@@ -209,21 +210,21 @@ aucun payload brut dans logs/snapshots
|
||||
[x] Helius facade n'expose aucun escape hatch vers le handle générique
|
||||
[x] protocol mismatch rejeté avant I/O — fixture opérateur verte
|
||||
[x] 6 familles standard Helius utilisent le wire standard exact — fixture `pre.003` opérateur verte
|
||||
[ ] transaction subscribe/ack exact — fixture `pre.005` préparée, gate opérateur requis
|
||||
[ ] transaction unsubscribe/result exact — fixture `pre.005` préparée, gate opérateur requis
|
||||
[ ] transaction notification dispatch exact
|
||||
[x] transaction subscribe/ack exact — fixture `pre.005` validée puis consommée par le handle live `pre.006`
|
||||
[x] transaction unsubscribe/result exact — fixture `pre.005` validée puis registry actor `pre.006`
|
||||
[ ] transaction notification dispatch exact — canari `pre.006` préparé
|
||||
[ ] notification decode failure isole la logical subscription
|
||||
[ ] provider RPC application error ne tue pas la session
|
||||
[ ] late notification après unsubscribe ne réactive rien
|
||||
[ ] reconnect invalide/remappe remote ids
|
||||
[ ] resubscribe garde local id
|
||||
[ ] late notification après unsubscribe ne réactive rien — canari `pre.006` préparé
|
||||
[ ] reconnect invalide/remappe remote ids — canari `pre.006` 41 -> 99 préparé
|
||||
[ ] resubscribe garde local id — canari `pre.006` préparé
|
||||
[ ] unsubscribe pendant reconnect gagne
|
||||
[ ] heartbeat n'écrit qu'en Active
|
||||
[ ] heartbeat est annulé au close
|
||||
[ ] heartbeat write failure suit reconnect borné
|
||||
[ ] shutdown interrompt heartbeat/backoff
|
||||
[ ] oversized inbound frame reste borné
|
||||
[ ] queue overflow d'une transaction subscription n'affecte pas les autres
|
||||
[ ] queue overflow d'une transaction subscription n'affecte pas les autres — canari transaction + root `pre.006` préparé
|
||||
[ ] payload/filters/api-key absents de Debug/snapshots sûrs
|
||||
```
|
||||
|
||||
@@ -519,5 +520,54 @@ Critères `pre.005-fix.002` :
|
||||
[ ] tests Transport/workspace verts
|
||||
```
|
||||
|
||||
Verdict courant : **`pre.005` FIX REQUIRED ; `pre.005-fix.001` APPLIED ; `pre.005-fix.002` PREPARED.**
|
||||
Verdict après checkpoint final : **`pre.005` DONE ; `pre.005-fix.001` DONE ; `pre.005-fix.002` DONE.**
|
||||
|
||||
## 16. Gate `pre.005-fix.002` fermé et préparation `pre.006`
|
||||
|
||||
Checkpoint opérateur final `pre.005` reçu le 2026-08-23 :
|
||||
|
||||
```text
|
||||
[x] cargo fmt --all
|
||||
[x] python3 scripts/audit_rust_workspace_rules.py = clean
|
||||
[x] cargo check --workspace = sans warning
|
||||
[x] cargo clippy --workspace --all-targets = sans warning
|
||||
[x] cargo test -p ksp-onchain-transport-lib = 322 unit + 39 public API + 27 completeness + 4 doctests
|
||||
[x] cargo test --workspace = vert
|
||||
```
|
||||
|
||||
Verdict : **`pre.005` et ses deux fixes sont fermés.**
|
||||
|
||||
Critères préparés pour `pre.006` :
|
||||
|
||||
```text
|
||||
[ ] WsSubscriptionKind::HeliusTransaction mappe exactement subscribe/unsubscribe/notification
|
||||
[ ] HeliusLaserStreamWsSession::transaction_subscribe retourne WsSubscription<HeliusTransactionNotification>
|
||||
[ ] notification Full conserve transaction/signature/slot/transactionIndex
|
||||
[ ] notification Signature conserve signature/slot/transactionIndex et états optionnels
|
||||
[ ] forme inconnue reste HeliusTransactionNotification::Unknown sans casser le handle
|
||||
[ ] l'identité locale du handle reste stable après reconnect/resubscribe
|
||||
[ ] le remote ID est remappé et jamais exposé publiquement
|
||||
[ ] notification Helius en vol après transactionUnsubscribe est ignorée après retrait du mapping
|
||||
[ ] overflow du handle transaction est terminal seulement pour ce handle
|
||||
[ ] cleanup overflow envoie transactionUnsubscribe avec le remote ID courant
|
||||
[ ] une souscription Helius root saine reste active pendant l'overflow transaction
|
||||
[ ] quatre compile-fail Helius block/slotsUpdates/vote/escape-hatch restent verts
|
||||
[ ] aucun heartbeat avant pre.007
|
||||
[ ] aucun second actor/socket/registry/queue
|
||||
[ ] aucun nouvel accès non canonique private/pub/pub(crate) dans unit_tests
|
||||
```
|
||||
|
||||
Gate opérateur `pre.006` :
|
||||
|
||||
```text
|
||||
[ ] cargo fmt --all
|
||||
[ ] python3 scripts/audit_rust_workspace_rules.py = clean
|
||||
[ ] cargo check --workspace = sans warning
|
||||
[ ] cargo clippy --workspace --all-targets = sans warning
|
||||
[ ] cargo test -p ksp-onchain-transport-lib
|
||||
[ ] cargo test --workspace
|
||||
```
|
||||
|
||||
Comptages attendus si les nouveaux canaris passent : **325 tests unitaires Transport**, **40 public API**, **28 release-completeness**, **4 doctests compile-fail**.
|
||||
|
||||
Verdict courant : **`pre.006` PREPARED.**
|
||||
|
||||
Reference in New Issue
Block a user