v0.2.11-pre.008-fix.001
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
<!-- file: docs/plans/018-V0_2_11_OFFCHAIN_PRICE_TRANSPORT_PLAN.md -->
|
||||
<!-- version: 14 -->
|
||||
<!-- version: 15 -->
|
||||
|
||||
# Plan `0.2.11` — Off-chain price transport SOL/USD multi-provider
|
||||
|
||||
**Statut courant : `0.2.11-pre.008` matérialise le service générique de refresh SOL/USD au-dessus des huit adapters V1. `MarketPriceService` possède le dispatch provider, le registry runtime et les transitions d'availability ; les consumers utilisent uniquement les provider ids opaques, `registry()`, `refresh`, `refresh_many` et `refresh_all`. Les limites/cooldowns restent non bloquants et aucun fallback, consensus ou scheduler provider n'est introduit. `MarketPriceProviderSetup` reste la frontière provider-specific destinée à la composition/Config de `pre.009`. Le gate opérateur complet de `pre.007` est PASS, y compris `cargo test --workspace`.**
|
||||
**Statut courant : `0.2.11-pre.008-fix.001` corrige le gate de `pre.008` sans modifier son contrat fonctionnel. `MarketPriceService` possède toujours le dispatch provider, le registry runtime et les transitions d'availability ; les consumers utilisent uniquement les provider ids opaques, `registry()`, `refresh`, `refresh_many` et `refresh_all`. Le fix supprime un warning Clippy `collapsible_if` et remplace un canari lexical trop large sur le mot `consensus` par des vérifications de surfaces exécutables réellement interdites. `MarketPriceProviderSetup` reste la frontière provider-specific destinée à la composition/Config de `pre.009`.**
|
||||
|
||||
## 1. Base et autorité
|
||||
|
||||
@@ -746,10 +746,12 @@ Implémentation de Birdeye Standard avec `X-API-KEY`, endpoint Price Single Sola
|
||||
|
||||
### `pre.008` — Refresh individuel et multiple
|
||||
|
||||
**Statut : réalisé, gate Cargo opérateur à exécuter.**
|
||||
**Statut : réalisé ; `pre.008-fix.001` corrige le gate opérateur Clippy/boundary sans changement fonctionnel.**
|
||||
|
||||
`MarketPriceService` possède les huit adapters configurés, le registry runtime et le dispatch provider-specific interne. La construction accepte `MarketPriceProviderSetup` pour la future couche de composition, puis l'usage devient intégralement provider-agnostic via `registry()`, `refresh(provider_id)`, `refresh_many(...)` et `refresh_all()`. Les échecs provider sont classés en availability générique ; un résultat en erreur n'interrompt pas les autres providers d'un batch. Les états non éligibles sont projetés sans requête réseau, les cooldowns expirés redeviennent tentables, et aucune opération ne dort pour attendre un rate limit. Aucun fallback, consensus, agrégation, Config ou scheduling périodique n'est avancé.
|
||||
|
||||
`pre.008-fix.001` conserve ce contrat. Il collapse uniquement un `if` signalé par Clippy et rend le canari de boundary précis : les rustdocs peuvent mentionner explicitement l'absence de consensus, tandis que le test interdit les fonctions exécutables `aggregate`/`consensus` et le chemin `fallback_provider`.
|
||||
|
||||
### `pre.009` — Config Off-chain Transport
|
||||
|
||||
**Statut : planifié.**
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/014-V0_2_11_OFFCHAIN_PRICE_TRANSPORT.md -->
|
||||
<!-- version: 13 -->
|
||||
<!-- version: 14 -->
|
||||
|
||||
# Validation `0.2.11` — Off-chain price transport SOL/USD
|
||||
|
||||
@@ -280,9 +280,11 @@ Les tests déterministes de `pre.007` couvrent l'auth Birdeye et sa redaction, l
|
||||
| Config, scheduling périodique et smoke live non avancés | PASS | scope réservé à `pre.009+` |
|
||||
| audit Rust sandbox | PASS | clean, 0 candidate export |
|
||||
| audit Markdown sandbox | PASS | clean, 122 tables / 113 fichiers |
|
||||
| gate Cargo | PLANNED | à exécuter par l'opérateur |
|
||||
| gate `pre.008` brut | FAIL | 1 warning Clippy + 1 canari boundary FAIL |
|
||||
| fix `pre.008-fix.001` statique | PASS | audits Rust/Markdown sandbox |
|
||||
| gate Cargo du fix | PLANNED | à exécuter par l'opérateur |
|
||||
|
||||
Les tests déterministes de `pre.008` vérifient le registry de service sur les huit setups V1, `refresh_all` sans réseau lorsque tous les providers sont désactivés, le rejet pré-dispatch des doublons/providers inconnus, les classes auth/rate-limit/temporaire/local misconfiguration et l'éligibilité temporelle des cooldowns. Les méthodes multiples restent séquentielles et déterministes dans V1 ; elles ne dorment jamais pour attendre un provider et ne font aucun fallback/consensus.
|
||||
Les tests déterministes de `pre.008` vérifient le registry de service sur les huit setups V1, `refresh_all` sans réseau lorsque tous les providers sont désactivés, le rejet pré-dispatch des doublons/providers inconnus, les classes auth/rate-limit/temporaire/local misconfiguration et l'éligibilité temporelle des cooldowns. Les méthodes multiples restent séquentielles et déterministes dans V1 ; elles ne dorment jamais pour attendre un provider et ne font aucun fallback/consensus. Le gate opérateur initial a toutefois trouvé un warning `clippy::collapsible_if` et un canari boundary trop large (`!service.contains("consensus")`) qui échouait sur la rustdoc décrivant justement l'absence de consensus. `pre.008-fix.001` corrige ces deux points sans modifier le comportement runtime.
|
||||
|
||||
## 4. Matrice provider prévue
|
||||
|
||||
|
||||
Reference in New Issue
Block a user