v0.2.11-pre.012

This commit is contained in:
2026-08-26 15:45:02 +02:00
parent b5a1293953
commit 81eb295a09
9 changed files with 303 additions and 93 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md -->
<!-- version: 90 -->
<!-- version: 91 -->
# Séquence des releases fonctionnelles KSP
@@ -510,7 +510,7 @@ Ces providers ne déplacent pas la séquence active et ne reçoivent ni façade,
### `0.2.11` / `0.2.12` — Off-chain price + SOL Prices Desk
`0.2.11` introduit `ksp-offchain-transport-lib` avec une première surface volontairement limitée à SOL/USD. Le gate `pre.001` retient plusieurs providers gratuits accessibles en HTTP REST simple ; leurs adapters utilisent uniquement `reqwest` et des DTOs KSP privés, sans SDK provider. Off-chain Transport possède le registry provider, les capacités/rate limits, les indisponibilités et les refresh individuels/multiples ; aucun consensus ou fallback automatique multi-provider n'est introduit.
`0.2.11` introduit `ksp-offchain-transport-lib` avec une première surface volontairement limitée à SOL/USD. La release retient huit adapters REST (`CoinGecko`, `CoinMarketCap`, `CoinPaprika`, `Kraken`, `Coinbase Exchange`, `Jupiter Price V3`, `Birdeye`, `DexScreener`) utilisant `reqwest` et des DTOs KSP privés, sans SDK provider. Off-chain Transport possède le registry, les capacités/rate limits, les indisponibilités et les refresh individuels/multiples séquentiels ; Config construit le service depuis `std.offchain_transport`. Le gate live final keyless passe `7/7` après correction du paramètre CoinMarketCap Simple Price V2. Aucun consensus, fallback automatique ou découverte de pool DexScreener n'est introduit.
`0.2.12` ajoute `ksp-app-solprices-desk`, HID pure qui ne connaît aucun provider et consomme uniquement les descriptors, observations, états et opérations génériques de `ksp-offchain-transport-lib`. Sa première vue liste les providers/prix et permet refresh individuel/multiple en laissant entièrement les limitations au service. Après stabilisation de cette application spécialisée, la même release doit intégrer la capacité de prix offchain dans `ksp-app-wallet-desk` sans dupliquer la récupération/normalisation appartenant au composant spécialisé.

View File

@@ -1,9 +1,9 @@
<!-- file: docs/plans/018-V0_2_11_OFFCHAIN_PRICE_TRANSPORT_PLAN.md -->
<!-- version: 20 -->
<!-- version: 21 -->
# Plan `0.2.11` — Off-chain price transport SOL/USD multi-provider
**Statut courant : `0.2.11-pre.011-fix.001` corrige le contrat de requête CoinMarketCap Simple Price V2 après le premier smoke live. Le gate déterministe de `pre.011` est PASS et six providers keyless sur sept ont répondu correctement ; CoinMarketCap a échoué parce que KSP envoyait encore `ids=5426` alors que la surface V2 officielle exige `id=5426`. Le re-smoke keyless opérateur reste requis avant `pre.012`.**
**Statut courant : `0.2.11-pre.012` réconcilie la documentation finale après fermeture de la lane technique/live. Le gate déterministe complet de `pre.011` est PASS ; `pre.011-fix.001` a corrigé CoinMarketCap Simple Price V2 de `ids=5426` vers `id=5426`, puis le re-smoke keyless opérateur a passé les sept providers sans credential. Le smoke keyed commun reste `SKIP opérateur` autorisé faute des quatre credentials gratuits. Aucun changement runtime n'est introduit dans `pre.012`.**
## 1. Base et autorité
@@ -805,21 +805,21 @@ Durcissement de la façade publique avec `#[non_exhaustive]` sur les enums évol
### `pre.011` — Gate technique et live final
**Statut : implémenté ; gate déterministe et smokes opérateur à exécuter.**
**Statut : réalisé ; gate déterministe complet PASS, premier smoke keyless 6/7 puis correctif ciblé.**
Nouvel audit final des huit contrats provider, ajout de `tests/market_price_live_smoke.rs`, smoke keyless de sept providers, smoke keyed des quatre modes gratuits avec secrets sur `stdin`, vérification des graphes Cargo et reprise du gate workspace complet. Aucun endpoint, parser, rate-limit, Config ou comportement de refresh n'est modifié par cette tranche.
#### `pre.011-fix.001` — Paramètre CoinMarketCap Simple Price V2
**Statut : implémenté ; re-smoke keyless opérateur requis.**
**Statut : réalisé ; re-smoke keyless 7/7 PASS.**
Le premier smoke live keyless de `pre.011` a tenté les sept providers et n'a remonté qu'un échec CoinMarketCap. Le réaudit officiel ciblé a confirmé que `GET /v2/simple/price` et son équivalent keyless `/public-api/v2/simple/price` utilisent le paramètre `id`, singulier. L'adapter KSP envoyait encore `ids`, hérité d'une forme préparatoire erronée. Le correctif remplace uniquement `ids=5426` par `id=5426` pour les modes Keyless et Basic et ajoute un canari exact sur la query string. Aucun endpoint, parser, rate-limit, credential, sémantique ou contrat générique de refresh n'est modifié.
Le premier smoke live keyless de `pre.011` a tenté les sept providers et n'a remonté qu'un échec CoinMarketCap. Le réaudit officiel ciblé a confirmé que `GET /v2/simple/price` et son équivalent keyless `/public-api/v2/simple/price` utilisent le paramètre `id`, singulier. L'adapter KSP envoyait encore `ids`, hérité d'une forme préparatoire erronée. Le correctif remplace uniquement `ids=5426` par `id=5426` pour les modes Keyless et Basic et ajoute un canari exact sur la query string. Aucun endpoint, parser, rate-limit, credential, sémantique ou contrat générique de refresh n'est modifié. Le gate rejoué sur `pre.011-fix.001` confirme audits Rust/Markdown, `cargo check`, Clippy, tests Off-chain/Config et surtout le smoke keyless réel `7/7` PASS. Le `cargo test --workspace` complet avait déjà passé sur `pre.011` avant ce correctif ciblé ; `pre.012` le rejoue comme gate documentaire final.
### `pre.012` — Réconciliation documentaire finale
**Statut : planifié.**
**Statut : réalisé ; gate documentaire opérateur à exécuter.**
Réconciliation finale du plan, de la validation, des README/USAGE, de l'architecture et des références durables après les gates techniques.
Réconciliation finale du plan, de la validation, des README/USAGE Off-chain, de la séquence fonctionnelle et de l'index documentaire après fermeture du gate live keyless. Les statuts résiduels `PLANNED/PENDING` du scope V1 sont convertis en contrats réellement livrés, `SKIP opérateur` ou hors-scope explicite. Aucun comportement Rust, test, schema, Config exécutable, endpoint, dépendance ou feature n'est modifié ; seule la rustdoc crate-root retire sa référence obsolète à `pre.010`.
### `pre.013` — Préparation minimale de publication