v0.2.11-pre.003-fix.001

This commit is contained in:
2026-08-25 21:24:30 +02:00
parent be2a06bc80
commit f4413ebbb0
11 changed files with 343 additions and 70 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/014-V0_2_11_OFFCHAIN_PRICE_TRANSPORT.md -->
<!-- version: 6 -->
<!-- version: 7 -->
# Validation `0.2.11` — Off-chain price transport SOL/USD
@@ -122,10 +122,27 @@ Cette correction reste dans la responsabilité de `pre.002` : elle stabilise la
| limite dynamique n'invente pas de cadence locale | PASS | `HttpAdmissionPolicy::Dynamic` |
| cooldown `Retry-After` borné et admission non bloquante | PASS | `record_rate_limited` + `try_admit` |
| adapters CoinGecko/Jupiter/etc. ajoutés | N/A | explicitement réservés à `pre.004+` |
| gate Cargo complet sur l'état livré | PENDING | à exécuter par l'opérateur |
| gate Cargo complet sur `pre.003-fix.001` | PENDING | à rejouer par l'opérateur après le correctif |
Les tests déterministes de `pre.003` couvrent en particulier le body chunked dépassant la limite, le refus des redirects, un `429` avec `Retry-After`, la non-propagation d'un body distant canari, le JSON invalide et le refill/cooldown du limiter.
## 3.5 Correctif `0.2.11-pre.003-fix.001`
Le gate opérateur de `pre.003` a révélé quatre classes d'écarts avant poursuite vers `pre.004` : six violations `RUST-FMT-104` dans `src/error.rs`, six réexports `pub(crate)` HTTP inutilisés dans le build normal, un test de burst rejeté par la validation `burst > requests`, et la non-utilisation de la façade crate-root dans les `impl` des items HTTP partagés. `cargo check` et `cargo clippy` terminaient avec les warnings de réexports, tandis que `cargo test -p ksp-offchain-transport-lib` échouait sur `documented_burst_is_consumed_atomically_before_refill`.
Le correctif applique les règles suivantes :
```text
RUST-FMT-005 / RUST-FMT-104 : constantes homogènes triées alphabétiquement
RUST-IMPORT-009 / RUST-API-004 : items HTTP partagés consommés via crate::Item, y compris dans leurs impl
RUST-API-008 : helpers préparatoires sans consumer production sous #[cfg(test)], aucun #[allow(dead_code)] compensatoire
contrat limiter : burst documenté indépendant de la cadence moyenne et autorisé à la dépasser
```
Le cas `1 req/s` avec `burst 2` devient un canari déterministe ; il protège notamment la représentabilité du cas Coinbase documenté dans le plan à `10 req/s, burst 15`. Les modules `http_*` restent donc testés et prêts en `pre.003`, mais leur compilation normale sera activée en `pre.004` lorsque les premiers adapters de production les consommeront réellement.
La version Cargo du correctif est `0.2.11-pre.3.fix.1`. Les audits statiques du sandbox sont propres ; le gate Cargo complet doit être rejoué par l'opérateur.
## 4. Matrice provider prévue
| Provider | SOL/USD V1 | Gratuit V1 | Mode auth prévu | Test déterministe | Smoke live | Statut courant |
@@ -166,7 +183,7 @@ Avant la stable, les conditions d'usage et la persistance des offres gratuites d
| Cas | Statut |
|---------------------------------------------------------------|---------|
| cadence locale fixe représentable | PASS |
| burst documenté représentable | PASS |
| burst documenté supérieur à la cadence moyenne représentable | PASS |
| limite dynamique keyless représentable | PASS |
| `429` classé | PLANNED |
| `Retry-After` honoré lorsqu'exploitable | PLANNED |