v0.2.11-pre.004-fix.001
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/014-V0_2_11_OFFCHAIN_PRICE_TRANSPORT.md -->
|
||||
<!-- version: 8 -->
|
||||
<!-- version: 9 -->
|
||||
|
||||
# Validation `0.2.11` — Off-chain price transport SOL/USD
|
||||
|
||||
@@ -146,32 +146,40 @@ La version Cargo du correctif est `0.2.11-pre.3.fix.1`. Le gate opérateur du `2
|
||||
|
||||
## 3.6 Gate `0.2.11-pre.004`
|
||||
|
||||
| Critère | Statut | Preuve |
|
||||
|------------------------------------------------------------------------|---------|-----------------------------------------------------------|
|
||||
| version workspace `0.2.11-pre.4` | PASS | `Cargo.toml` racine |
|
||||
| modules `http_*` actifs en production, sans staging crate-root test | PASS | `src/lib.rs` |
|
||||
| cause `RUST-FMT-108` de `pre.003-fix.001` supprimée | PASS | modules production avant tests |
|
||||
| CoinGecko SOL/USD adapter public | PASS | `market_price_coingecko.rs` |
|
||||
| CoinGecko keyless et Demo key distingués | PASS | settings + descriptor + header sensible |
|
||||
| CoinMarketCap SOL/USD adapter public | PASS | `market_price_coinmarketcap.rs` |
|
||||
| CoinMarketCap Simple Price V2 utilisé, V1 deprecated absent du runtime | PASS | endpoints V2 fixes + canari dependency boundary |
|
||||
| CoinMarketCap keyless et Basic key distingués | PASS | settings + descriptor + header sensible |
|
||||
| CoinPaprika SOL/USD adapter public | PASS | `market_price_coinpaprika.rs` |
|
||||
| CoinPaprika sans faux credential | PASS | settings keyless uniquement |
|
||||
| prix JSON provider parsé exactement sans passage par `f64` | PASS | `RawValue` -> `MarketPriceDecimal::parse_json_raw` |
|
||||
| timestamps provider conservés lorsqu'ils existent | PASS | Unix seconds CoinGecko, RFC3339 CoinMarketCap/CoinPaprika |
|
||||
| DTOs wire provider privés | PASS | structs privées dans chaque module provider |
|
||||
| endpoints provider fixes et HTTPS | PASS | constantes privées + `HttpGetRequest::new_https` |
|
||||
| API keys absentes de `Debug` et diagnostics | PASS | `MarketPriceApiKey` redacted + tests settings |
|
||||
| `429` alimente le cooldown local partagé | PASS | `get_json` -> `record_rate_limited` |
|
||||
| aucun SDK provider | PASS | manifest + boundary tests |
|
||||
| Config, registry global et refresh multiple non avancés | PASS | scopes réservés à `pre.007+` / `pre.009` |
|
||||
| audit Rust sandbox | PASS | clean, 0 candidate export |
|
||||
| audit Markdown sandbox | PASS | à recalculer après finalisation documentaire |
|
||||
| gate Cargo complet `pre.004` | PENDING | opérateur |
|
||||
| Critère | Statut | Preuve |
|
||||
|------------------------------------------------------------------------|--------|------------------------------------------------------------------------|
|
||||
| version workspace `0.2.11-pre.4` | PASS | `Cargo.toml` racine |
|
||||
| modules `http_*` actifs en production, sans staging crate-root test | PASS | `src/lib.rs` |
|
||||
| cause `RUST-FMT-108` de `pre.003-fix.001` supprimée | PASS | modules production avant tests |
|
||||
| CoinGecko SOL/USD adapter public | PASS | `market_price_coingecko.rs` |
|
||||
| CoinGecko keyless et Demo key distingués | PASS | settings + descriptor + header sensible |
|
||||
| CoinMarketCap SOL/USD adapter public | PASS | `market_price_coinmarketcap.rs` |
|
||||
| CoinMarketCap Simple Price V2 utilisé, V1 deprecated absent du runtime | PASS | endpoints V2 fixes + canari dependency boundary |
|
||||
| CoinMarketCap keyless et Basic key distingués | PASS | settings + descriptor + header sensible |
|
||||
| CoinPaprika SOL/USD adapter public | PASS | `market_price_coinpaprika.rs` |
|
||||
| CoinPaprika sans faux credential | PASS | settings keyless uniquement |
|
||||
| prix JSON provider parsé exactement sans passage par `f64` | PASS | `RawValue` -> `MarketPriceDecimal::parse_json_raw` |
|
||||
| timestamps provider conservés lorsqu'ils existent | PASS | Unix seconds CoinGecko, RFC3339 CoinMarketCap/CoinPaprika |
|
||||
| DTOs wire provider privés | PASS | structs privées dans chaque module provider |
|
||||
| endpoints provider fixes et HTTPS | PASS | constantes privées + `HttpGetRequest::new_https` |
|
||||
| API keys absentes de `Debug` et diagnostics | PASS | `MarketPriceApiKey` redacted + tests settings |
|
||||
| `429` alimente le cooldown local partagé | PASS | `get_json` -> `record_rate_limited` |
|
||||
| aucun SDK provider | PASS | manifest + boundary tests |
|
||||
| Config, registry global et refresh multiple non avancés | PASS | scopes réservés à `pre.007+` / `pre.009` |
|
||||
| audit Rust sandbox | PASS | clean, 0 candidate export |
|
||||
| audit Markdown sandbox | PASS | clean, 118 tables / 109 files |
|
||||
| gate Cargo complet `pre.004` | FAIL | audit Rust : 1 x RUST-FMT-104 ; Clippy : 2 warnings ; 1 fixture CMC KO |
|
||||
|
||||
Les tests déterministes de `pre.004` couvrent les modes d'auth, les headers sans fuite de credential, les URLs/query fixes, le parsing des réponses SOL/USD, le rejet d'identités ou schémas incohérents et le parsing exact des nombres JSON. Aucun smoke réseau n'est revendiqué dans cette tranche.
|
||||
|
||||
## 3.7 Correctif `0.2.11-pre.004-fix.001`
|
||||
|
||||
Le gate opérateur du `2026-08-25` sur `pre.004` a confirmé `cargo check --workspace` PASS, mais a détecté trois écarts avant `pre.005` : une violation `RUST-FMT-104` dans le bloc de constantes de `src/error.rs`, deux warnings `clippy::collapsible_if` dans les builders CoinGecko/CoinMarketCap et un échec du test `coinmarketcap_v2_fixture_normalizes_string_status_and_exact_price`.
|
||||
|
||||
L'échec CoinMarketCap provenait uniquement de la fixture : la concaténation produisait `...,151.987654321012345678,last_updated...` au lieu de `...,151.987654321012345678,"last_updated"...`. Le parser runtime n'est pas modifié. Le correctif remet le bloc de constantes dans l'ordre alphabétique complet, utilise des `let`-chains pour les deux insertions de headers optionnels et corrige le JSON déterministe de la fixture.
|
||||
|
||||
La version Cargo du correctif est `0.2.11-pre.4.fix.1`. Aucun endpoint, mode d'auth, descriptor, limite provider ou contrat public n'est modifié.
|
||||
|
||||
## 4. Matrice provider prévue
|
||||
|
||||
| Provider | SOL/USD V1 | Gratuit V1 | Mode auth prévu | Test déterministe | Smoke live | Statut courant |
|
||||
|
||||
Reference in New Issue
Block a user