100 lines
3.3 KiB
Markdown
100 lines
3.3 KiB
Markdown
<!-- 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.
|