v0.2.7-pre.014

This commit is contained in:
2026-08-23 11:15:57 +02:00
parent 3c5786f273
commit 5aa7b45840
23 changed files with 1605 additions and 103 deletions

View File

@@ -1,9 +1,9 @@
<!-- file: docs/plans/014-V0_2_7_ONCHAIN_WEBSOCKET_PLAN.md -->
<!-- version: 15 -->
<!-- version: 16 -->
# Plan `0.2.7` — WebSocket Solana standard
> **Statut : actif, `0.2.7-pre.007`.** `pre.006-fix.001` est validé opérateur. `pre.007` active le reconnect borné, le resubscribe déterministe, le compteur de continuity gaps et les races unsubscribe/reconnect. Les wrappers typed publics restent différés.
> **Statut : candidate, `0.2.7-pre.014`.** La surface WebSocket standard 18/18, la composition Config V2, les non-régressions HTTP, le lifecycle borné, le smoke WebSocket Devnet et laudit de dépendances sont validés. `pre.014` ferme la documentation/compliance et prépare le prompt `0.2.8`; seul `rel.001` peut publier `v0.2.7` stable.
## 1. Objet et base vérifiée
@@ -975,6 +975,22 @@ Le canari source interdit qu'une dépendance nouvelle se glisse silencieusement
README/USAGE documentent désormais les smokes HTTP/WS séparés, les limites du smoke live et les commandes d'audit du graphe Cargo.
Preuve opérateur `pre.013` enregistrée avant `pre.014` :
```text
cargo fmt --all OK
python3 scripts/audit_rust_workspace_rules.py OK
cargo check --workspace OK
cargo clippy --workspace --all-targets OK
cargo test -p ksp-onchain-transport-lib OK — 309 unit / 36 public API / 24 release completeness
cargo test --workspace OK
WebSocket Devnet smoke opt-in OK — slotSubscribe -> notification -> unsubscribe -> close
Core workspace dependency tests OK — 3
Config unit tests OK — 109
```
Le `cargo tree -p ksp-onchain-transport-lib --duplicates` ne montre que deux familles transitives dupliquées pertinentes : `syn` 2/3 et `webpki-roots` 0.26/1.0. Elles proviennent des dépendances upstream et ne justifient ni pin artificiel ni downgrade. Le graphe workspace plus large contient les duplications attendues des branches Tauri/GTK et Wallet/crypto ; aucune nouvelle dépendance directe anormale n'est introduite dans Transport.
## 22. Forecast recalibré
L'inventaire officiel n'impose que 9 familles de subscriptions, mais le lifecycle concurrent est plus coûteux que le forecast initial. Le gate reste **positif sans split de release**, à condition de granulariser les tranches au lieu de compresser le moteur et les wrappers.
@@ -993,7 +1009,7 @@ pre.010 DONE — wrappers stable lot B : signature + slot + root, terminaison s
pre.011 DONE — unstable : block + slotsUpdates + vote, warnings + fallbacks wire/KSP-TRANSPORT-007
pre.012 DONE — compliance 18/18 + canaries public API + composition Config + régressions HTTP
pre.013 DONE — smoke live opt-in + README/USAGE + source dependency canary + cargo tree/duplicates opérateur
pre.014 validation workspace finale + docs/compliance + prompt 0.2.8
pre.014 DONE — validation finale enregistrée + audit documentaire + docs/compliance + prompt 0.2.8
rel.001 publication stable stricte
```
@@ -1018,9 +1034,9 @@ La release ne peut passer stable que si :
- smoke live retenu reste opt-in ;
- README/USAGE, matrice finale, graphes Cargo et prompt `0.2.8` sont synchronisés.
## 24. Validation opérateur requise pour `pre.001`
## 24. Validation opérateur requise pour `pre.014`
Après application de ce gate documentaire/versionné :
Après application de cette dernière prerelease documentaire/versionnée :
```bash
cargo fmt --all
@@ -1029,4 +1045,4 @@ cargo check --workspace
cargo clippy --workspace --all-targets
```
`cargo test --workspace` n'est pas imposé par cette tranche documentaire d'ouverture tant qu'aucun Rust runtime n'est ajouté, mais reste autorisé comme checkpoint opérateur.
`cargo test -p ksp-onchain-transport-lib` puis `cargo test --workspace` font partie du gate final de `pre.014` même si la tranche ne modifie pas le runtime. Les graphes Cargo et le smoke live nont pas besoin dêtre rejoués si la base appliquée est exactement celle déjà validée en `pre.013`; toute modification ultérieure de dépendances ou du chemin WebSocket les rend de nouveau obligatoires.