v0.2.8-pre.007-fix.004
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
<!-- file: docs/plans/015-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET_PLAN.md -->
|
||||
<!-- version: 20 -->
|
||||
<!-- version: 21 -->
|
||||
|
||||
# Plan `0.2.8` — Helius LaserStream WebSocket
|
||||
|
||||
> **Statut : `0.2.8-pre.007-fix.002` passe fmt/audit/check/Clippy mais laisse le même unique canari périodique à 330/331. Le diagnostic est affiné : `yield_now()` ne garantit pas la progression du driver I/O OS sous horloge Tokio pausée. `0.2.8-pre.007-fix.003` conserve le runtime heartbeat byte-identical et borne la propagation TCP en temps réel après franchissement du deadline virtuel.**
|
||||
> **Statut : `0.2.8-pre.007-fix.003` ferme enfin le heartbeat Transport à 331/331, avec fmt/audit/check/Clippy verts. Le workspace révèle toutefois un canari de dépendances devenu obsolète : `ksp-core-lib/tests/workspace_dependencies.rs` attend encore l’ancienne déclaration Tokio dev `net, rt` alors que `pre.007` a ajouté `io-util, test-util` pour les tests d’horloge. `0.2.8-pre.007-fix.004` aligne ce canari workspace sans toucher au runtime heartbeat.**
|
||||
|
||||
## 1. Objet, base et état courant
|
||||
|
||||
@@ -37,10 +37,11 @@ pre.006 transactionNotification + lifecycle actor validé
|
||||
pre.007 heartbeat Helius WebSocket / idle — checkpoint gate à corriger
|
||||
pre.007-fix.001 lint + close canary corrigés ; un canari périodique reste non déterministe
|
||||
pre.007-fix.002 observation yield-only insuffisante — checkpoint 330/331
|
||||
pre.007-fix.003 progression I/O réelle bornée après deadline virtuel — préparé
|
||||
pre.007-fix.003 heartbeat Transport fermé ; workspace bloqué par canari Tokio dev obsolète
|
||||
pre.007-fix.004 alignement canari dependency-firewall Tokio dev — préparé
|
||||
|
||||
workspace.package.version courant = 0.2.8-pre.7.fix.3
|
||||
commit attendu = v0.2.8-pre.007-fix.003
|
||||
workspace.package.version courant = 0.2.8-pre.7.fix.4
|
||||
commit attendu = v0.2.8-pre.007-fix.004
|
||||
aucun tag prerelease
|
||||
```
|
||||
|
||||
@@ -70,9 +71,11 @@ pre.005 DONE — transactionSubscribe request typed + filters/options/tokenAcco
|
||||
fix.002 DONE — helpers wire non consommés en production bornés à #[cfg(test)] ; zéro warning dead_code
|
||||
pre.006 DONE — transactionNotification + handle live + actor registry/reconnect/resubscribe/unsubscribe races
|
||||
+ late notifications + backpressure ciblée, sans second actor/socket
|
||||
pre.007 CHECKPOINT — heartbeat Helius WebSocket/idle + timers + interaction reconnect/control frames/shutdown
|
||||
fix.001 CHECKPOINT — lint et close canary corrigés ; 330/331 unit, seul le canari périodique reste en course scheduler
|
||||
fix.002 PREPARED — observation positive du Ping bornée en scheduler steps, sans nouvelle avance du temps virtuel
|
||||
pre.007 FIX REQUIRED — heartbeat Helius WebSocket/idle + timers + interaction reconnect/control frames/shutdown
|
||||
fix.001 CHECKPOINT — lint et close canary corrigés ; 330/331 unit
|
||||
fix.002 CHECKPOINT — observation yield-only insuffisante ; 330/331 unit
|
||||
fix.003 CHECKPOINT — heartbeat Transport fermé à 331/331 ; workspace échoue sur canari Tokio dev obsolète
|
||||
fix.004 PREPARED — alignement exact du dependency-firewall sur `io-util, net, rt, test-util`
|
||||
pre.008 provider adversarial lifecycle + capability guards + payload/backpressure + security/redaction
|
||||
pre.009 compliance Helius WebSocket + non-régressions Solana standard 18/18 + HTTP 52/14
|
||||
+ Config/API/dependency-firewall canaries
|
||||
@@ -1276,3 +1279,38 @@ Cette fenêtre réelle ne peut pas masquer un heartbeat manquant : elle ne dure
|
||||
|
||||
Le runtime, Config, `WsSessionSettings`, le lifecycle transaction et la cadence 60 s restent inchangés. `pre.008` reste bloqué jusqu'au replay entièrement vert de `pre.007-fix.003`.
|
||||
|
||||
## 19. Replay `pre.007-fix.003` et préparation `pre.007-fix.004`
|
||||
|
||||
Checkpoint opérateur `0.2.8-pre.7.fix.3` reçu le 2026-08-23 :
|
||||
|
||||
```text
|
||||
[x] cargo fmt --all
|
||||
[x] python3 scripts/audit_rust_workspace_rules.py = clean / 0 candidate
|
||||
[x] cargo check --workspace = vert, sans warning
|
||||
[x] cargo clippy --workspace --all-targets = vert, sans warning
|
||||
[x] cargo test -p ksp-onchain-transport-lib = 331/331 unit + 40 API + 29 completeness + 4 doctests
|
||||
[!] cargo test --workspace = échec unique dans ksp-core-lib/tests/workspace_dependencies.rs
|
||||
```
|
||||
|
||||
Le heartbeat `pre.007` est donc fonctionnellement fermé côté Transport. L'échec workspace est indépendant du runtime :
|
||||
|
||||
```text
|
||||
transport_manifest_preserves_ksp_dependency_firewall
|
||||
attendu historique : tokio dev features = ["net", "rt"]
|
||||
manifest courant : tokio dev features = ["io-util", "net", "rt", "test-util"]
|
||||
```
|
||||
|
||||
`pre.007` a légitimement ajouté `test-util` pour `tokio::time::pause/advance` et `io-util` pour les fixtures WebSocket de test. Le canari workspace, resté textuellement figé sur l'ancien ensemble, n'a pas été mis à jour dans le delta d'origine.
|
||||
|
||||
`fix.004` corrige uniquement cette incohérence de validation :
|
||||
|
||||
```text
|
||||
- aucune modification de crates/ksp-onchain-transport-lib/Cargo.toml ;
|
||||
- aucune modification de src/ws_session.rs ni des canaris heartbeat ;
|
||||
- mise à jour du canari dependency-firewall vers l'ensemble dev exact courant
|
||||
["io-util", "net", "rt", "test-util"] ;
|
||||
- aucune nouvelle dépendance ni feature.
|
||||
```
|
||||
|
||||
`pre.008` reste bloqué jusqu'au replay workspace vert de `pre.007-fix.004`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user