v0.2.7-pre.013

This commit is contained in:
2026-08-23 10:24:28 +02:00
parent 3b4d355537
commit 3c5786f273
8 changed files with 352 additions and 42 deletions

99
deltas/0.2.7/pre.013.md Normal file
View File

@@ -0,0 +1,99 @@
<!-- file: deltas/0.2.7/pre.013.md -->
<!-- version: 1 -->
# Delta `0.2.7-pre.013` — smoke WebSocket live et audit final des dépendances
## Base
Base directe validée par l'opérateur :
```text
0.2.7-pre.012-fix.001
Cargo 0.2.7-pre.12.fix.1
```
Les gates `fmt`, audit Python, `check`, `clippy`, les 309 tests unitaires Transport, 36 tests d'API publique, 24 tests de release completeness, 109 tests unitaires Config et le workspace complet sont verts.
## Signal technique
```text
livraison = 0.2.7-pre.013
workspace.package.version = 0.2.7-pre.13
commit = v0.2.7-pre.013
tag = aucun
```
## Smoke WebSocket Devnet opt-in
Un nouveau smoke Transport pur `websocket_devnet_smoke.rs` couvre le chemin live stable minimal :
```text
settings programmatiques
-> wss://api.devnet.solana.com
-> WsSession::connect
-> slotSubscribe
-> une slotNotification sous timeout 20 s
-> slotUnsubscribe via WsSubscription
-> WsSession::close
```
Le test est `#[ignore]` par défaut. Il ne lit ni Config ni environnement et n'utilise aucune famille unstable. Les fixtures WebSocket locales restent les gates déterministes du lifecycle, des DTOs et des familles `block`, `slotsUpdates` et `vote`.
Un échec lié au réseau, au rate-limit ou à l'indisponibilité Devnet ne constitue pas automatiquement une régression KSP.
## Audit de dépendances
Le canari workspace de `ksp-core-lib` verrouille désormais les noms directs de dépendances de Transport :
```text
runtime : futures-util, ksp-core-lib, ksp-logging-lib, reqwest, serde, serde_json, tokio, tokio-tungstenite
dev : tokio
```
Il complète le firewall existant contre Config, Store, Program et `tracing` direct.
L'inspection du graphe résolu doit être faite côté opérateur :
```bash
cargo tree -p ksp-onchain-transport-lib
cargo tree -p ksp-onchain-transport-lib --duplicates
cargo tree --duplicates
```
Les doublons transitifs sont à analyser, pas à supprimer mécaniquement lorsqu'ils résultent de contraintes upstream différentes.
## Documentation
`README.md` et `USAGE.md` distinguent désormais les smokes HTTP Transport, WebSocket Transport et le smoke historique Config -> Transport. Le plan et la matrice enregistrent le checkpoint `pre.013`.
`ROADMAP.md` et `CHANGELOG.md` restent inchangés pendant cette prerelease.
## Comptages attendus
```text
Transport unit tests = 309
Transport public API tests = 36
Transport release completeness = 24
Transport WebSocket live smoke = 1 ignored par défaut
Config unit tests = 109
Core workspace dependency tests = 3
```
## Validation opérateur
```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
cargo tree -p ksp-onchain-transport-lib
cargo tree -p ksp-onchain-transport-lib --duplicates
cargo tree --duplicates
cargo test -p ksp-onchain-transport-lib --test websocket_devnet_smoke -- --ignored --nocapture
```
Le smoke live peut être qualifié séparément si Devnet est indisponible ; les autres gates restent déterministes.
Le sandbox de préparation ne possède pas Cargo/rustc ; les gates Cargo et le smoke live restent à exécuter côté opérateur.