v0.2.3-pre.006-fix.001

This commit is contained in:
2026-08-18 12:40:24 +02:00
parent 4439589f0d
commit fb32ed03f8
3 changed files with 163 additions and 4 deletions

View File

@@ -0,0 +1,159 @@
<!-- file: deltas/0.2.3/pre.006-fix.001.md -->
<!-- version: 1 -->
# Delta `0.2.3-pre.006-fix.001` — type URL des fixtures write
## Base requise
Ce correctif s'applique après :
```text
0.2.3-pre.006
workspace.package.version = "0.2.3-pre.6"
```
Le commit de livraison attendu pour la base est :
```text
v0.2.3-pre.006
```
## Motif du fix
Les validations opérateur du 2026-08-18 ont établi :
```text
cargo fmt --all OK
cargo check --workspace OK
cargo clippy --workspace --all-targets ÉCHEC dans lib test
cargo test -p ksp-onchain-transport-lib ÉCHEC à la compilation de lib test
```
Le défaut est strictement situé dans le helper de fixtures HTTP multi-endpoints ajouté par `pre.006` :
```rust
for (index, (url, priority)) in urls.iter().enumerate() {
// ...
HttpEndpointUrl::parse(url)
}
```
`urls` est de type `&[(&str, u32)]`. L'itération par référence produit donc `url: &&str`, alors que `HttpEndpointUrl::parse` attend une valeur implémentant `Into<String>`. `&&str` n'implémente pas cette conversion.
Le compilateur propose correctement de déréférencer une fois la valeur :
```rust
HttpEndpointUrl::parse(*url)
```
Aucun défaut de production, de policy write ou de no-resend n'est mis en évidence par cette erreur ; la compilation échoue avant l'exécution des nouveaux tests de `pre.006`.
## Version technique
Le correctif modifie une source Rust de test. Conformément au signal technique KSP :
```text
0.2.3-pre.6 -> 0.2.3-pre.6.fix.1
```
Le header du `Cargo.toml` passe de `version: 126` à `version: 127`.
Le commit de livraison attendu est :
```text
v0.2.3-pre.006-fix.001
```
## Correction
Dans :
```text
crates/ksp-onchain-transport-lib/unit_tests/rpc_transactions.rs
```
la construction des endpoints de fixture passe désormais la chaîne référencée elle-même :
```rust
crate::HttpEndpointUrl::parse(*url).expect("fixture URL must parse")
```
Le header du fichier passe de `version: 6` à `version: 7`.
Cette modification ne change ni l'URL, ni l'ordre des endpoints, ni leurs priorités, ni les paramètres de retry. Elle corrige uniquement le niveau de référence transmis au constructeur typé.
## Contrats inchangés
Le correctif ne change pas :
- `requestAirdrop` ;
- `sendTransaction` ;
- leurs configs publiques ;
- les encodings `base58` / `base64` ;
- la distinction `sendTransaction.maxRetries` / retry HTTP KSP ;
- les descriptors `WriteSubmission / NeverAfterDispatch` ;
- la policy centrale no-resend après dispatch ambigu ;
- les fixtures JSON de `pre.006` ;
- le plan `010` ;
- `KSP-TRANSPORT-007` ;
- les dépendances ;
- le nombre ou le contenu fonctionnel des tests ajoutés par `pre.006`.
Aucun fichier de production de `ksp-onchain-transport-lib` n'est modifié.
## Fichiers modifiés
```text
Cargo.toml
crates/ksp-onchain-transport-lib/unit_tests/rpc_transactions.rs
```
## Fichier ajouté
```text
deltas/0.2.3/pre.006-fix.001.md
```
## Dépendances
Aucune dépendance ajoutée, supprimée ou modifiée.
## Validations à rejouer
```bash
cargo fmt --all
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-onchain-transport-lib
```
Résultat attendu après compilation du test :
```text
175 unit tests
18 public API tests
12 release completeness tests
1 smoke Devnet ignored / opt-in
0 échec
```
Les tests write de `pre.006` doivent notamment pouvoir s'exécuter et démontrer les scénarios no-resend 429 / 503 / timeout ainsi que le fallback autorisé après `NotDispatched`.
Aucune validation du fix lui-même n'est déclarée réussie sans exécution réelle sur le dépôt opérateur.
## Suite
Après validation et commit de :
```text
v0.2.3-pre.006-fix.001
```
reprendre la tranche planifiée :
```text
0.2.3-pre.007
simulateTransaction complet
```
Le réaudit rétroactif `KSP-TRANSPORT-007` reste planifié dans une prerelease dédiée avant la tranche finale de clôture.