Files
khadhroony-solana-project/deltas/0.2.8/rel.001.md
2026-08-23 23:14:58 +02:00

247 lines
7.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- file: deltas/0.2.8/rel.001.md -->
<!-- version: 1 -->
# Delta `0.2.8-rel.001` — publication stable Helius LaserStream WebSocket
## 1. Base requise
Base directe attendue :
```text
0.2.8-pre.011
workspace.package.version = 0.2.8-pre.11
```
Commit attendu pour cette livraison :
```text
v0.2.8-rel.001
```
Tag stable attendu après validation :
```text
v0.2.8
```
## 2. Objectif
Publier `0.2.8 — Helius LaserStream WebSocket` sans ajouter de capacité fonctionnelle après la candidate.
`rel.001` :
- passe `workspace.package.version` de `0.2.8-pre.11` à `0.2.8` ;
- clôt `ROADMAP.md`, le plan `015` et la matrice `validation/011` ;
- ajoute lentrée stable `0.2.8` au `CHANGELOG.md` ;
- passe `Helius WS` à `Stable` dans linventaire composants ;
- synchronise les index/documentation de séquence vers le statut publié ;
- conserve `prompts/014-V0_2_9_START_PROMPT.md` inchangé comme contrat actif pour `0.2.9`.
Aucun fichier Rust, aucune API publique, aucun schema/config runtime, aucune dépendance et aucune feature ne changent dans cette livraison.
## 3. Preuve candidate finale acquise
Le checkpoint opérateur fourni le **23 août 2026** après application de `0.2.8-pre.011` est intégralement vert :
```text
cargo fmt --all OK
python3 scripts/audit_rust_workspace_rules.py OK
General Rust rule audit clean
Rust export completeness audit 0 candidate(s)
KSP workspace Rust rule audit clean
cargo check --workspace OK
cargo clippy --workspace --all-targets OK
cargo test -p ksp-onchain-transport-lib OK
unit 335 passed
public API 41 passed
release completeness 34 passed
doctests compile-fail 4 passed
cargo test --workspace OK
```
Les suites Config/Core/Logging/Wallet/Desks passent également. Les smokes réseau, benchmarks et probes operator-only restent ignorés par défaut conformément à leur contrat.
Les trois audits Cargo ont été exécutés en `pre.010` puis conservés valides par `pre.011`, qui ne modifie aucune dépendance :
```text
cargo tree -p ksp-onchain-transport-lib
cargo tree -p ksp-onchain-transport-lib --duplicates
cargo tree --duplicates
```
Transport ne présente aucune nouvelle dépendance Helius/gRPC/Config ; les doublons ciblés `syn 2/3` et `webpki-roots 0.26/1.0` sont transitifs et non bloquants.
## 4. Surface stable publiée
### HTTP hérité
```text
52/52 méthodes HTTP courantes typées
14/14 méthodes historiques Deprecated/Removed conservées
KSP-TRANSPORT-007 appliqué à la surface typed
write submissions : aucun resend après dispatch ambigu
```
### WebSocket Solana standard hérité
```text
9 familles standard
18/18 opérations subscribe/unsubscribe
stable : account, logs, program, root, signature, slot
unstable : block, slotsUpdates, vote
```
### Helius LaserStream WebSocket
Surface standard réutilisée :
```text
account
logs
program
root
signature
slot
slotsUpdates # unstable
```
Extension Helius typée :
```text
transactionSubscribe
transactionUnsubscribe
transactionNotification
```
Absents de la façade Helius :
```text
block
vote
```
Contrats stabilisés :
```text
HeliusLaserStreamWsSession façade publique dédiée
WsSession actor physique unique partagé avec le standard
aucun second client/socket/registry/scheduler
capability guards avant I/O
heartbeat Helius-only = WebSocket Ping control frame / 60 s
reconnect/resubscribe/remap/unsubscribe races bornés
backpressure isolé par subscription
payload oversized borné avant decode métier
erreurs RPC provider nabattent pas la session physique
Debug/snapshots Helius sans payload provider brut
```
### Config et secrets
```text
std.transport V2 comprend helius_laserstream
profiles Helius mainnet/devnet
KSP_SECRET_HELIUS_API_KEY appartient à Config
redaction segmentaire des URLs résolues
Config -> Transport autorisé
Transport -X-> Config / environnement
```
Le smoke Helius live cross-crates est reporté vers une future surface dintégration/orchestration dédiée afin de ne pas faire de Config une destination générale de smoke et de ne pas faire lire le secret par Transport.
LaserStream gRPC / Yellowstone reste un backend distinct : aucune promesse gRPC/replay nest attachée au contrat WebSocket `0.2.8`.
## 5. Fichiers ajoutés
```text
deltas/0.2.8/rel.001.md
```
## 6. Fichiers modifiés
```text
Cargo.toml
ROADMAP.md
CHANGELOG.md
docs/000-README.md
docs/architecture/004-COMPONENT_INVENTORY.md
docs/plans/000-README.md
docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md
docs/plans/015-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET_PLAN.md
docs/validation/000-README.md
docs/validation/011-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET.md
prompts/000-README.md
```
Volontairement inchangé :
```text
prompts/014-V0_2_9_START_PROMPT.md
crates/**
config/**
.env.example
```
## 7. Décisions de clôture
Aucune nouvelle décision de protocole nest introduite par `rel.001`. La publication confirme :
1. Helius LaserStream WebSocket reste une façade provider dédiée sur le moteur/actor WebSocket partagé ;
2. la surface publiée est `7 familles standard + transaction`, avec `block/vote` absents ;
3. `slotsUpdates` reste exposé comme unstable ;
4. le heartbeat Ping 60 s est provider-owned et Helius-only ;
5. Config reste lunique propriétaire du secret Helius et Transport ne lit pas lenvironnement ;
6. le smoke live cross-crates Helius attend une surface dintégration/orchestration dédiée ;
7. HTTP 52+14 et Standard WS 18/18 restent des non-régressions obligatoires ;
8. `0.2.9` ouvre Yellowstone gRPC standard/provider-neutral par audit/sizing avant dépendances ou implémentation lourde.
## 8. Validation finale après application
Le passage du signal Cargo à la version stable doit être revalidé avant commit/tag :
```bash
cargo fmt --all
python3 scripts/audit_rust_workspace_rules.py
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-onchain-transport-lib
cargo test --workspace
```
Les graphes Cargo nont pas besoin dêtre rejoués si loverlay appliqué est exactement `0.2.8-rel.001`, car cette livraison ne change aucune dépendance. Les smokes live nont pas besoin dêtre rejoués non plus : aucune source runtime nest modifiée.
Comptages Transport attendus :
```text
unit = 335
public API = 41
release completeness = 34
doctests compile-fail = 4
```
## 9. Commit et tag stable
Après succès du gate :
```text
commit : v0.2.8-rel.001
tag : v0.2.8
```
Aucun tag intermédiaire de prerelease/fix/rel nest requis.
## 10. Suite
Après création du tag stable `v0.2.8`, ouvrir :
```text
0.2.9-pre.001
```
avec :
```text
prompts/014-V0_2_9_START_PROMPT.md
```
La première tranche est un gate strict de relecture, audit Yellowstone courant, architecture, threat model, dépendances/licences/MSRV/features et sizing. La prévision `pre.001 -> pre.013` du prompt est explicitement souple et doit être recalibrée avant toute implémentation gRPC lourde.