7.1 KiB
Delta 0.2.8-rel.001 — publication stable Helius LaserStream WebSocket
1. Base requise
Base directe attendue :
0.2.8-pre.011
workspace.package.version = 0.2.8-pre.11
Commit attendu pour cette livraison :
v0.2.8-rel.001
Tag stable attendu après validation :
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.versionde0.2.8-pre.11à0.2.8; - clôt
ROADMAP.md, le plan015et la matricevalidation/011; - ajoute l’entrée stable
0.2.8auCHANGELOG.md; - passe
Helius WSàStabledans l’inventaire composants ; - synchronise les index/documentation de séquence vers le statut publié ;
- conserve
prompts/014-V0_2_9_START_PROMPT.mdinchangé comme contrat actif pour0.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 :
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 :
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é
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é
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 :
account
logs
program
root
signature
slot
slotsUpdates # unstable
Extension Helius typée :
transactionSubscribe
transactionUnsubscribe
transactionNotification
Absents de la façade Helius :
block
vote
Contrats stabilisés :
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 n’abattent pas la session physique
Debug/snapshots Helius sans payload provider brut
Config et secrets
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 d’inté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 n’est attachée au contrat WebSocket 0.2.8.
5. Fichiers ajoutés
deltas/0.2.8/rel.001.md
6. Fichiers modifiés
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é :
prompts/014-V0_2_9_START_PROMPT.md
crates/**
config/**
.env.example
7. Décisions de clôture
Aucune nouvelle décision de protocole n’est introduite par rel.001. La publication confirme :
- Helius LaserStream WebSocket reste une façade provider dédiée sur le moteur/actor WebSocket partagé ;
- la surface publiée est
7 familles standard + transaction, avecblock/voteabsents ; slotsUpdatesreste exposé comme unstable ;- le heartbeat Ping 60 s est provider-owned et Helius-only ;
- Config reste l’unique propriétaire du secret Helius et Transport ne lit pas l’environnement ;
- le smoke live cross-crates Helius attend une surface d’intégration/orchestration dédiée ;
- HTTP 52+14 et Standard WS 18/18 restent des non-régressions obligatoires ;
0.2.9ouvre 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 :
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 n’ont pas besoin d’être rejoués si l’overlay appliqué est exactement 0.2.8-rel.001, car cette livraison ne change aucune dépendance. Les smokes live n’ont pas besoin d’être rejoués non plus : aucune source runtime n’est modifiée.
Comptages Transport attendus :
unit = 335
public API = 41
release completeness = 34
doctests compile-fail = 4
9. Commit et tag stable
Après succès du gate :
commit : v0.2.8-rel.001
tag : v0.2.8
Aucun tag intermédiaire de prerelease/fix/rel n’est requis.
10. Suite
Après création du tag stable v0.2.8, ouvrir :
0.2.9-pre.001
avec :
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.