v0.2.8-pre.007-fix.001

This commit is contained in:
2026-08-23 16:11:44 +02:00
parent 56b9ce6abc
commit 3b64d1e0ec
5 changed files with 221 additions and 13 deletions

View File

@@ -1,9 +1,9 @@
<!-- file: docs/validation/011-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET.md -->
<!-- version: 16 -->
<!-- version: 17 -->
# Validation `0.2.8` — Helius LaserStream WebSocket
> **Statut : `pre.006` est validé intégralement. `pre.007` est préparé pour le heartbeat Helius LaserStream WebSocket provider-owned : Ping control frame à 60 s uniquement en `Active`, réarmé après reconnect et interrompu par close/shutdown.**
> **Statut : `pre.007` est implémenté mais son gate est bloqué par un lint de helper test et deux canaris Tokio pausés. `pre.007-fix.001` est préparé comme correction test-only, sans changement runtime heartbeat.**
## 1. Références
@@ -24,6 +24,8 @@ 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
pre.007 heartbeat Helius deltas/0.2.8/pre.007.md
pre.007 test determinism fix deltas/0.2.8/pre.007-fix.001.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
@@ -342,7 +344,6 @@ Constats `pre.002-fix.001` :
Aucun split en fichiers supplémentaires n'est retenu : les plans historiques `0.2.5``0.2.7` sont de taille comparable ou supérieure, et le contenu du plan `015` reste entièrement centré sur une seule release. Le problème identifié était **l'ordre interne et la duplication de responsabilités**, pas la nécessité d'un nouveau type de document.
## 12. Gates opérateur `pre.004` / `fix.001` / `fix.002`
Premier passage `pre.004` reçu le 2026-08-23 :
@@ -629,3 +630,52 @@ Le `test-util` Tokio ajouté côté dev sert uniquement à avancer l'horloge des
Verdict courant : **`pre.006` DONE ; `pre.007` PREPARED.**
## 18. Gate `pre.007` et `pre.007-fix.001`
Résultat opérateur reçu pour `0.2.8-pre.007` :
```text
[x] cargo fmt --all
[x] audit Rust workspace = clean / 0 candidate
[x] cargo check --workspace = vert, sans warning
[!] cargo clippy --workspace --all-targets = 1 erreur `implicit_return` dans `yield_runtime_steps`
[!] cargo test -p ksp-onchain-transport-lib = 329 passed / 2 failed sur 331 unit
```
Tests heartbeat déjà verts dans ce même run :
```text
[x] helius_heartbeat_policy_is_provider_owned_and_fixed_to_sixty_seconds
[x] standard_session_never_emits_helius_provider_heartbeat
[x] helius_heartbeat_write_failure_maps_to_existing_reconnect_failure_outcome
[x] helius_heartbeat_is_rearmed_from_successful_reconnect
```
Échecs bornés :
```text
[!] helius_heartbeat_sends_ping_at_sixty_seconds_and_rearms
actor non garanti pollé/armé avant la première `advance()` Tokio
[!] helius_explicit_close_cancels_heartbeat_before_deadline
assertion trop stricte : après fermeture de la fixture, `try_recv()` peut être `Disconnected`
```
Critères `pre.007-fix.001` :
```text
[ ] aucune modification de `src/ws_session.rs`
[ ] aucune modification de la constante heartbeat 60 s
[ ] aucun champ Config/WsSessionSettings ajouté
[ ] helper `yield_runtime_steps` satisfait `clippy::implicit_return`
[ ] actor laissé se stabiliser après `pause()` avant la première avance
[ ] test close prouve aucun Ping à t=30 s avant close
[ ] après close, aucun `Ok(())` Ping n'est accepté ; Empty/Disconnected sont valides
[ ] cargo check sans warning
[ ] cargo clippy sans warning
[ ] Transport = 331 unit + 40 public API + 29 completeness + 4 doctests
[ ] cargo test --workspace = vert
```
Verdict courant : **`pre.007` FIX REQUIRED ; `pre.007-fix.001` PREPARED ; `pre.008` bloqué.**