3.3 KiB
Delta 0.2.11-pre.008-fix.001 — Clippy et canari boundary du service de refresh
1. Base requise
Ce correctif s'applique exclusivement après 0.2.11-pre.008.
Version Cargo attendue à l'entrée :
0.2.11-pre.8
Version Cargo de sortie :
0.2.11-pre.8.fix.1
2. Motif du correctif
Le gate opérateur du 2026-08-26 a produit :
cargo fmt --all exécuté
audit Rust workspace PASS
audit Markdown PASS, 122 tables / 113 files
cargo check --workspace PASS
cargo clippy --workspace --all-targets 1 warning collapsible_if
cargo test -p ksp-offchain-transport-lib 54 unit PASS, dependency boundary FAIL
Le canari en échec était :
pre_008_refresh_service_owns_dispatch_while_registry_and_consumer_surface_stay_generic
Il utilisait une interdiction lexicale trop large :
!service.contains("consensus")
alors que market_price_service.rs contient légitimement une rustdoc indiquant que refresh_many fonctionne « without fallback or consensus ».
3. Correction Clippy
MarketPriceService::update_availability collapse les deux if imbriqués en une let-chain conforme à clippy::collapsible_if.
Le comportement ne change pas :
set_availability réussi + état retrouvé -> clone de l'état registry
sinon -> projection de secours avec la même availability
Aucune transition d'availability, classification d'erreur, cadence ou logique réseau n'est modifiée.
4. Correction du canari boundary
Le test ne bannit plus le mot documentaire consensus.
Il vérifie désormais l'absence de surfaces exécutables concrètes hors scope :
fallback_provider
fn aggregate(
fn consensus(
Les rustdocs peuvent donc documenter explicitement l'absence de fallback/consensus sans faire échouer le canari, tandis qu'une implémentation réelle de ces mécanismes resterait détectée.
Les assertions existantes sur l'absence de std::thread::sleep et tokio::time::sleep sont conservées.
5. Scope fonctionnel inchangé
Ce fix ne modifie pas :
les huit adapters V1
MarketPriceProviderSetup
MarketPriceService public
refresh / refresh_many / refresh_all
registry et availability
rate limits / cooldowns
classification HTTP/provider
Config
scheduler périodique
fallback
consensus
agrégation multi-provider
smoke live
6. Fichiers modifiés
Cargo.toml
crates/ksp-offchain-transport-lib/src/market_price_service.rs
crates/ksp-offchain-transport-lib/tests/dependency_boundary.rs
docs/plans/018-V0_2_11_OFFCHAIN_PRICE_TRANSPORT_PLAN.md
docs/validation/014-V0_2_11_OFFCHAIN_PRICE_TRANSPORT.md
7. Fichier ajouté
deltas/0.2.11/pre.008-fix.001.md
8. Gate opérateur requis
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 -p ksp-offchain-transport-lib
cargo test --workspace
pre.009 ne doit commencer qu'après ce gate propre.