v0.2.9-pre.010-fix.001

This commit is contained in:
2026-08-24 18:53:10 +02:00
parent 4568d94a62
commit 3198cc5666
6 changed files with 169 additions and 19 deletions

View File

@@ -0,0 +1,101 @@
<!-- file: deltas/0.2.9/pre.010-fix.001.md -->
<!-- version: 1 -->
# Delta `0.2.9-pre.010-fix.001` — Clippy reconnect + cohérence crate-root
## 1. Base
```text
0.2.9-pre.010
workspace.package.version = 0.2.9-pre.10
```
Le gate opérateur fourni confirme :
```text
cargo fmt --all PASS
python3 scripts/audit_rust_workspace_rules.py PASS / clean
cargo check --workspace PASS
cargo clippy --workspace --all-targets PASS + 2 warnings
Transport unit 383/383 PASS
Transport public_api 49/49 PASS
Transport release_completeness 43/43 PASS
Transport doctests 4/4 PASS
cargo test --workspace PASS
```
## 2. Motif
Deux `clippy::collapsible_if` subsistent dans `grpc_stream.rs` :
```text
ContinuityTracker::observe() éviction du cache borné
run_subscribe_actor() Ping -> send_automatic_ping
```
La revue de code détecte également une incohérence documentaire dans `src/lib.rs` : le commentaire crate-root reste au niveau `pre.009` et affirme encore que reconnect/replay sont hors tranche, alors que `pre.010` les a matérialisés.
## 3. Correctifs
### 3.1 Clippy
Les deux `if` imbriqués sont convertis en let-chains équivalentes. Aucun `#[allow(clippy::...)]` n'est ajouté.
Aucune sémantique n'est modifiée :
```text
cache duplicate toujours borné à 512 identités
Ping automatique même send_automatic_ping, mêmes erreurs terminales
reconnect inchangé
ReplayInfo/from_slot inchangés
gaps/duplicates compteurs inchangés
backpressure/shutdown inchangés
```
### 3.2 Documentation crate-root
`ksp-onchain-transport-lib/src/lib.rs` décrit maintenant explicitement `0.2.9-pre.010` : reconnect borné KSP-owned, reprise depuis le dernier request/slot observé, gap prudent via ReplayInfo et duplicates observables sans promesse exactly-once/lossless.
### 3.3 Signal de version
Le correctif touche du Rust ; conformément à `VER-ID-007`/`VER-ID-010` :
```text
workspace.package.version = 0.2.9-pre.10.fix.1
commit attendu = v0.2.9-pre.010-fix.001
```
## 4. Documentation de release
Mise à jour :
```text
docs/plans/016-V0_2_9_YELLOWSTONE_GRPC_PLAN.md
docs/validation/012-V0_2_9_YELLOWSTONE_GRPC.md
```
Le premier gate opérateur et le statut du fix y sont enregistrés. `pre.011` reste explicitement non commencée avant fermeture sans warning du présent fix.
## 5. Frontières inchangées
```text
OUT fix.001 : Config V3 / PublicNode / provider facade
OUT 0.2.9 : SubscribeDeshred
aucune dépendance / feature Cargo ajoutée
aucun wire protobuf modifié
aucun contrat public reconnect/replay modifié
```
## 6. Gate opérateur attendu
```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 -p ksp-core-lib --test workspace_dependencies
cargo test --workspace
```
Attendu : Clippy sans warning, Transport 383 unit / 49 public API / 43 release-completeness / 4 doctests et workspace vert. Aucun `cargo tree` supplémentaire n'est requis, le graphe Cargo étant inchangé.