v0.2.8-rel.001

This commit is contained in:
2026-08-23 23:14:58 +02:00
parent 7cdf5e80c9
commit d70c3a1672
12 changed files with 388 additions and 61 deletions

246
deltas/0.2.8/rel.001.md Normal file
View File

@@ -0,0 +1,246 @@
<!-- 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.