v0.2.11-pre.002-fix.003

This commit is contained in:
2026-08-25 20:37:09 +02:00
parent 126e8abfcd
commit 2dbddfe367
15 changed files with 499 additions and 271 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/014-V0_2_11_OFFCHAIN_PRICE_TRANSPORT.md -->
<!-- version: 4 -->
<!-- version: 5 -->
# Validation `0.2.11` — Off-chain price transport SOL/USD
@@ -46,19 +46,19 @@ Les statuts `PLANNED` restent non validés tant que la tranche correspondante n'
## 3. Gate `0.2.11-pre.002`
| Critère | Statut | Preuve |
|----------------------------------------------------|--------|----------------------------------------------------|
| crate `ksp-offchain-transport-lib` créée | PASS | membre workspace + package dédié |
| version workspace synchronisée sur `0.2.11-pre.2` | PASS | `Cargo.toml` racine |
| dépendance inverse vers Config absente | PASS | manifest crate |
| `reqwest` et SDK providers absents de la fondation | PASS | manifest crate |
| `PriceDecimal` exact sans canon `f64` | PASS | coefficient `u128`, scale 18, sérialisation string |
| SOL/USD seule paire publique V1 | PASS | `PricePair::SolUsd` + `SolUsdPriceObservation` |
| identifiant/descripteur provider opaques | PASS | `PriceProviderId` + `PriceProviderDescriptor` |
| auth/rate-limit/quota représentables génériquement | PASS | types provider-neutral dédiés |
| settings communs sans faux endpoint/API key | PASS | `PriceProviderCommonSettings` |
| availability provider-neutral représentable | PASS | `PriceProviderAvailability` + `PriceProviderState` |
| HTTP actif ou adapter provider ajouté | N/A | explicitement réservé à `pre.003+` |
| Critère | Statut | Preuve |
|----------------------------------------------------|--------|----------------------------------------------------------------|
| crate `ksp-offchain-transport-lib` créée | PASS | membre workspace + package dédié |
| version workspace synchronisée sur `0.2.11-pre.2` | PASS | `Cargo.toml` racine |
| dépendance inverse vers Config absente | PASS | manifest crate |
| `reqwest` et SDK providers absents de la fondation | PASS | manifest crate |
| `MarketPriceDecimal` exact sans canon `f64` | PASS | coefficient `u128`, scale 18, sérialisation string |
| SOL/USD seule paire publique V1 | PASS | `MarketPricePair::SolUsd` + `MarketPriceObservation` |
| identifiant/descripteur provider opaques | PASS | `MarketPriceProviderId` + `MarketPriceProviderDescriptor` |
| auth/rate-limit/quota représentables génériquement | PASS | types provider-neutral dédiés |
| settings communs sans faux endpoint/API key | PASS | `MarketPriceProviderCommonSettings` |
| availability provider-neutral représentable | PASS | `MarketPriceProviderAvailability` + `MarketPriceProviderState` |
| HTTP actif ou adapter provider ajouté | N/A | explicitement réservé à `pre.003+` |
## 3.1 Taxonomie Off-chain et observabilité
@@ -81,6 +81,28 @@ Les statuts `PLANNED` restent non validés tant que la tranche correspondante n'
Le gate `cargo clippy --workspace --all-targets` de `pre.002-fix.001` a détecté un unique écart `clippy::implicit-return` dans le canari `tests/dependency_boundary.rs`. Le correctif ajoute le `return` explicite attendu dans la closure de `Iterator::any` et synchronise `workspace.package.version` sur `0.2.11-pre.2.fix.2`. Aucun contrat public, comportement runtime ou scope provider n'est modifié.
Les validations opérateur du `2026-08-25` sur `pre.002-fix.002` sont : `cargo fmt --all` PASS, audit Rust PASS, audit Markdown PASS, `cargo check --workspace` PASS, `cargo test -p ksp-offchain-transport-lib` PASS avec 13 tests exécutés, et `cargo clippy --workspace --all-targets` PASS. `cargo test --workspace` n'a pas été rejoué après ce fix et n'est donc pas déclaré PASS pour cet état exact.
## 3.3 Correctif `0.2.11-pre.002-fix.003`
Le nommage public initial `Price*` restait trop générique alors que les modules qui possèdent ces contrats sont explicitement la famille `market_price_*`. Le correctif synchronise `workspace.package.version` sur `0.2.11-pre.2.fix.3` et renomme sans alias de compatibilité toute la surface publique spécifique à cette famille en `MarketPrice*` / `MARKET_PRICE_*`.
Le contrat attendu après application est :
```text
MarketPriceDecimal
MarketPriceObservation
MarketPriceTimestamp
MarketPriceProvenance
MarketPricePair
MarketPriceSemantics
MarketPriceProvider*
MARKET_PRICE_*
ERROR_CODE_MARKET_PRICE_*
```
Cette correction reste dans la responsabilité de `pre.002` : elle stabilise la fondation et sa façade avant l'introduction du HTTP runtime en `pre.003`.
## 4. Matrice provider prévue
| Provider | SOL/USD V1 | Gratuit V1 | Mode auth prévu | Test déterministe | Smoke live | Statut courant |