v0.2.8-rel.001
This commit is contained in:
246
deltas/0.2.8/rel.001.md
Normal file
246
deltas/0.2.8/rel.001.md
Normal 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 l’entrée stable `0.2.8` au `CHANGELOG.md` ;
|
||||
- passe `Helius WS` à `Stable` dans l’inventaire 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 n’abattent 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 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
|
||||
|
||||
```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 n’est 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 l’unique propriétaire du secret Helius et Transport ne lit pas l’environnement ;
|
||||
6. le smoke live cross-crates Helius attend une surface d’inté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 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 :
|
||||
|
||||
```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 n’est 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.
|
||||
Reference in New Issue
Block a user