Files
khadhroony-solana-project/deltas/0.2.11/pre.012.md
2026-08-26 15:45:02 +02:00

155 lines
5.5 KiB
Markdown

<!-- file: deltas/0.2.11/pre.012.md -->
<!-- version: 1 -->
# Delta `0.2.11-pre.012` — réconciliation documentaire finale Off-chain price
## 1. Base
```text
0.2.11-pre.011-fix.001
```
Cette tranche est exclusivement le couloir de réconciliation documentaire finale. Elle ne modifie aucun comportement Rust, test, schema, Config exécutable, endpoint provider, dépendance ou feature. Le seul fichier `.rs` touché est la rustdoc crate-root, afin de retirer une référence obsolète à `pre.010`.
## 2. Fermeture de la lane technique/live
Le gate `pre.011` a passé les validations déterministes complètes et les graphes Cargo. Son premier smoke keyless a tenté les sept providers et a isolé CoinMarketCap comme seul échec.
`pre.011-fix.001` a corrigé le builder CoinMarketCap Simple Price V2 :
```text
ids=5426 -> id=5426
```
Le re-smoke opérateur du `2026-08-26` a ensuite confirmé :
```text
keyless_market_price_providers_live_smoke 1/1 PASS
providers keyless réellement couverts 7/7 PASS
```
Les sept adapters couverts sont Coinbase Exchange, CoinGecko, CoinMarketCap, CoinPaprika, DexScreener, Jupiter et Kraken.
Le smoke keyed Birdeye/CoinGecko Demo/CoinMarketCap Basic/Jupiter Free n'a pas été exécuté faute des quatre credentials gratuits simultanés. Son statut final reste donc explicitement :
```text
SKIP opérateur
```
Il n'est jamais converti en PASS fictif.
## 3. Version technique
```text
workspace.package.version = 0.2.11-pre.12
commit attendu = v0.2.11-pre.012
aucun tag prerelease
```
Le changement Cargo est mécanique ; aucune sémantique runtime ne change.
## 4. Documents réconciliés
```text
docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md
docs/plans/018-V0_2_11_OFFCHAIN_PRICE_TRANSPORT_PLAN.md
docs/validation/014-V0_2_11_OFFCHAIN_PRICE_TRANSPORT.md
crates/ksp-offchain-transport-lib/README.md
crates/ksp-offchain-transport-lib/USAGE.md
crates/ksp-offchain-transport-lib/src/lib.rs — rustdoc seulement
docs/000-README.md
```
Les README/USAGE Config ont été relus mais ne nécessitent aucun changement : le document `std.offchain_transport`, les règles de provenance Secret/Public et la direction `Config -> Off-chain Transport` y sont déjà décrits durablement.
## 5. Réconciliation finale du contrat `0.2.11`
La release candidate porte exactement :
```text
SOL/USD uniquement
8 adapters REST V1
reqwest sans SDK provider
MarketPriceDecimal exact sans vérité canonique f64
MarketPriceObservation avec sémantique/provenance/timestamps
registry + availability provider-neutral
rate limits/cooldowns possédés par Off-chain Transport
refresh / refresh_many / refresh_all génériques
refresh multiple V1 séquentiel et déterministe
Config std.offchain_transport
origines provider fixes
DexScreener pair address explicite, aucune discovery
aucun fallback, consensus ou moyenne KSP
```
Le statut `QuotaUnavailable` est documenté comme état générique représentable. `0.2.11` ne prétend pas disposer d'un compteur quota live authoritative pour chaque provider.
Les erreurs de schema/wire provider sont déjà classées par le code `market_price.provider_response_invalid`; la validation finale ne les laisse plus artificiellement `PLANNED`.
## 6. Références durables
`crates/ksp-offchain-transport-lib/README.md` devient la référence de responsabilité/architecture de la crate et `USAGE.md` la référence d'utilisation de la façade `market_price` ainsi que des commandes de smoke opt-in.
Le statut de brouillon `pre.010` est supprimé. Le README enregistre le résultat live final keyless `7/7` et le statut keyed `SKIP opérateur` sans transformer les conditions commerciales des providers en garantie KSP.
La séquence fonctionnelle conserve la release suivante :
```text
0.2.12 — ksp-app-solprices-desk + intégration prix dans Wallet Desk
```
`0.2.12` reste HID : aucune logique provider, endpoint, credential, rate-limit ou normalisation prix ne doit migrer dans Tauri/frontend.
## 7. Frontière avec `pre.013`
Cette tranche ne touche pas :
```text
CHANGELOG.md
ROADMAP.md
prompt 0.2.12
```
Ces surfaces appartiennent exclusivement à `pre.013`, en plus de son bump Cargo mécanique et de son delta.
Si un défaut technique ou documentaire durable est découvert après le gate de `pre.012`, il ne doit pas être glissé dans `pre.013`; une nouvelle prerelease du couloir approprié doit être ouverte.
## 8. Fichiers ajoutés/modifiés
```text
Cargo.toml
docs/000-README.md
docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md
docs/plans/018-V0_2_11_OFFCHAIN_PRICE_TRANSPORT_PLAN.md
docs/validation/014-V0_2_11_OFFCHAIN_PRICE_TRANSPORT.md
crates/ksp-offchain-transport-lib/README.md
crates/ksp-offchain-transport-lib/USAGE.md
crates/ksp-offchain-transport-lib/src/lib.rs
deltas/0.2.11/pre.012.md
```
## 9. Gate opérateur
Comme `pre.012` ne modifie aucune surface technique :
```bash
cargo fmt --all
python3 scripts/audit_rust_workspace_rules.py
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas/0.2.11
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test --workspace
```
Aucun smoke live ni `cargo tree` n'est à rejouer si le delta est appliqué exactement : le smoke keyless `7/7` et les graphes Cargo appartiennent à la lane technique/live déjà fermée.
## 10. Suite
Si ce gate est vert :
```text
0.2.11-pre.013 — préparation minimale de publication
```
`pre.013` reste limitée au prompt de `0.2.12`, à `CHANGELOG.md`, à `ROADMAP.md`, au bump Cargo mécanique et à son delta.